buildingSMART Forums

How to handle/model construction phases in IFC4


A participant in the Norwegian technical room asked how construction phases are supposed to be handled in IFC4 add2. He finds something in ifcContext, but he struggle to understand how it is supposed to be used.

Anyone that can help?


Do you mean “NEW / EXISTING / DEMOLISH” designations?

If so, this happens on an element-by-element basis. If you look at the “Pset_xxxxCommon” for each element class, like IfcColumn > Pset_ColumnCommon, you will see the attribute “STATUS”. There is a PEnum_ElementStatus which formalize the different phases.


Thanks - I believe this cover the question from the developer - I’ll come back to you if he has more questions.


Hello, I understood the systematic for Building Elements. But can you explain how to put the status information to let’s say the IfcFurnishingElement or to the IfcFlowTerminal?

This would be very helpful for me.


Sorry, now i found the location to put the „status“ Information. It is now under for example „Pset_TerminalTypeCommon“. But now my question is: is this a „Typ Info“? Should it not be a occurence Information?

Thanks for helping me!


@Brunner, the IfcFurnishingElement documentation page does not mention which Psets apply to it. I believe this means that theoretically if you have elements of this type, you cannot set its status. But this is OK, because this type is set to be deprecated and will be made abstract in the future.

Therefore, if you look at the documentation for the child class IfcFurniture, you can see you can set a Pset_FurnitureTypeCommon which has a Status property. If you look at IfcSystemFurnitureElement, it does not have a common pset with a status property, but this is fine, as the purpose of system furniture elements are to be a subset of a furniture.

It is a similar story with IfcFlowTerminal - you should not use it as it will be marked abstract in a future release. You will notice that its instantiable subtypes do have a related pset with a status property. For example Pset_AirTerminalTypeCommon.

You should note that despite the word “Type” in Pset_AirTerminalTypeCommon, it is part of the concept “Property Sets for Objects”, not “Property Sets for Types”. Therefore it is indeed an “occurrence information” and not a “type info”. If you further check the manual for IfcAirTerminalType you will find that there are no property sets associated with the type object.

I hope this answers your questions :slight_smile:


@Moult, Thanks, this is very helpful for me!