Updating IFC Example

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

  • FME 2018.x


This example reads an existing IFC dataset and writes it back to IFC format with some of the Space property sets updated from information in an Excel spreadsheet.



The example consists of two workspaces: one to create the Excel spreadsheet and another to use that spreadsheet (once edited) to update the contents of the IFC dataset.


Source Data

The source IFC models of the Riverside Building in Washington, DC are publicly available from Nemetschek Vectorworks. Please download the data and extract the data to use the DC_Riverside_Bldg_LOD_300.ifc file. Any of the LODs will work for this example, and LOD100 can be expected to run faster due to its lower level of detail.



Workflow Description: Excel Creation and Update

Extract Spaces List

The Excel spreadsheet will be created as the first part in our workflow. To create the Excel file, we need to extract a list of spaces from the IFC file. A quick way to do this is to use the Revit reader with the Spaces Data View. The Revit reader can read IFC files as well as RVZ files, allowing you to filter the IFC when reading.


Here in the workspace SpacesToExcel.fmw, the IFC file is being read and a list of spaces extracted. The Sorter transformer sorts them into order after which they are written to a spreadsheet with an Excel Writer.

Note that we have connected Space LongName from the Sorted attributes to the Original Room Usage and Space Name to the Room Number. To ensure that the attributes are connected, make sure the arrows for the Room Number and Original Usage are green in the Writer attributes.


Update the Space Usage in Excel

This Excel spreadsheet has columns for the room number, usage, and new usage:


To update the IFC data, it is simply a matter of editing the spreadsheet and running the second FME workspace. Here the usage for rooms 510 and 518 have been modified from 'Open Office' to 'Storage'.


Workflow Description: IFC Updates

The workspace UpdateSpaces.fmw first reads the IFC data and then merges the Excel data onto each Space.



Updating Longname Property

Updating the general Longname property is simple and can be done with a GeometryPropertySetter transformer, setting traits from attributes.



Updating Identity Data Property

Updating the Identity Data property set is a little more complex.


Because the property sets reflect the IFC file structure, they are stored on the feature as a Geometry Instance, which is a reference to a table row stored in a library, rather than a part of the feature itself.

The diagram below illustrates the feature structure


If we attempt to update the traits on the referenced Null geometry, FME will dereference that geometry onto the feature to create the following structure:


The Writer is expecting the property traits to be on the Aggregate level rather than the Null level, and so will not use them. The solution is to add new traits to the Geometry Instance level:


Next we delete the instance reference geometry, which removes the original traits and dereferences the geometry:


We now have the update traits in the form expected by the writer.

Each Property Set must be updated individually:




If we view the original and updated IFC files, we can see that the modifications were successful.

Original Space:


Updated Space:



Data Attribution

Data was obtained from the Riverside Building in Washington demo project produced by Nemetschek Vectorworks.

Was this article helpful?



Please sign in to leave a comment.