FME Version
Introduction
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.
Downloads
- Download Data (Data can be downloaded from Vectorworks)
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:
Result
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.
Comments
0 comments
Please sign in to leave a comment.