18 May 2022
Export IFC from RVT using Model Derivative API
Recently, many customers asked how to export IFC from a Revit model (RVT file) by using Model Derivative API more frequently. So, I collected their questions and wrote this blog. I hope it will help our customers who use IFC with Forge.
Known Limitations
- Model Derivative API doesn't support custom IFC export settings set created by the recent Revit IFC Addin, which IFC exporter version is newer than v22.1.1.0. (Wishlist item: RVTLMV-3166)
- Model Derivative API doesn't support custom IFC property sets, requiring an extra user-defiled property set file. (Wishlist item: RVTLMV-3167)
- Model Derivative API doesn't support exporting IFC from a specific Revit view. Instead, it will export an IFC file from the whole model without the view-specific info. (Wishlist item: RVTLMV-3169)
How to export IFC from RVT by using Model Derivative API?
We can send an RVT-> IFC translation request using the below job configuration. It will produce an IFC2x3 file for you.
curl --location --request POST 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' \
--header 'Authorization: Bearer {YOUR_ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--header 'x-ads-force: true' \
--data-raw '{
"input": {
"urn": "{YOUR_RVT_URN}"
},
"output": {
"formats": [
{
"type": "ifc"
}
]
}
}'
If you want to export the IFC4 format from the model, or you have your own IFC settings saved in the RVT file, you will need to specify the name of the IFC Settings Set like the following. See IFC output of API documentation here.
curl --location --request POST 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' \
--header 'Authorization: Bearer {YOUR_ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--header 'x-ads-force: true' \
--data-raw '{
"input": {
"urn": "{YOUR_RVT_URN}"
},
"output": {
"formats": [
{
"type": "ifc",
"advanced": {
"exportSettingName": "IFC4 Reference View"
}
}
]
}
}'
Note. There is a known issue that the Model Derivative service cannot well handle the exportSettingName for the IFC file (logged as DERI-8383). Therefore, please use IFCExportOption as a workaround at this moment. Our engineering team is working on the fix. We apologize for the inconvenience caused to you. (Our engineering team deployed the fix to DERI-8338 on May 23rd, 2022, UTC+8)
What is the IFC Settings Set?
An IFC Settings Set is the name of the IFC export setup saved in the Revit `.rvt` file.
Forge Model Derivative API uses the following names representing Revit built-in IFC export setup shown in the above dialog. See IFC Export Setup Options | Autodesk Knowledge Network to learn about Revit built-in IFC export setups. (Note. The following IFC export setup names only support Revit 2017 and later versions)
- IFC2x3 Coordination View 2.0
- IFC2x3 Coordination View
- IFC2x3 GSA Concept Design BIM 2010
- IFC2x3 Basic FM Handover View
- IFC2x2 Coordination View
- IFC2x2 Singapore BCA e-Plan Check
- IFC2x3 Extended FM Handover View
- IFC4 Reference View
- IFC4 Design Transfer View
Wich IFC format does Model Derivative API or Revit support?
Currently, Revit supports IFC4 and IFC2x3. Its main features of exporting/importing IFC are provided by our open-source project Autodesk/revit-ifc. Model Derivative API uses Revit to export IFC from RVT files, so the supported IFC version will be the same as Autodesk/revit-ifc provided.
Note for IFC4.x:
- https://blogs.autodesk.com/revit/2022/02/09/now-available-revit-ifc-manual-version-2-0/ (Point Releases (4.x) already in the pipeline, including enhancements and new classes for infrastructure including bridges, railways, roads, ports, and waterways.)
- https://technical.buildingsmart.org/standards/ifc/ifc-schema-specifications/ (BuildingSmart withdrew IFC4x1 and IFC4x2, and they are developing IFC4x3)
- https://github.com/Autodesk/revit-ifc/releases/tag/IFC_v22.3.0.0 (Added additional generic support for IFC4.x files for 2022.1)