
##############################
A3DAsmModelFileExportToXMLFile
##############################

.. c:function:: A3DStatus A3DAsmModelFileExportToXMLFile(const A3DAsmModelFile *pA3DAsmModelFile, const A3DRWParamsExportXMLData *pParamsExportData, const A3DUTF8Char *pcXMLFileName, unsigned int *uMapSize, unsigned int **puMapXmlIds, A3DEntity ***ppMapProductOccurrences)

   .. rst-class:: sig-pretty-signature
   
      | :c:enum:`~A3DStatus` A3DAsmModelFileExportToXMLFile(*const* :c:type:`~A3DAsmModelFile`\ \* **pA3DAsmModelFile**\ , *const* :c:struct:`~A3DRWParamsExportXMLData`\ \* **pParamsExportData**\ , *const* :c:type:`~A3DUTF8Char`\ \* **pcXMLFileName**\ , *unsigned int* **uMapSize**\ , *unsigned int* **puMapXmlIds**\ , :c:type:`~A3DEntity`\ \*\*\* **ppMapProductOccurrences**\ )
   
   Write a model file to a physical file in XML format.
   
   This function writes the :c:type:`~A3DAsmModelFile`\ entity to a physical file, and fills two arrays of size uMapSize (puMapXmlId and ppMapProductOccurrences) that will act as a map of the product occurrences and their respective IDs in the XML file.
   
   **Parameters**
   
   
      **pA3DAsmModelFile**\ : References the :c:type:`~A3DAsmModelFile`\ to be written out.
   
      **pParamsExportData**\ : References the parameters for export.
   
      **pcXMLFileName**\ : References the path of the file into which the function stores the model file.
   
      **uMapSize**\ : Size of the two following arrays. If set to null, the map construction is bypassed.
   
      **puMapXmlIds**\ : Array of the product occurrence IDs in the XML file. If set to null, the map construction is bypassed. It has to be freed with the custom free memory callback.
   
      **ppMapProductOccurrences**\ : Array of the product occurrences in the XML file. If set to null, the map construction is bypassed. It has to be freed with the custom free memory callback.
   
   
   **Returns**
   
   
      A3D_SUCCESS in case of success or an error code
   
   




