Exporting IFC – Creating User Defined IFC Property Sets

The benefits of BIM come about from exchanging information. IFC gives architects and engineers the ability to exchange data between different CAD tools, cost estimation systems and other construction-related applications. From Wikipedia:

“The Industry Foundation Classes (IFC) data model is intended to describe building and construction industry data.

It is a platform neutral, open file format specification that is not controlled by a single vendor or group of vendors. It is an object-based file format with a data model developed by buildingSMART to facilitate interoperability in the AEC industry, and is a commonly used collaboration format in Building information modeling (BIM) based projects.”

An important thing to remember about IFC is that it’s an exchange format, meaning it only exchanges data from one format (e.g Revit) to another (e.g ArchiCad). When exporting, it translates software data into IFC format, then once Imported the IFC data gets translated into the software’s format. During the export, the data gets grouped together to form Property Sets.

A good feature in Revit is the ability to create User Defined IFC Property Sets. This blog post will explain how to do it!

Creating User Defined IFC property sets

In this example, we’re going to create a Property set for a family, in this case a Generic Chair – not for an entire project. This is how we create IFC models for BIM objects.

What we want to do is create an IFC / BIM object of a Generic Chair family with a Custom Property Set.

IFC _parameters

You can see from the image above, in the chair family we have 3 Parameters (CreatedByURL, CreatedBy, and BIMObjectName) that I would like to include in an IFC export as a Property Set.

If I export the model using the standard IFC2x3 Coordination View 2.0 options, only the “Export IFC common property sets” is checked:

IFC _standardExport

This results in an IFC file with the following properties:

IFC _standardifc

This hasn’t exported the 3 Parameters we wanted, only the General properties and the IFC Common property Set (Pset_ManufacturerTypeInformation).

What we can do though, is make an In session Setup and change some options on the “Export property sets” tab.



If we check “Export Revit Property Sets”, our IFC files properties looks like this:

IFC _Revitifc

This has included the 3 Parameters we wanted, but has grouped them under the Property Set titled “Text(Type)”. It has also exported all other Revit parameters such as Phasing, Other etc. which is not ideal (especially for an object IFC).

So what we need to do is change “In session Setup” again and check “Export user defined property sets”:


We can then browse to where the “DefaultUserDefinedParameterSets” text file is saved, open this file and edit it directly or save as a new file (I saved as revitIQ_ParameterSet)

IFC _ParameterSet example

There is an example given at the top of the file, telling you exactly where you need to enter your own data (<within the arrows>)

Basically, we set up the name of the PropertySet, whether it is to be used on instance or on type properties, and the list of elements where we want to apply our properties. Then we add the mapping between the IFC name on the left, and the name of the Revit parameters on the right, along with its data type (e.g Text, Real, Boolean etc.)

For our example, the parameter set looks like this:

IFC _revitIQParameterSet

Now when we export to IFC using the User defined property set we get an IFC file which looks like this:

IFC _Customifc

The properties we wanted are grouped under the title “revitIQ.com” and the Revit parameter names have been changed to the specified IFC names.

This is how we can add common IFC property sets such as Pset_DoorCommon, Pset_FurnitureTypeChair, Pset_WindowCommon etc. to our IFC Objects.

You can find the property set definitions here, then using the same method as above, create the Common IFC Property Sets for the Object type that you are creating(exporting).

Working with IFC can be pretty confusing (well for me!), if you have any questions or something to add then please leave a comment below!

-Talk soon

P.S – I’d love to connect with you on Twitter: here

Join the tribe and Subscribe!


Article written by:

Structural Revit Technician and BIM/Drafting Manager from New Zealand. Founder of revitIQ.com