Revit IFC Export #6: Classifications

by | May 10, 2024 | Evolve Consultancy

Probably the most common information to add to any model, or family, is a classification code. A basic requirement of many Exchange Information Requirements, this provides an unambiguous identification of any element.

The codes are typically taken from recognised classification systems, including Uniclass, OmniClass and others. They all follow similar principles in their structure and are composed of a series of tables for specific purposes, with hierarchical codes in each table to identify the element in question.

This information should be stored in an IFC file as a specific type of reference: the IfcClassificationReference*. Some IFC readers differentiate between an IfcClassificationReference and other types of entities, such as IfcLabel so care should be taken to ensure that they are created correctly when exported.

Multiple methods exist for adding classification codes to a model. It depends on which is used whether a true IfcClassificationReference will be created, and which properties will be used in the IFC. The property used will end up in a property set based on the parameter grouping used, and a property named exactly as per the parameter, so be aware when creating any of the parameters identified below that you create them in the same group across all disciplines and models. Remember that it is possible to remap parameters should you need to. Refer to Revit IFC Export #5: Property Sets pt 2 Remapping.

Assembly Code

The assembly code is a built-in parameter used to add a Uniformat classification. Autodesk provides a table of Uniformat codes here: C:\ProgramData\Autodesk\RVT [version]\Libraries\English-Imperial\US\UniformatClassifications.txt.

This can be changed for any classification code. It is only a matter of creating a new text file following the same syntax.

Using Assembly code will generate a true IfcClassificationReference, albeit with the name Uniformat. This can be confusing and so one of the other methods listed below might be better used instead.


The ClassificationCode parameters allow multiple different classification systems to be entered, each of which will convert to an IfcClassificationReference. Multiple classifications can be added with additional ClassificationCode parameters: ClassificationCode(2), ClassificationCode(3), etc, up to ClassificationCode(10).

The parameter needs to be filled in a certain way in order for the values to be converted into IFC correctly. The parameter value needs to be entered as:

[Name of classification] Code : Description

e.g. [Uniclass 2015 Ss] Ss_40_15 : General fittings, furnishings and equipment

Standardised Data Tool

Autodesk provide a very useful, free extension previously titled Classification Manager, now renamed to Standardised Data Tool for Revit. It can be used to add classifications to selections of elements from an easy to search Excel “database”.

MasterFormat, Ominclass, Uniformat and Uniclass tables are provided. As the values are provided in Excel format, it is fairly straightforward to edit these to add any data you might need (hence, presumably, the name change).

The only disadvantage is that these do not automatically convert to an IfcClassificationReference.

COBie Extension

Another of the Interoperability Tools, the COBie Extension can be used to add consistent parameters. During the setup, the COBie Extension adds all the necessary COBie parameters, which can then be completed as needed.

Unlike the Standardised Data Tool, the values have to be entered manually, but of course this does provide complete adherence to the COBie field names.

The resultant property in IFC will not be an IfcClassificationReference.


Similarly to the Assembly Code, Keynote is a built-in parameter used to add a reference to an element. While not intended strictly for this purpose, it can be used to add consistent classifications which can be selected from a table. You will find the provided keynote files here: C:\ProgramData\Autodesk\RVT [version]\Libraries\English\US\RevitKeynotes_Metric.txt.

As it is a simple text file, it is easy enough to create a Uniclass version.

The resultant property in IFC will not be an IfcClassificationReference.

Manual classification

Any text parameter can be created to store a classification code. The property will be a standard IfcText entry.

Consistency is key, and creating manual parameters means that any IFC exported is most likely unique, making data interrogation harder. If using a manual parameter, make sure this is clarified in the BEP or detailed Responsibility Matrix.

It is preferable to use one of the methods above for all models and all disciplines on a project to avoid inconsistencies of values and property naming.

Exporting as IfcClassificationReference

To generate an IfcClassificationReference from any of the above methods, the parameter name can be added to the Classification field name in the Export IFC setup.

  1. Settings can be reviewed, exported and imported from File > Export > IFC.
  2. Click on Modify Setup.
  3. In the Property Sets tab, click on Classification Settings…

Enter the Name of the classification system. This must be consistent to ensure the property is named identically in all IFC models.

The Classification field name is a list of the parameters. Each will be converted to an IfcClassificationReference. For example, the following might be used for COBie:


It is worth noting that if multiple parameters exist on a single element, only one will be exported using this method. The above COBie example is perfectly OK as all three would never exist on the same element.

However, you could not use all the parameters shown in the Standardised Data Tool images above. Only one would convert.


* Details of the IfcClassificationReference can be found here:

The IfcClassification holds the details of the classification system used.

The IfcClassificationReference contains the code and description used, as well as a reference to the relevant IfcClassification.

The parameters are actually being converted to a combination of the two:

#134=IFCCLASSIFICATIONREFERENCE('','Ro_30_10_42','Information manager',#132);

#75656=IFCCLASSIFICATION('','',$,'Uniclass 2015 Ss');
#75657=IFCCLASSIFICATIONREFERENCE($,'Ss_40_15','General fittings, furnishings and equipment (FF&E) systems',#75656);