:orphan:

#############
I-deas Reader
#############

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

+--------------------------------------------------------------------------+
|                        **I-deas**                                        |
+-----------------------------------------+--------------------------------+
| **File Extension**                      | MF1, ARC, UNV, PKG             |
+-----------------------------------------+--------------------------------+
| **Supported Versions**                  | Up to 13.x (NX 5), NX I-deas 6 |
+-----------------------------------------+--------------------------------+
| **Platforms**                           | |wy| |ly| |my| |ay| |iy|       | 
+-----------------------------------------+--------------------------------+
| :ref:`i_deas_tessellation`              | |c_green| Supported            | 
+-----------------------------------------+--------------------------------+
| :ref:`i_deas_brep`                      | |c_green| Supported            | 
+-----------------------------------------+--------------------------------+
| :ref:`i_deas_pmi`                       | |c_green| Supported            | 
+-----------------------------------------+--------------------------------+

I-DEAS files are CAD file formats historically used for mechanical design, 
storing precise model data including parts, assemblies, surfaces, curves, views, 
and PMI.

The HOOPS Exchange I-deas reader provides full access to the assembly structure, 
exact B-rep geometry, views, and PMI defined in the file for use in CAD applications.

A file does not need to have a particular extension to be read correctly by HOOPS Exchange. 
However, the file extensions of I-deas files that you can expect to be loaded 
by HOOPS Exchange include:

* `.ARC`
* `.MF1`
* `.UNV`
* `.PKG`

How to Import From I-deas 
=========================

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

To load a I-deas 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.arc", &sReadParam, &pModelFile);

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

.. _i_deas_tessellation: 

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

The visualization data for the I-deas file format is generated by the HOOPS Exchange tessellation engine.

.. _i_deas_brep: 

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

Supported surface types include:

* B-spline surface
* Cone
* Cylinder
* Extruded surfaces
* General quadric surfaces
* Plane
* Revolution surface
* Ruled surfaces
* Sphere
* Torus

Supported curve types include:

* B-splines
* Composite curve
* Hyperbolic curve
* Parabolic arcs

.. _i_deas_pmi: 

Product and Manufacturing Information (PMI)
=======================================

HOOPS Exchange provides full support for I-deas PMI. 

The types supported include:

* Circle center
* Datum feature symbol
* Datum target
* Dimensions
* Feature control frame
* Measurement point/locator
* Note
* Surface finish
* Weld (spot and line)

Assembly
========

HOOPS Exchange's I-deas Reader provides full access to the Assembly, B-rep and View and PMI Data stored within a particular I-deas file.

Datum planes and construction geometry are supported and accessed through the assembly tree. 
The I-deas reader provides access to the whole tree of containers (or bins) of the file. 
In a container, we can access other containers, configurations, and or parts.

Incremental load is supported by our I-deas reader.

Views
=====

Full support for views including the visibilities of objects associated to views is supported.

Import Options Specific to I-deas
=================================

* Note texts with symbol
