NwcIO 0.10.0

dotnet add package NwcIO --version 0.10.0
                    
NuGet\Install-Package NwcIO -Version 0.10.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NwcIO" Version="0.10.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NwcIO" Version="0.10.0" />
                    
Directory.Packages.props
<PackageReference Include="NwcIO" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NwcIO --version 0.10.0
                    
#r "nuget: NwcIO, 0.10.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NwcIO@0.10.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NwcIO&version=0.10.0
                    
Install as a Cake Addin
#tool nuget:?package=NwcIO&version=0.10.0
                    
Install as a Cake Tool

<p align="center"> <img src="docs/images/nwcio-banner.png" alt="NwcIO" width="640"> </p>

NwcIO

Docs NuGet Release License: MIT Platform

NwcIO is a fast, 100% managed .NET library and command line tool that reads Autodesk Navisworks cache and document files (.nwc, .nwd, .nwf) directly from disk without Navisworks or the Navisworks API, and exports IFC, glTF, OBJ, HTML, and JSON.

Built clean-room under the IOExtend organization alongside RvtIO and IfcIO.

What it does

  • Reads scene hierarchy, geometry meshes, materials, transforms, GUIDs, and property categories.
  • Exports to standard Industry Foundation Classes (IFC2X3 & compact IFC4), binary glTF 2.0 (.glb), Wavefront OBJ, and structured JSON.
  • Coordinates multi-model federated assemblies with 3D geometric clash detection, proximity clustering, and clash matrix execution.
  • Manages saved viewpoints, dynamic section planes, redlines, selection sets, and search sets with Navisworks XML and buildingSMART BCF 2.1 exchange.
  • Supports 4D TimeLiner construction simulation with Microsoft Project XML (.xml) and Primavera P6 (.xer) exchange, appearance profiling, spatial grids, 3D measurement, and revision comparison.
  • Generates standalone, zero-dependency interactive 3D WebGL HTML viewers (.html) with 6-sided section box, turntable orbit, and viewpoint walkthrough tours.

Install

Install the command line tool:

dotnet tool install --global NwcIO.Cli

Add the library to a .NET project:

dotnet add package NwcIO

The library targets .NET 8 and .NET 10. It uses managed code without native dependencies or Windows-only APIs and supports Windows, Linux, and macOS.

Command line

Export to IFC, glTF GLB, Wavefront OBJ, or JSON:

# Convert to IFC2X3 or modern compact IFC4
nwcio model.nwc model.ifc --ifc4

# Convert to binary glTF 2.0 (with PBR materials and vertex normals)
nwcio model.nwc model.glb

# Export 3D meshes to Wavefront OBJ
nwcio model.nwc model.obj

# Export scene hierarchy and properties to JSON
nwcio model.nwc model.json

Coordinate models, detect clashes, and export BCF:

# Run clash detection between models and export buildingSMART BCF 2.1
nwcio clash arch.nwc mep.nwc --bcf clashes.bcfzip --tolerance 0.01

# Execute multi-discipline clash matrix across a federated folder
nwcio clash-matrix ./models/ -o matrix.json --export-markdown matrix.md --bcf matrix.bcfzip

# Export standalone 3D WebGL HTML viewer with sectioning and measure tools
nwcio view model.nwc -o viewer.html --grids grids.xml

TimeLiner, viewpoints, search sets, and revision diff:

# Simulate 4D construction schedule at a specific date
nwcio schedule model.nwc --sim-date 2026-06-01 --export-csv schedule.csv

# Export saved viewpoints and section planes to BCF 2.1 or Navisworks XML
nwcio export-viewpoints model.nwc --bcf viewpoints.bcfzip --xml viewpoints.xml

# Compare two model revisions (added, deleted, modified geometry & properties)
nwcio diff baseline.nwc revision.nwc -o diff.json --bcf diff.bcfzip

Diagnostics and progress go to standard error. Run nwcio --help for the full list of options.

Library

Open a Navisworks document, inspect elements, and export to GLB or IFC:

using NwcIO;
using NwcIO.Exporters;

// Open document directly from disk
var doc = NwcDocument.Open("model.nwc");

Console.WriteLine($"Model: {doc.ModelName}");
Console.WriteLine($"Nodes: {doc.RootNodes.Count}, Triangles: {doc.TotalTriangleCount:N0}");

// Query nodes by property category
foreach (var node in doc.FindNodesByProperty("Item", "Type", "Wall"))
{
    Console.WriteLine($"Node: {node.Name} (Path: {node.Path})");
}

// Export to binary glTF 2.0 and IFC4
NwcGlbExporter.Export(doc, "model.glb");
NwcIfcExporter.Export(doc, "model.ifc", new NwcIfcExportOptions { Schema = NwcIfcSchema.Ifc4 });

Run 3D geometric clash detection between documents:

using NwcIO;
using NwcIO.Clash;

var archDoc = NwcDocument.Open("Architecture.nwc");
var mepDoc = NwcDocument.Open("MEP.nwc");

// Detect interferences with broad-phase AABB and narrow-phase triangle intersection
var report = NwcClashDetector.DetectClashes(archDoc, mepDoc, new NwcClashOptions
{
    Tolerance = 0.01, // 10mm tolerance
    ClashType = NwcClashType.Hard
});

// Group clashes by spatial 3D proximity and export BCF 2.1
report.GroupByProximity(clusterDistance: 1.5);
report.SaveBcf("Clashes.bcfzip");

See the public API for the supported surface and getting started guide for detailed workflows.

Documentation

The documentation site with API references and guides is at https://ioextend.github.io/NwcIO/. Ask DeepWiki offers an automatically generated overview of the repository.

Supported files

Reads binary Navisworks Cache (.nwc), Navisworks Document (.nwd), and Navisworks Federated (.nwf) files. Tested against models saved across Navisworks 2016 through 2026.

Limitations

  • Version 0.10.0 is a preview. The API can evolve before 1.0.
  • Geometry extraction supports triangle meshes, line sets, cylinders, and point clouds; proprietary custom parametric solids are tessellated.
  • Writing native .nwd files is not supported (export targets native .nwc, open standards: IFC, GLB, OBJ, JSON, HTML, BCF, and Navisworks XML exchange).

Build from source and tests

Use the .NET SDK selected by global.json, which specifies 10.0.100 with latestFeature roll-forward.

From the repository root:

dotnet build NwcIO.slnx -c Release
dotnet test

Contributing

See CONTRIBUTING.md and the Code of Conduct. Release changes are recorded in CHANGELOG.md.

Security

Report vulnerabilities through GitHub private vulnerability reporting in the repository's Security tab. Do not open public issues for security vulnerabilities. See SECURITY.md.

License and trademarks

NwcIO is licensed under the MIT License. Copyright holder: mahach666.

NwcIO is not affiliated with, endorsed by or sponsored by Autodesk. Autodesk and Navisworks are trademarks of Autodesk, Inc.

The file format is read by analysing binary streams for interoperability. No Autodesk code or binaries are included.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.10.0 78 11/11/2026
0.9.0 74 11/10/2026
0.8.0 69 11/10/2026
0.7.0 74 11/10/2026
0.6.0 81 11/10/2026
0.5.0 68 11/10/2026
0.4.0 83 11/10/2026
0.3.0 81 11/10/2026
0.2.0 76 11/10/2026
0.1.1 71 11/10/2026
0.1.0 74 11/10/2026