:orphan:

########################
Autodesk Inventor Reader
########################

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

+----------------------------------------------------------------------+
|                        **Autodesk Inventor**                         |
+-----------------------------------------+----------------------------+
| **File Extension**                      | IPT, IAM                   |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | Up to 2026                 |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |an| |iy|   | 
+-----------------------------------------+----------------------------+
| :ref:`inventor_tessellation`            | |t_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`inventor_brep`                    | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`inventor_pmi`                     | |c_red| Unsupported        | 
+-----------------------------------------+----------------------------+

The Autodesk Inventor Reader provides full access to the Assembly and Visualization data stored within a particular Inventor file.
A file does not need to have a particular extension to be read correctly by HOOPS Exchange however the file extensions of Inventor files that you can expect to be loaded by HOOPS Exchange are:

* `.IAM`
* `.IPT`

How to Import From Autodesk Inventor
====================================

To load an autodesk inventor 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_INITIALIZE_DATA(A3DRWParamsLoadData, sReadParam);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

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

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

.. _inventor_tessellation: 

Tessellation
============

The Inventor reader can use embedded tessellation instead of generating it from B-rep.
To control this feature, you need to use `TfReadInvParameters` (inherits from `TfReadParameters`).
Use member function `SetUseTessForFile(bool bUseTessForFile)` to change value, and `UseTessForFile()` to read the current setting.
Default value is true, which means embedded tessellation is used instead of generating it from B-rep.

.. _inventor_brep: 

B-rep
=====

HOOPS Exchange 7.
2 and later allows you to query the full topological and geometric model defined in an Inventor file.
HOOPS Exchange does not provide access to the geometric definition of all surfaces/curves possible in Inventor, however, evaluators for all types are provided.
Since all these geometric definition do not exist in PRC these more advanced geometries are mapped to a NURBS form when you export to PRC.

While we do access all geometry definitions within an Inventor file, we consider some of our evaluators for vertex blends and law surfaces to not be as robust as our other evaluators.
This is the reason we say in our official documentation that our Inventor importer is limited.
If your data does not include these types of geometries then you can expect our Inventor reader to be as robust as all our other readers.

* Blend surface (constant radius)
* Blend surface (variable radius)
* Blend surface (from curve)
* Blend surface (vertex)
* B-spline surface
* Cone
* Extrusion surface
* Law surface
* Offset surface
* Pipe surface
* Plane
* Skin surface
* Sphere
* Surface of revolution
* Surface from curves
* Sweep surface
* Torus

The list of curve types available in Inventor is:

* B-spline
* Circle
* Curve on surface
* Ellipse
* Law curve
* Line
* Offset curve
* Intersection curve

.. _inventor_pmi: 

PMI
===

PMI is not supported by Exchange for this format.

Views
=====

Representations within the Inventor allow you to define a camera in addition to certain visibilities for components and these are fully supported by our Inventor Reader.

Materials
=========

The Autodesk Inventor reader supports materials.

Exchange supports Isotropic materials except Damping Coefficient and Thermally Treated data.
Exchange supports Orthotropic materials except Thermal Conductivities.
Exchange doesn't support Transverse Isotropic materials.

Physical materials are not necessarily embedded in Inventor files.
Inventor files may reference physical materials that are part of an Inventor installation.
Exchange automatically looks for missing physical materials in the installed material library files.
If you want to specify other material library files, add them to :c:member:`A3DRWParamsGeneralData.m_ppcSearchMaterialLibraryFiles`.

The material library files are searched in that order:

* The files specified in :member:`A3DRWParamsGeneralData.m_ppcSearchMaterialLibraryFiles`
* The installed material library files

Textures
========

The Autodesk Inventor reader supports diffuse textures.

Import Options Specific to Inventor
===================================

None

Limitations
===========

The color redefinition that is available in Inventor Representations is not supported.
Default representations are not supported.
