Skip to main content

Hello,

I would like to know if the IfcZone are managed with the version 2024?

Best regards

Bruno

Hello ​@bruno, thank you for posting! I'm happy to report that IfcZones are supported in the new implementation of the IFC reader in FME 2024.1 (eg. use the IFC_API Reader). Unfortunately, we only support reading IfcZones at this time, writing support is still underway. 

Zones will be read as features without geometry that have attributes tracking which elements belong to the Zone represented by the feature (eg. ifc_group_member{}). Happy to help, Kailin. 


Hello Kailin,

Thank you for your answer. IfcZone are now read. But, if I use the Ifc_API Reader, the GeometryPropertyExtractor can not extract a given Trait which is extracted when I use the IFC STEP/XML reader.

Do you have an idea why?

Thank you in advance

Best regards

Bruno


Hello ​@bruno, thank you for the update! The new IFC Reader does not require you to extract traits - properties will be stored as a feature attribute. You should either see them in table view, or they may be unexposed in the Feature Information window (you can use the AttributeExposer to bring them into table view!). Happy to help, Kailin.


Hi Kailin,

I tried the trial version 2025.1, first to read the IfcZone with the new IFC reader. It seems that all previous geometry traits are now exposed as feature attribute but through a list. In the following example, using traits, I was able to catch the Ifc property “A Benefice” for example. Now, I have a list with different information (Description, Formula, etc.).

 

Is there an easy way to get the value of the attribute “A Benefice” ? I add that I don't know in advance the properties to retrieve. I read them from an Excel file. So I can't hard-check the properties by selecting a check box.

 

 

 

Thank in advance

Best regards

Bruno


Hello ​@bruno, thanks for your feedback! can you explain what you’re trying to do a bit more. I think the only and or best way to expose attributes would be through the AttributeExposer > Import from Cache. 

Are we interacting or transforming these attributes in any way? If we are not, we may be able to avoid exposing and use the SchemaScanner to produce a schema feature, which could be referenced in a dynamic writer (similar to this method). Happy to help, Kailin. 


Hello Kailin,

Thank you for your answer. My objective is to check if all needed properties are present in the IFC model. For this, I use an Excel file as input Data where needed properties are described like this for spatial element:

 

For other objects that inherit from IfcElement, a special property is given “Code Object”. And a property Set is attached to each “Code Object”.

So my workench read both the IFC file and the Excel file. Then, I test if all properties are present depending the Ifc classe for spatial element and depending from the “Code Object” for non spatial element.

Before, I used geometry traits to directly retreive specific value properties depending IfcClasse or “Code Object”.

 

What I think understand is that now, I can access to all combined properties. And I am able to get the value when the property exists: 

 

But when the property doesn’t exist, I have the following missing informations (Description, Formula, NominalValue, PropertyType): 

Do I understand correctly?

Best regards

Bruno


Hello ​@bruno, I think if you merge the table showing all the properties to test onto the features as lists, you could use a Tester to test  @Value(@Value(PSET{0}).@Value(PROPERTY{0})) != ‘’. So basically, we build the name of the attribute to test on the fly. I have not tested this, so let me know if you run into issues. Happy to help, Kailin. 


Hello Kailin,

I merged my Excel properties (ExcelPsetName.ExcelPropertyName) with my IFC properties (IfcPsetName.IfcPropertyName). Then  I have a PythonCaller where I call feature.getAllAttributesNames().

But sometimes, for an Ifc Property, I get a list with 2 values or a single value. I guess that is because whan the Ifc class Type has the same property, I retrieve the property from the instance and from the type.

Is it right ? If yes, does the first value {0} always correspond to the instance property ? 

Thank in advance

Best regards

Bruno

 

 


Hello ​@bruno, yes that seems to be correct, according to the documentation (see: “Property and Quantity Sets as Attributes”). <PropertySetName>.<PropertyName>. If there are multiple property names relating to the same property set, FME will create the list. Best, Kailin.