Taking a slight side-step from the intended contents of the next IFC guide, it’s worth mentioning some considerations when working with the COBie Extension, part of the BIM Interoperability Tools in Revit, and the effect that it may have on your IFC output.
One of the problems we have on almost all projects is that when the COBie Extension is used, the IFCs received do not match the COBie data. This is because the COBie Extension creates additional data that is not part of the modelled Revit information. In particular, the way the COBie Extension handles Contact details and Zones can cause problems.
The Contact and Zone data is added from the COBie Extension panel:
Even though you enter the details, although they are added to the COBie spreadsheet when it is created, the data is not exported to IFC. There are a couple of workarounds to make sure this data is exported.
Contact
One way to have this data export to IFC is by exporting the contact information from the COBie Extension. Set the contact information up as normal, then use the Export button.
Save this XML file in exactly the same folder as the RVT model, and name it the same but with a _COBieContact suffix. For example, the model name FWater-EVO-ZZ-ZZ-M3-IM-0001.rvt would need FWater-EVO-ZZ-ZZ-M3-IM-0001_COBieContact.xml.
When you then export your model to IFC, this information is conveniently added to the IFC.
However, bear in mind that even then, your contact data may not show up in your IFC reader. This is because, more often than not, only the first contact details listed in an IFC file are used. Contact details are stored as an IfcPersonAndOrganization entity. Typically another IfcPersonAndOrganization will already be created in the IFC file from other parameters within your model, so unless you want to start manually editing the IFC file (not recommended!) your efforts will be for nothing.
Unfortunately this means that no matter what you do, there is no guaranteed method of being able to use your contacts unless you duplicate the information in other places. And confusingly, there are multiple locations to enter (some) of this contact data. Using just the contact name / email as an example…
There is the Project Information Author parameter:
If you have custom defined COBie parameters, you may use COBie.Contact.Name:
In the IFC export options, there is the File Header Information:
Or even the COBie.CreatedBy parameter:
But which one to use? Here’s how Revit deals with each one, and which takes priority:
- If you have the IFC Export File Header Information defined, that will be exported to the first IfcPersonAndOrganization. Author’s email will be used for the Contact.Name and Contact.Email, the Author’s Name will be automatically be split down so that the first word is used for COBie.GivenName and the last as COBie.FamilyName.
- If those are all blank, it will use the Author from the Project Information. This will not be used to fill in the Contact.Name or COBie.Email in COBie, only COBie.GivenName and COBie.FamilyName.
- If those are also blank it uses the logged in user as GivenName and makes everything else empty.
Of course, as most IFC readers can be configured to use alternative properties, you can use whichever parameter you prefer, but always set up a custom parameter mapping file so that you can associate the properties with either the IfcSite, IfcProject or IfcBuilding. Our recommendation is to use the File Header Information in the IFC export options, and never fill in COBie.CreatedBy, as this seems to be interpreted better across multiple COBie sheets, certainly when using Solibri.
Zone
In a very similar way, any Zone data created in the COBie Extension will not exist in the exported IFC file. However there is no XML workaround to use for Zones unfortunately. Instead, duplication of data is required:
This requires the creation of additional project parameters for the Zone properties. If you have installed any IFC updates from the Autodesk App Store, a shared parameter file will be available in the C:\ProgramData\Autodesk\ApplicationPlugins\IFC [Revit version].bundle\Contents\[version]\ folder. Look for the file IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt. Add the following instance parameters to Rooms (and Areas if needed):
ZoneName for Zone.Name.
ZoneDescription for Zone.Description.
ZoneClassificationCode for Zone.Category making the resultant property a true IfcClassificationReference.
Complete the data as required in these parameters:
To include rooms in multiple zones, create additional parameters e.g. ZoneName 2, ZoneName 3, etc. (Don’t use ZoneName 1, just ZoneName.)
Next time, back to the planned IFC options.