:orphan:

###############
CATIA V4 Reader
###############

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

+----------------------------------------------------------------------+
|                    **CATIA V4**                                      |
+-----------------------------------------+----------------------------+
| **File Extension**                      | MODEL, SESSION, DLV, EXP   |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | Up to 4.2.5                |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |an| |iy|   | 
+-----------------------------------------+----------------------------+
| :ref:`catiav4_tessellation`             | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`catiav4_brep`                     | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`catiav4_pmi`                      | |c_green| Supported        | 
+-----------------------------------------+----------------------------+

The CATIA V4 Reader provides full access to the assembly, b-rep, and PMI data that is stored within a CATIA V4 file. 

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

* `.DLV`
* `.EXP`
* `.MODEL`
* `.SESSION`

How to Import From CATIA V4 
===========================

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

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

.. _catiav4_tessellation: 

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

The visualization data for this format is generated by the HOOPS Exchange tessellation engine.

.. _catiav4_brep: 

B-Rep
=====

B-rep support within CATIA V4 is pretty basic, therefore the list of different types of geometries is small. HOOPS Exchange provides evaluators, which allows you to direct query all of the geometric types available in CGM. 
Additionally, you can use HOOPS Exchange to approximate any specific geometry and provide it in a standard NURBS form.

The list of surface types available in CATIA V4 are as follows:

* B-spline
* Cylinder
* Extrusion
* Plane
* RuledSurface
* SurfOfRevolution

The list of curve types available in CATIA V4 are as follows:

* B-spline
* Circle
* Conic (ellipse)
* Conic (hyperbola)
* Conic (parabola)
* Line

.. _catiav4_pmi: 

PMI
===

CATIA V4 has a basic PMI support, which consists solely of supporting 3D notes. This is supported by HOOPS Exchange.

Assembly
========

Datum planes and construction geometry are supported and accessed through the assembly tree.

Incremental load is available with CATIA V4.

Views
=====

This concept is not supported by CATIA V4.
