:orphan:

#############
VDA-FS Reader
#############

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

+----------------------------------------------------------------------+
|                        **VDA-FS**                                    |
+-----------------------------------------+----------------------------+
| **File Extension**                      | VDA                        |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | 1.0 and 2.0                |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |an| |in|   | 
+-----------------------------------------+----------------------------+
| :ref:`vda_fs_tessellation`              | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`vda_fs_brep`                      | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`vda_fs_pmi`                       | |c_grey| N/A               | 
+-----------------------------------------+----------------------------+

The VDA-FS file format was created by the German Automotive Industry Association (VDA) in the 1980s. It was developed to facilitate the transfer of surface models between different CAD systems in the automotive industry. The format was standardized under DIN 66301 and has since been largely replaced by more modern formats like STEP. 

The HOOPS Exchange VDA-FS Reader provides full access to the assembly, B-rep, and view data stored within a VDA-FS file. Most files commonly have a *.VDA* extension.

HOOPS Exchange geometry access for VDA-FS includes:

* **B-rep:** Access to exact geometry where present in the source file.
* **Tessellation:** Can be generated by HOOPS Exchange for visualization.


How to Import From VDA-FS 
=========================

If you are new to reading models with HOOPS Exchange, see the :doc:`basic load workflow </guide/basic_operations/load_model`>` section of the Programming Guide.

To load a VDA-FS file, use :cpp:func:`A3DAsmModelFileLoadFromFile`.

Below, the ``A3DParamsLoadData`` structure is used to customize the loading behavior. See our :cpp:struct:`API reference manual <A3DParamsLoadData>` for more information about this important data type.

.. 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.vda", &sReadParam, &pModelFile);

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


.. _vda_fs_tessellation:

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

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


.. _vda_fs_brep:

B-rep
=====

The VDA-FS B-rep only supports geometry in NURBS form.
The only types of surface and curve geometry that can be found in a VDA-FS B-rep is:

* B-spline curve
* B-spline surface
* Circular curve


.. _vda_fs_pmi:

PMI
===

This concept is not supported by VDA-FS.


Assembly
========

VDA-FS files may contain multiple components or objects. HOOPS Exchange
represents these as a model tree that you can traverse using the standard
structure APIs.

Datum planes and construction geometry are also supported and accessed through the assembly tree. Incremental load is not supported by our VDA-FS reader.

To learn more about how HOOPS Exchange handles assemblies, see our tutorial about :doc:`assembly traversal </tutorials/c/print-assembly-structure>`.


Views
=====

This concept is not supported by VDA-FS.


Metadata and Attributes
=======================

HOOPS Exchange can expose colors, materials, layers, and user-defined metadata
when they are present in the source file.

See :ref:`attributes_and_metadata` for details on how to query and interpret
this information.