Skip to main content

Hello to all,

I need to add a missing property into an existing Pset. I tried the workbench shown by Liz in the post “Updating IFC example” but it doesn’t work in my case. Before testing with an Excel sheet contaning GUID and properties to add, I just test to add manually a single property:

First, I created 2 attributes:

Then I used the GeometryPropertySetter:

With the XQuery:

I find my previous properties in the “Proprietes” Pset, but I don’t have the new one “TypeVitrage”. Did I forget something or do I have to use “IfcPropertySetDefinitionCreator” ? 

Thank in advance

Best regards

Bruno

Hi @bruno,

I think you need to disconnect the top stream, which is sending an unchanged copy of your data to the writer as well.

If you would like to share a copy of your source IFC file, I can help adjust the workspace for the best results.


Hi Dave,

Thank for your answer. As proposed, I removed the top stream but nothing changes. I still don’t have the “TypeVitrage” property for each Window. I attached my IFC file …

Thank in advance

Best regards

Bruno


Hi bruno

Writing IFC is very complex. I used the tutorial from FME support site to build my workbenches.

This pages is a collection of some BIM-themed workbenches: https://support.safe.com/hc/en-us/articles/25407429026829-BIM-Tutorial

 

IHMO this ist the best example for beginners:

https://support.safe.com/hc/en-us/articles/25407715698317-AutoCAD-to-IFC-Conversion-Example


Hi Thomas,

Thank for your links. I was inspired by the last one (AutoCAD to IFC conversion) which I modified to obtain the attached workbench. I managed to add a property “NatureVitrage” into the existing property set “Proprietes” for all the windows. But all other existing properties contained into the property set “Proprietes” have been removed. On other hand, all the existing property set “Proprietes” attached to other objects (wall, doors, etc.) have also been removed, and I also lost the window’s geometry.

Does anyone have an idea ?

Best regards

Bruno


Hi Thomas,

As I'm not sure I can add my property using workbench, I went with another approach using a python script. So, I send the IfcWindows in the following script where I add my custom trait into the IfcPropertySet named “Proprietes”:

The print command shows that the trait “TEST” is in the list of trait names. But at the end, the IFC writer seems not able to add this property in the IFC file :-(

Do you have an idea why?

Thank in advance

Best regards

Bruno


Hi Bruno,

I’m sorry I missed your reply with the your IFC file. The community is having an issue right now with attachments, so I am not able to download it, but you can send it to me directly at dave.campanas@safe.com.

The property sets must be written as a single object, so the entire property set needs to be set, not just the new property. You can use a GeometryPropertyExtractor in the first part of your workspace to extract the existing properties to feature attributes, then set those along with your new property. In the GeometryPropertyExtractor, set Prefix Extracted Trait with Geometry Name to Yes, but leave all the other settings as is - this will extract all property set traits to attributes.

We have an example on updating an IFC property set at: https://support.safe.com/hc/en-us/articles/25407691516813-Updating-IFC-Example


Hi Dave,

I used GeometryPropertyExtractor  to get the trait from my windows. First, I only get the “Code Objet” trait :

Then I create my new property “NatureVitrage” which I set as property (also with the “Code Objet” property):

And finally, I removed the initial “Proprietes” Pset:

But at the end, I only have the “Code Objet” property attached to my window through the Pset “Proprietes”

 

I send to you my workbench with the IFC model …

Thank in advance

Best

Bruno


Hi Bruno,

The NatureVitrage property is not part of the Proprietes property set defined in the source IFC file, so it must be added to the definition in order to set it. I added a section to the workspace to do this:
 

I am attaching an updated workspace.


Hi Dave,

Thank for your help. Indeed, it was necessary to add the definition of my custom property. It works well  👍

Now, I will try to filter on specified object given by the GUID in the following woksheet ;-)

 

Best 

Bruno 


This conversation moved to direct emails in order to better share the workspaces and data, but I thought I would update the conversation here for other community members also looking to update IFC files.

After an attempt to dynamically update the property sets in place, we moved to a process that:

  • extracted the property sets to feature attributes in the form <property set name>.<property name>
  • removed the old property set geometries form the feature
  • updated the feature with changed/new attributes in the same form
  • used Python to dynamically extract all attributes in the form Abc.Xyz and create new property set geometries from them, suitable for writing to IFC

This process seems to work well, as long as the property set definition features are carried over from the source IFC.

The new IFC reader introduced in FME 2024 does not supply property set definitions, so it is best to use the original reader with this process. We are introducing a new IFC writer in FME 2025 which will work with the output from the new reader, and will simplify updates a lot. But for now, please have a look at the attached workspace.

 


Reply