Skip to main content

Hello,

I am trying out how IfcSpace elements in Building Information Models can be transformed to 3D geometry in PostGIS. I have made a simple building model in Revit in which a few spaces are defined. The model is exported to an IFC file. When I open the IFC file in an IFC viewer (Solibri) I see the spaces and they can be drawn on screen as 3D geometries. So somehow it is possible to derive 3D geometries from the IFC file. However, if I do a (default) translation from the IFC file to PostGIS, I see no geometry for the spaces being created. All space have the same geometry value (in WKT): GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION EMPTY)).

Is it possible to transform IfcSpaces to 3D geometries or even 2D geometries in FME?

Hi @fransknibbe, have you set Yes to the Read IfcSpace Geometries parameter of the IFC reader?


Thank you! I had not set "Read IfcSpace Geometries" to "Yes". It makes me feel rather stupid, but I did not know of that parameter.

 

The transformation is producing geometry in PostGIS now, although it is not 3D. The output is a GeometryCollection containing 2D MultiLines and 2D Polygons. I will have to find out what those geometries represent and if I can obtain the height of the IfcSpace from somewhere to make a 3D shape based on the 2D footprint.

The IfcSpace output from the IFC reader is a complex aggregate geometry that includes the solid geometry of the body, along with Null geometries containing the Property Set information.

To convert the IFC feature into one suitable for PostGIS (or any other GIS), please use the following three transformers:

GeometryPropertyExtractor: this will promote the Property Set traits up to feature attributes. Set Prefix Extracted Trait with Geometry Name to 'Yes' in order to retain the property set name on the attributes.

GeometryPartExtractor: this will extract the body geometry of the Space, discarding the Property Sets. Click on the ... button for the Geometry XQuery and add the test This Part - Geometry Name = Body. The result will be an Extruded Solid geometry with all attributes.

GeometryCoercer: may not be needed, but this will convert the solid to a surface geometry. Set the output Geometry Type to fme_composite_surface.

I am attaching a workspace illustrating the use of these transformers: extractspacebody.fmw

Alternatively, you can use the Revit reader to read the IFC file, choosing Building Spaces for the Revit Data View. The IFC and Revit readers can read both RVZ and IFC files - the difference is that the Revit reader has Data Views to pre-process the data for simplification. The Revit reader will also expose the attributes it extracts from the Property Sets.


Reply