Phasing in IFC

Does IFC have a phasing concept? Where can info abut different phases in a renovation projecet be stored? Such phases can be “Existing”, “Deomlished” “New”.

1 Like

Phasing is ‘time bounded’, i expect this not to happen in ifc. But i’m not an expert in the code. As a user i would just make a couple of seperate ifc files for pratical use. Why not?

From a quick glance at ifc4x3.exp schema

https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcperformancehistory.htm

LifeCyclePhase IfcLabel Describes the applicable building life-cycle phase. Typical values should be DESIGNDEVELOPMENT, SCHEMATICDEVELOPMENT, CONSTRUCTIONDOCUMENT, CONSTRUCTION, ASBUILT, COMMISSIONING, OPERATION, etc.

https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifccontext.htm

Phase IfcLabel ? Current project phase, or life-cycle phase of this project. Applicable values have to be agreed upon by view definitions or implementer agreements.

1 Like

It does. Look for the “Status” parameter in the common psets.

https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/schema/ifcsharedbldgelements/pset/pset_beamcommon.htm

Status of the element, predominately used in renovation or retrofitting projects. The status can be assigned to as “New” - element designed as new addition, “Existing” - element exists and remains, “Demolish” - element existed but is to be demolished, “Temporary” - element will exists only temporary (like a temporary support structure).

1 Like

Thank you all for answering! @tsolsen’s answer is what I was look for. Do you happen to know if it’s possible to get this correctly exported from Revit? The property values should be a PEnum_ElementStatus right? Looks like there are traces of it in the revit exporters code: https://github.com/Autodesk/revit-ifc/blob/897b3b1190e1ece816f6cddb5f7da432ae474b97/Source/Revit.IFC.Export/Toolkit/IFC4Enums.cs#L3001

It is :slight_smile:

PropertySet: Pset_xyzCommon I IfcElement
Status Label Phase Created
1 Like

Thanks, this gets the job done! To be 100 % correct this should be an IfcPropertyEnumeratedValue, not IfcPropertySingeValue right? This is what I get in my test export. (both v. 2x3 and 4)
image

1 Like

The status might be sufficient if we only consider the current situation. But if we think of IFC as a long term building documention the statuses “New”, “demolish”, “existing” and “temporary” don’t add much meaning. That is simply a comparison of one future state to one earlier state of the element. If we want to take the whole life cycle into account we need some more information.
Sure, this can be done with IfcTask, however, that would be a bit too much I think.
Revit (and other BIM applications probably, too) have the concept of phases. They don’t have dates applied, but only a defined sequence. That way, I can pick a point in time and filter all existing, new, demolished and temporary elements.
Any ideas how to implement that without applying tasks to each element? Or is this the intended usage?

Edit: can we reference a specific task - not only an attribute - in a property? E.g. (pseudo code)
PhaseCreated: IfcReference(IfcTask(#1))
PhaseDemolished: IfcReference(IfcTask(#2))

Most applications cannot cope with task data otherwise.

@TZwielehner

Yes, the concept of “New”, “Existing”, “Demolish”, and “Temporary” really only applies from the point of view of a particular project execution. The IFC common property (Pset_XxxxxCommon) “Status” designations are useful only until the project is complete… then everything is “existing”. Usually this is only at the element level, correct? So, it seems it needs to be reset on all objects, once the project is complete?

The Revit “phases” are really just a means of filtering the built elements between the construction status labels (more like IFC “Status”).

For the whole lifecycle, currently “Phase” is an attribute of IfcContext/IfcProject. It is an arbitrary label, with the contents determined per project. But maybe it also needs to be a more widely applied attribute to subclasses like IfcBuilding and the other IfcFacility subtypes (IfcBridge, IfcMarineFacility, IfcRailway, IfcRoad), so you can capture the long-term complexity where parts of a larger development may be continually categorized and referred to as “Phase 1”, “Phase 2”, or “Phase II-A”, “Phase III”, etc., such as in multifamily housing complexes, office campuses, or other large multi-use developments. I’m not an infrastructure SME, so I don’t know if this is applicable in that domain.

Are there international real estate or asset management standards (both buildings and infrastructure) we can reference to help solve the problem? Then, I think we would have the ability to better establish the optimal representation in an IFC context. Maybe “Phase” and “Status” need to have more prominence in the class structure instead of being attributes on some classes?

ISO 21930:2017 maybe?