:orphan:

##########################
Autodesk Navisworks Reader
##########################

.. rst-class:: format-title-block

+----------------------------------------------------------------------+
|                        **Autodesk Navisworks**                       |
+-----------------------------------------+----------------------------+
| **File Extension**                      | NWD                        |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | From 2012 to 2026          |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |mn| |an| |iy|   | 
+-----------------------------------------+----------------------------+
| **Tessellation**                        | |t_green| Supported        |
+-----------------------------------------+----------------------------+
| :ref:`navisworks_rd_brep`               | |c_red| Unsupported        |
+-----------------------------------------+----------------------------+
| **PMI**                                 | |c_red| Unsupported        |
+-----------------------------------------+----------------------------+

Autodesk Navisworks files are aggregation formats used to combine and review data from multiple CAD sources.
When read by HOOPS Exchange, they provide access to model structure and tessellated 3D objects for visualization, 
without exposing full CAD model definitions.

However, the file extension of Navisworks files that you can expect to be loaded by HOOPS Exchange is:

* `.NWD`

How to Import From Autodesk Navisworks 
======================================

Reading ``Navisworks`` files follows the same pattern as other formats: configure load parameters, 
then call the standard load function.

To load an autodesk navisworks file, use :cpp:func:`A3DAsmModelFileLoadFromFile`.
The :cpp:struct:`A3DParamsLoadData` structure is used to customize the loading behavior:

.. code-block:: c

   A3DAsmModelFile* pModelFile = 0;

   A3DRWParamsLoadData sReadParam = A3D_MAKE_DATA(A3DRWParamsLoadData);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

   A3DAsmModelFileLoadFromFile("path/to/file.nwd", &sReadParam, &pModelFile);

See :doc:`/guide/basic_operations/load_model` for more about loading model files.

Assembly
========

HOOPS Exchange supports the full assembly tree definition of an imported Navisworks file. 
However, incremental load is unsupported by our Navisworks reader.

.. _navisworks_rd_brep:

Boundary Representation (B-rep)
===============================

The list of supported entity types include:

* parametric cylinder
* parametric circle

Visualization
=============

As previously noted, the full assembly tree definition is supported, but incremental loading is not.

Views
=====

All view types are supported by HOOPS Exchange. 
However, there are some known limitations regarding default views and zoom factors.

Miscellaneous
=============

Markups
*******

Markups are currently unsupported by the HOOPS Exchange Navisworks reader.

Materials and Colors
********************

HOOPS Exchange supports materials when reading Navisworks files.
It also supports imported and overridden colors and transparencies on wires, faces, and tessellation.

Metadata
********

HOOPS Exchange fully supports Navisworks metadata (properties) with their units.

Animations
**********

Animations are currently unsupported by the HOOPS Exchange Navisworks reader.
