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.
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:
This results in an IFC file with the following properties:
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:
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)
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:
Now when we export to IFC using the User defined property set we get an IFC file which looks like this:
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!
View Comments (10)
Hi Karl,
really nice blog you have here!
But i did exactly as you did, but it doesn't work in my IFC file (in Solibri model viewer).
Here's my trial. Do you see anything unusual?
#
# Format:
# PropertySet: Bartels T IfcElementType
#
#
#
Should i be shared parameters? Or can it just be project parameters? When i export 'Revit property sets', al my parameters are shown in the IFC, but as you told in your blog, they are all over the place ..
With kind regards,
Merlijn
Hi Merlijn,
I would remove the # next to your text, ie:
#
PropertySet: (tab)Bartels(tab) T (tab)IfcElementType
(tab) Name (tab) DataType
#
The # separates property sets.
It shouldn't matter between shared or project parameters. Give that a go and if you still have trouble let me know.
Thanks for reading!
Kind regards,
Karl
Hi Kart,
It's really good to see such great work of yours.
Since i am little new to this, can you guide me about the very first step?
We want to associate miscellaneous information with families and to do that with parameters sound a good idea.
You created 3 Parameters (CreatedByURL, CreatedBy, and BIMObjectName) in the chair family for an IFC export as a Property Set.
How can we perform this step in Revit? i.e. making 3 parameters under the 'Text' category?
I tried this with making project and shared parameter but then the parameters come under Properties and not TYPE PROPERTIES.
Waiting for your help.
Regards
Arnas
Hi Arnas,
In your Family, under 'family types' click 'add parameter'. Make it a Family Paramater (specific to just this family) - give it a name, a discipline (usually just 'common'), a type of parameter (just 'Text' as in my example), and then Choose where to Group it under (Text Group in my example), then make it a Type Parameter.
Hope this helps, if not I'll add this step to the main blog post.
Kind regards,
Karl
Thank you for the detailed answer. Yes it helped me adding the parameters in the family. :)
I particularly followed your post. It did give me a 'Text' propertyset after checking 'export Revit property sets' option. But upon checking 'export user defined property sets' option, it does not give me the propertyset (checking through Solibri model viewer). I did also follow your above comments to Kart but that does not work out too :(
Any hint? Could my Revit version of 2014 be a problem? I have edited the userdefinedparameter.txt in the parent folder at one instant. Secondly in next trial, created the new text file according to what you showed. Unfortunately, nothing is working out.
Would appreciate your response on it!
Your comments to Merlijn van Leeuwen*
Hi Arnas,
It's hard to know what's going wrong without seeing your .txt file. Either send it to me karl@revitiq.com or post your text as Merlijn did.
Kind regards,
Karl
Hi Karl,
It worked fine as soon as I updated my Revit version. :)
Many thanks!
Profound regards,
Arnas
Can we use this for costum instance parameter and set up as property set?
HI Karl Tanner,
I would like ask you, which is the reletion between Shared parameter and IFC Property set like Pset_wallcommon?