:orphan:

##########
QIF Reader
##########

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

+------------------------------------------------------------------------------+
|                               **QIF**                                        |
+-----------------------------------------+------------------------------------+
| **File Extension**                      | QIF                                |
+-----------------------------------------+------------------------------------+
| **Supported Versions**                  | 3.0                                |
+-----------------------------------------+------------------------------------+
| **Platforms**                           | |wy| |ln| |mn| |an| |in|           |
+-----------------------------------------+------------------------------------+
| **Tessellation**                        | |t_green|  Supported (computed)    |
+-----------------------------------------+------------------------------------+
| :ref:`qif_brep`                         | |c_grey_g| Supported               |
+-----------------------------------------+------------------------------------+
| **PMI**                                 | |c_grey_g| Partially supported     |
+-----------------------------------------+------------------------------------+

The QIF (Quality Information Framework) format is an ANSI/QIF standard used primarily for representing manufacturing quality data, 
including product and manufacturing information (PMI), metrology, and measurement results, in a structured, model-based XML format. 

QIF is widely adopted in industries that require closed-loop quality processes, such as aerospace, automotive, and 
precision manufacturing, enabling interoperability between CAD, CAM, and CMM/metrology software. 

The file extensions of QIF files that you can expect to be loaded by HOOPS Exchange include:

* `.QIF`

.. note:: Our current support for QIF file format is provided as beta version and isn't available in HOOPS Visualize products/HOOPS Demo Viewer yet.

How to Import from QIF
======================

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

To load a QIF file, use :cpp:func:`A3DAsmModelFileLoadFromFile`.
The :cpp:struct:`A3DParamsLoadData` structure is used to customize the loading behavior:

.. code-block:: c

   A3DAsmModelFile* pModelFile = NULL;

   A3DRWParamsLoadData sReadParam = A3D_MAKE_DATA(A3DRWParamsLoadData);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

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

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

.. _qif_brep:

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

* Topology is not supported for Aggregate13, ArcCircular12, ArcConic12, Extrude23, MeshTriangle, PointCloud, PointCloudSet, Polyline12, Binary Polyline13, Offset23, Ruled23, Spline12, Spline23.
* Transforms are not supported.
* Body wire (Body form="WIRE") are not supported.
* Feature nominals semantic is not supported.
* Metadata is not supported, except for the visibility, label, id and UUID from parts.
* xsi:type attribute is not supported and the file won't be read if it is present in the file.
* Only the following PMI type is supported: Notes. The others only have their label and id read, with links to their associated geometry.
* The assembly structure is not supported. Only the first part of the assembly is read.
