BIM 42

IFC from Revit - Part 2

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:

The Compartmentation property

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.

The Compartmentation property

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.

The default classification

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”:

A new 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.

Naming the classification

You can also add a description associated with your Reference code by typing it with the following format:

<Classification_Code>:<Description_Of_The_Code>

A description is added to the code

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.

IFC Export settings

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:

Exporting a specific Revit element

In BIM Vision, only the parent type is displayed: IfcEnergyConversionDevice

Export see in BIM Vision

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:

Add a PredefinedType

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:

Exporting BaseQuantites

You can manually add to these base quantities with a custom parameter, prefixed with IfcQty:

Adding new BaseQuantites

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.

This project is maintained by simonmoreau