:orphan:

##############################
CATIA V6 / 3DExperience Reader
##############################

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

+------------------------------------------------------------------------------------------+
|                    **CATIA V6 / 3DExperience**                                           |
+-----------------------------------------+------------------------------------------------+
| **File Extension**                      | 3DXML                                          |
+-----------------------------------------+------------------------------------------------+
| **Supported Versions**                  | 3DXML 4.3                                      |
+-----------------------------------------+------------------------------------------------+
| **Platforms**                           | |wy| |ly| |my| |ay| |iy|                       |
+-----------------------------------------+------------------------------------------------+
| :ref:`catiav6_tessellation`             | |t_green| Supported                            |                     
+-----------------------------------------+------------------------------------------------+
| :ref:`catiav6_brep`                     | |c_green| Supported                            |
+-----------------------------------------+------------------------------------------------+
| :ref:`catiav6_pmi`                      | |c_green| Supported                            |                     
+-----------------------------------------+------------------------------------------------+

CATIA V6 files are managed CAD formats used within the 3DEXPERIENCE platform.
When read by HOOPS Exchange, they provide access to model structure and supported geometric 
and visualization data extracted from the managed representation.

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

* `.3DXML`

The version specification for the `.3DXML` format is **4.3**. 
This format contains data exported from both CATIA V5 and V6 / 3DExperience.

How to Import From CATIA V6 
===========================

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

To load a CATIA V6 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.3dxml", &sReadParam, &pModelFile);

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

.. _catiav6_tessellation:

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

The CATIA V6 reader accesses and interprets the tessellation data in the file.
The CATIA V6 file format can contain tessellation in a few different forms.
Our reader can read XML and static tessellation, however dynamic tessellation is unsupported.

.. _catiav6_brep:

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

The CATIA V6 reader supports the import of B-rep data. 
However, there are some limitations.

For more information, please contact `Developer Support <https://developer.techsoft3d.com/developer-support/>`_.

.. _catiav6_pmi:

PMI
===

The CATIA V6 reader provides access to the PMI information within a 3DXML file. The PMI data is only presented in visual form. As such, a semantic definition is not available. 

The specific PMI types supported are listed below:

* Datum
* Datum Target
* Dimension
* Dimension (Basic)
* Dimension (Coordinate)
* Dimension (Cumulated)
* Dimension (Curvlinear)
* Dimension (Stacked)
* Distance
* Flags
* Feature Control Frame
* Geometrical Tolerance
* Note Object Attribute (Text)
* Note Object Attribute (Ditto)
* Roughness
* Weld

Markup linked items are supported with limitations.

Assembly
========

The full definition of the assembly tree is supported. However, we don't currently support incremental load for our CATIA V6 reader.

Views
=====

Two types of views are supported within CATIA V6:

* **Annotation views:** a view plane in addition to visibilities that are applied to the PMI entities,
* **Capture views:** a full camera definition, plus visibilities applied to PMI, visibilities and transformations that can be applied to components in the assembly and the optional definition of section planes.

HOOPS Exchange fully supports both types of views.


.. _catia_v6_misc:

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

Construction geometries are handled by the reader.

Import Options Specific to CATIA V6
***********************************

None

Limitations
***********

* Multiple sections views are unsupported.
* Markup links to edges are unsupported. 
* No support for links from markups defined in an assembly to items defined in parts. However, a link to a geometrical set is presented as links to the elements of the set.
