In this second part of my post about exporting IFC from Revit, we will see how to export classifications, how to override the default export class and how to use the IFC Parameter group.
Parameters under the IFC Parameter group
This is one of the neatest trick I have learn while researching for this article and a great example of the ideas behind the IFC Exporter of Revit. If you add a Revit parameter in the « IFC Parameters » group and name it like the ones defined in the Property Sets, Revit map it automatically to its IFC counterpart. This works for Type and Instance parameters. Here, the Compartmentation property present in the Pset_WallCommon is created without any explicit mapping:
However, you must follow the name and value type defined in the IFC specification, or the parameter will not be exported. These names and values are found here.
Classifications
The IFC specification describe the Classification concept, a way of integrating into the IFC file a reference to an existing classification. You can use this to add a broadly known classification like Uniclass or Uniformat, or even integrate your own.
Every element in your IFC file can then be linked to an instance of this classification, called a Reference. The easiest way to create such a classification is to select an Assembly Code for a given type in Revit. The IFC Exporter will then use this code to create a new classification and assign a classification reference to the instance of this type.
Even if this Assembly Code is a type parameter, the reference is created for every instance in the IFC file and linked to the actual instance with an IFCRELASSOCIATESCLASSIFICATION. In my case, I used the default Uniformat Classification shipped with Revit. The result can be seen in Solibri Model Viewer, in the Classification tab.
You can also create a type parameter ClassificationCode to create a new classification. It will create a new “Default Classification”:
You can also use the Exporter UI to specify the name and other information about your classification. In the Classification Settings, you add the definition of your classification, that will be exported within your IFC file.
You can also add a description associated with your Reference code by typing it with the following format:
IFC Export Mapping
The IFC Options interface allows you to map a Revit category to an IFC one. You can also add a PredefinedType to a specific category.
IfcExportAs
If you want to override these general settings for a specific Revit type, or even for a specific element in Revit, you can use the IfcExportAs parameters. Added as an Instance or Type parameters, in the IFC Parameters group, you can use this parameter in different ways to define how you want some object to be exported.
In my example below, the default interface specifies that every mechanical equipment is exported as BuildingElementProxy. However, we add on the boiler its IFC class, IfcBoiler, in the IFCExportAs parameter, and get the corresponding class in the resulting IFC:
In BIM Vision, only the parent type is displayed: IfcEnergyConversionDevice
We can also use the IfcExportAs parameter to set the PredefinedType of the object. Here, I select the WATER type from the list of values provided by the IfcBoilerTypeEnum. The value is exported in the Type value of the IfcBoiler:
However, it seems that the override possibilities are limited for system families. I try with IfcWallType.PLUMBINGWALL on a wall, but the value wasn’t exported.
BaseQuantitites in rooms
Revit will automatically calculate and export BaseQuantities for the rooms if you select the corresponding option in the Exporter UI:
You can manually add to these base quantities with a custom parameter, prefixed with IfcQty:
Like every other IFC Parameters, make sure to set the proper type, like Area here. Other categories don’t support this feature, so you can only add these IfcQty parameters to the rooms.
The IFC Exporter forum is full of these gems, and I still have a lot to explore. Behind is rather simple interface, the IFC Exporter for Revit hide a lot of functionality and many possibilities for creating IFC files tailored to your needs.