Public API Surface
The supported surface is the NwcIO and NwcIO.Model.* namespaces listed here. The NwcIO.Internal.* types (chunk decoders, byte streamers, container reader/writer, JSON/GLB/OBJ/IFC exporters) are also compiled as public — the tests and the CLI consume them directly — but they are implementation details: they are not covered by compatibility guarantees and may change in any release. Making them internal is tracked separately (#103).
Core Document & Hierarchy (NwcIO, NwcIO.Model)
| Type | Description |
|---|---|
NwcDocument |
Primary document container holding the root scene graph node, meshes, materials, viewpoints, selection sets, and TimeLiner schedules. Opens .nwc, .nwd, and .nwf files via NwcDocument.Open. |
NwcDocumentBuilder |
Fluent builder API for creating Navisworks documents and geometry programmatically from code. |
NwcWriter |
Direct #LcUStream-V1.1 binary container serializer and continuous zlib chunk writer. |
NwcReaderOptions |
Per-open options: which streams to read (meshes, materials, viewpoints, selection sets, TimeLiner), catalog retention. |
NwcAssembly |
Federated multi-model assembly: Create, LoadFromDirectory, OpenNwf (with UnresolvedXRefs/SkippedXRefs reporting), combined meshes/materials/bounds, per-assembly exports and clash runs. |
NwcNode |
Scene graph tree node representing layers, categories, composite elements, and geometry instances with hierarchical transformations and properties. |
NwcPropertyRecord |
Property key-value record (class, name, string value, tags) as parsed from Navisworks property streams. |
NwcMesh & NwcMaterial |
Triangle mesh with vertices, indices, world-space transform, bounding box, and PBR material. |
NwcTransform |
Parsed pose/transform records with quaternion rotation and affine 4×4 matrix conversion. |
NwcFileInfo |
Source path, loader plugin, and export timestamp from the partition header. |
NwcXRef & NwcXRefTable |
External references with suffix-based resolution (TryResolve, Exists) and the parsed XRef table. |
NwcCamera, NwcSavedViewpoint, NwcCameraProjection |
Camera model (position, unit rotation quaternion, computed direction/up/target) and saved viewpoints. |
Vector3d, Quaterniond, BoundingBox3d, RgbaColor |
Double-precision geometry primitives and RGBA colour. |
NwcClash |
Simple pairwise clash check between two meshes. |
Coordination & Clash Detection (NwcIO.Model.Clash)
| Type | Description |
|---|---|
NwcClashDetector |
Broad-phase BVH and narrow-phase 3D triangle-to-triangle collision engine (Run over a document or federated assembly, driven by an NwcClashTest). |
NwcClashTest, NwcClashSelection, NwcClashResult, NwcClashObject |
Clash test definition (type, tolerance, per-side selections), results, and the involved elements. |
NwcClashBatch, NwcClashRule, NwcClashComment |
Batch test container, filtering rules (ignore thresholds, custom predicates), and review comments. |
NwcClashGroup |
Grouped clash clusters produced by NwcClashGrouper. |
NwcClashGrouper |
Automated clustering of clashes by proximity, element, grid line, or layer. |
NwcClashMatrix, NwcClashDiscipline, NwcClashMatrixCell |
\(N \times M\) multi-discipline coordination matrix with per-cell tolerance/type, automated execution, Markdown generation, and BCF 2.1 export. |
NwcClashBcfExporter |
buildingSMART BCF 2.1 export of clash tests and results. |
NwcXmlClashSerializer |
Roundtrip Navisworks Clash Report XML (nw-clashreport-11.0.xsd) reader and writer. |
NwcNwfManifest |
Federation manifest used by NwcAssembly tooling. |
4D TimeLiner, Selection Sets & Appearance (NwcIO.Model.TimeLiner, .Sets, .Appearance)
| Type | Description |
|---|---|
NwcTimeLinerSchedule & NwcTimeLinerTask |
WBS task hierarchy, planned/actual dates, costs, progress, and simulation queries. |
NwcTimeLinerXmlSerializer |
Full roundtrip serialization of Navisworks TimeLiner Exchange XML. |
NwcTimeLinerMsProjectXmlSerializer |
Microsoft Project XML schedule import/export. |
NwcTimeLinerPrimaveraXerSerializer |
Primavera P6 XER schedule import/export. |
NwcTimeLinerCsvSerializer |
CSV schedule export. |
NwcTimeLinerLinker |
Rule-based automated linking of schedule tasks to geometry. |
NwcSelectionSet, NwcSearchSet, NwcSelectionSetFolder, NwcSetItem |
Manual selection sets, dynamic query search sets, and set folders. |
NwcSearchCondition & NwcSearchOperator |
Search criteria over node built-ins and property records (equals, contains, wildcard, comparisons). |
NwcXmlSetSerializer |
Navisworks selection-set XML exchange. |
NwcQuickProperties |
Curated quick-properties view over property records. |
NwcAppearanceProfiler, NwcAppearanceRule, NwcXmlAppearanceProfilerSerializer |
Rule-based colouring by search conditions and its XML exchange format. |
3D Geometry & Spatial Analysis (NwcIO.Model.Grids, .Measure, .Diff, .Spatial, .Sectioning, .Redline)
| Type | Description |
|---|---|
NwcGridSystem, NwcGridLine, NwcGridIntersection |
Building grid lines and axes with 2D/3D intersection calculations and spatial clash labelling. |
NwcMeasureEngine |
Double-precision 3D point-to-point, point-to-mesh and mesh-to-mesh distance, clearance, and area/volume calculations. |
NwcDiffEngine (with NwcDiffReport, NwcDiffOptions, NwcElementDiff) |
Revision comparison and differential geometry/property analysis. |
NwcSpatialIndex |
SAH bounding-volume hierarchy for raycasts and accelerated proximity queries (RaycastHit). |
NwcSectionPlane, NwcSectionBox, NwcSectionAlignment, NwcMeshClipper |
Section planes and six-sided section boxes with mesh clipping. |
NwcXmlViewpointSerializer, NwcViewpointBcfExporter |
Navisworks viewpoint XML exchange and BCF viewpoint export. |
NwcRedline* (NwcRedline, Arrow, Cloud, Ellipse, Line, Tag, Text, NwcRedlineStatus) |
Redline annotation records. |
Export (NwcIO, NwcIO.Model.Viewer)
| Type | Description |
|---|---|
NwcDocument.SaveIfc / NwcAssembly.SaveIfc |
ISO 10303-21 STEP export supporting IFC2x3 Coordination View and modern IFC4 mesh tessellation (IfcTriangulatedFaceSet), configured via NwcIfcExportOptions (NwcIfcSchemaVersion, NwcIfcLengthUnit). |
NwcDocument.SaveGlb / SaveObj, NwcAssembly.SaveGlb / SaveObj |
Binary glTF 2.0 and Wavefront OBJ geometry export entry points. |
NwcDocument.SaveHtmlViewer / NwcAssembly.SaveHtmlViewer |
Interactive single-file 3D WebGL viewer exporter with 4D schedule playback (NwcHtmlViewerExporter, NwcHtmlViewerOptions). |
NwcJsonExportOptions |
Indentation and content toggles for JSON export (NwcDocument and the CLI). |
GlbExporter & ObjExporter (NwcIO.Internal.Export) |
Low-level public static exporters the Save* entry points delegate to; implementation surface, not covered by compatibility guarantees. |
Container & Parsing (NwcIO.Internal.* — public but unsupported)
| Type | Description |
|---|---|
NwcContainerReader / NwcContainerWriter |
#LcUStream-V1.1 section/chunk reader and writer. |
NwcContainer, LcRawStream, LcUStreamHeader, NwcStreamKind |
Decompressed stream records and their best-effort classification. |
StreamClassifier, PartitionHeaderParser, PropertyRecordScanner, SceneTreeBuilder, GuidTableParser, TransformParser, MeshParser, MaterialParser, DbCacheParser, XRefTableParser |
Stream classifiers and format decoders. |
JsonExporter |
Low-level JSON export helper. (The IFC and clash-report exporters are internal.) |