:orphan:

##########
FBX Writer
##########

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

+----------------------------------------------------------------------+
|                        **FBX**                                       |
+-----------------------------------------+----------------------------+
| **File Extension**                      | FBX                        |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | 7400, ASCII or Binary      |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |ay| |iy|   | 
+-----------------------------------------+----------------------------+
| **Tessellation**                        | |c_green|                  | 
+-----------------------------------------+----------------------------+
| **B-rep**                               | |c_grey| N/A               | 
+-----------------------------------------+----------------------------+
| **PMI**                                 | |c_grey| N/A               | 
+-----------------------------------------+----------------------------+

The FBX file format (Filmbox) was originally developed by Kaydara and is now owned by Autodesk since 2006. It was created to provide interoperability between various digital content creation applications and has become a standard in the 3D modeling and animation industry.

The HOOPS Exchange writer allows developers to export the PRC tree to FBX.

HOOPS Exchange allows to control the format type to be selected (ASCII or binary file), as well as the folder in which the textures are written.

The texture are always exported to an external file, whichever export type is used (ASCII or Binary). To customize the exported texture location, see :struct:`A3DRWParamsExportFbxData`.


How to Export to FBX
=====================

To export a model to FBX, use :cpp:func:`A3DAsmModelFileExportToFbxFile`.
Customize the export using :cpp:struct:`A3DRWParamsExportFbxData`.

.. code-block:: c

   A3DRWParamsExportFbxData sParamsExportData = A3D_MAKE_DATA(A3DRWParamsExportFbxData);
   // ... set export parameter options

   A3DAsmModelFileExportToFbxFile(pModelFile, &sParamsExportData, "path/to/file.fbx");

Export parameters are available using :struct:`A3DRWParamsExportFbxData` and export is performed by calling :func:`A3DAsmModelFileExportToFbxFile`.

.. rubric:: Assembly

To understand and manipulate the model tree before export, see
:doc:`assembly traversal </tutorials/c/print-assembly-structure>` or the :doc:`Tree Traversal API </guide/tree_traversal>`.

Before exporting, ensure that the model contains the geometry and tessellation
you expect. See our pages on :doc:`tessellation  <guide/geometry/getting_tessellation>` for tips on generating visualization data for export.


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

The export is available for Windows, Linux and macOS only.

FBX-DOM files are unsupported.
