Solved

How to read IfcPropertySingleValue from an IFC file?

  • 3 April 2017
  • 7 replies
  • 19 views

I have a workspace that converts data from an IFC file to PostGIS. The IFC file contains data I would like to convert in IfcPropertySingleValue elements. Multiple IfcPropertySingleValues are combined in an IfcPropertySet, which is related to a IfcBuildingElementProxy element by means of a IfcRelDefinesByProperties. Converting the IfcBuildingElementProxy elements works, but I would like to have the related data in the IfcPropertySingleValue elements too. How could that be achieved? The classes IfcPropertySingleValue, IfcPropertySet and IfcRelDefinesByProperties do not show up as feature types in the IFC reader.

icon

Best answer by daveatsafe 5 April 2017, 18:40

View original

7 replies

Userlevel 2
Badge +17

The property set information is stored on the IFC feature geometry as traits, rather than as feature attributes. The IFC feature geometry will be an aggregate of Body and Annotation geometries, plus Null geometries for each PropertySet, with the Property Set values stored as traits on the Property Set geometry. You can convert these traits to attributes using the GeometryPropertyExtractor transformer.

However, it would be simpler to use the FME Revit reader, which can read IFC files as well, and has Data Views that automatically simplify the complex IFC data structure for you. The default Building Elements with hierarchy data view should produce PostGIS compatible features.

Thank you @DaveAtSafe. Unfortunately, I don't have access to the full version of Revit, which seems to be necessary to be able to use the FME Revit exporter, which can produce the files the FME Revit reader works with.

I have tried the GeometryPropertyExtractor, but I do not notice an effect when I add it to the translation. The output is the same with or without the transformer. Should the GeometryPropertyExtractor somehow read the available traits from the IFC data source, giving me the option to map them to an output database column?

I do see that the geometries are aggregates of empty geometries and non-empty geometries. Should the input geometry perhaps be deaggregated and the empty geometries be isolated first? Could something like that make the traits (PropertySet values) visible in the workbench?

By the way, I am rather new to FME, so there might be obvious things I am missing.

Userlevel 2
Badge +17

Hi @fransknibbe - IFC is one of the most complex formats we read, so don't worry about missing anything.

The Revit reader will read IFC files directly, there is no need to use the FME Revit exporter. The RVZ file produced by the Exporter is basically a zipfile containing an IFC and a bunch of CSV files. The IFC reader can read RVZ files as well, and is the basis for the Revit reader.

The Revit reader's Building Elements with hierarchy data view will extract all the property sets from the geometry and move them to features attributes, prefixed with the property set name. I would recommend starting with this to read your IFC file.

Once you become more familiar with FME, you may find the workflow in the data views useful in illustrating how to work with the raw IFC data structure. The data views are implemented as workspaces, and are fully annotated to explain the process. They can be found in the FME\\datasources folder and you can open and view them in FME Workbench.

Hello @DaveAtSafe. Thanks again for the advice. It is good to know it is possible to use the Revit reader on plain IFC files. It gave me more feature types and more direct access to data, but the data I would like to transform still were not available as attributes of the BuildingElementProxy feature type. The values I am looking for are in the PropertySet 'Identity Data'. The reader does make values from that PropertySet available, but not the values I would like to transform. Is there a way to expose additional feature attributes in the Revit reader?

About the tip about data views: I looked in the FME\\datasources directory and all I can see is *.fds files. Those are custom format files, right?

Badge

Hi @fransknibbe - IFC is one of the most complex formats we read, so don't worry about missing anything.

The Revit reader will read IFC files directly, there is no need to use the FME Revit exporter. The RVZ file produced by the Exporter is basically a zipfile containing an IFC and a bunch of CSV files. The IFC reader can read RVZ files as well, and is the basis for the Revit reader.

The Revit reader's Building Elements with hierarchy data view will extract all the property sets from the geometry and move them to features attributes, prefixed with the property set name. I would recommend starting with this to read your IFC file.

Once you become more familiar with FME, you may find the workflow in the data views useful in illustrating how to work with the raw IFC data structure. The data views are implemented as workspaces, and are fully annotated to explain the process. They can be found in the FME\\datasources folder and you can open and view them in FME Workbench.

OMG!!! This! I am so glad I found this comment of yours. It solved a BIG issue for me. I had no idea I could use the Revit reader with IFC files instead of the IFC reader. Doing this allowed me to access everything I needed from the Revit model that I couldn't access from the IFC reader! You sir, ROCK!

 

 

Badge

Hello,

I have a similiar question. I'm trying to convert IFC files to Excel. What I'm after is the IfcClass + Pset + Attribute + Value combination, so the GeometryPropertyExtractor is perfect. That's part 1, solved.

Now, part 2:

How would I go about exposing ALL of the attributes the PropertyExtractor found dynamicly? I know there is an AttributeExploder, that kind of does that but it creates two columns (name, value) which is not quite what I'm after. I would have to do some kind of transpose, or crosstab operation on those. Not so great...

Is there no out of the box solution for "simply" exposing all attributes at once?

Userlevel 2
Badge +17

Hello,

I have a similiar question. I'm trying to convert IFC files to Excel. What I'm after is the IfcClass + Pset + Attribute + Value combination, so the GeometryPropertyExtractor is perfect. That's part 1, solved.

Now, part 2:

How would I go about exposing ALL of the attributes the PropertyExtractor found dynamicly? I know there is an AttributeExploder, that kind of does that but it creates two columns (name, value) which is not quite what I'm after. I would have to do some kind of transpose, or crosstab operation on those. Not so great...

Is there no out of the box solution for "simply" exposing all attributes at once?

Hi @ras,

To expose the attributes ot the workspace, you need to manually do so in the AtttributeExposer.

However, if you want them automatically added to the Excel output, you can create a schema feature from data and use that with a dynamic schema in the output Excel feature type. The SchemaSetter transformer will create a schema for you.

Reply