A
by Ace on 29 Jun 2022, edited 12 Feb 2024
#
Is there a version of phasing/versioning like an existing/design/demolition phase contained in the IFC? Maybe this is a question for IfcOpenshell in general. I have another Tiny project which I've done a set of simple As built plans/elevations etc for but Want to move onto documenting the design. Is it best practice at the moment to Start a new IFC altogether?
C
by Coen on 29 Jun 2022, edited 29 Jun 2022
#
+2 votes
I tried searching the BuildingSmart documentation to see if I could look anything up on phasing,
Found this.
Status of IfcBeam can be
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).
But is it not easier at the moment, to assign a custompropertyset called phasing for each object in which you define which object is built/demolished/existing? Then you can easily filter in BlenderBIM or BimCollabzoom/Navisworks whatever, what is what.
Is it best practice at the moment to Start a new IFC altogether?
Does not seem like a good idea to me for many reasons.
A
by Ace on 29 Jun 2022
#
Thanks @Coen for the insight I think I will take the approach of custompropertyset, just didn't know how to approach this
J
by JanF on 29 Jun 2022, edited 29 Jun 2022
#
+1 votes
What coen describes is the correct way to do this on ifc 4 (Using "status" property) on 2x3 you have to make your own pset.
C
by ChubbyQuark on 10 Jul 2022
#
Anyone had any success filtering by phase using Psets? I've tried the following but no luck: -
.ifcWall[Pset_CivilElementCommon.Status = "Existing"]
.ifcelement[Pset_CivilElementCommon.Status = "Existing"]
Have I got the syntax wrong?
C
by Coen on 12 Jul 2022
#
@ChubbyQuark said:
Anyone had any success filtering by phase using Psets? I've tried the following but no luck: -
.ifcWall[Pset_CivilElementCommon.Status = "Existing"]
.ifcelement[Pset_CivilElementCommon.Status = "Existing"]
Have I got the syntax wrong?
Is it possible to share the IFC file?
C
by ChubbyQuark on 12 Jul 2022
#
Yes, reduced version attached as there are a lot of WIP and rogue elements in the main file. If my assumption is correct this should exclude the long wall at the top of the screenshot but I cant get this to filter as expected.
Screenshot of PSET applied to wall:

Screenshot of camera/view settings: -

C
by Coen on 12 Jul 2022
#
@ChubbyQuark
You typed .ifcWall[Pset_CivilElementCommon.Status = "Existing"]
. I think you meant to write .ifcWall[Pset_WallCommon.Status = "Existing"]
?
Also I openend your file in BlenderBIM and BIMVision, I can't find any wall with any custom propertyset.
C
by ChubbyQuark on 12 Jul 2022
#
+1 votes
Yes, you're right it shoukd have read;
[Pset_WallCommon.Status = "Existing"]
The file attached before should have that Pset applied to the wall with the 'existing' box checked.
I havent created a custom Pset as i thought phasing could be done with the standard Psets?
M
by Moult on 19 Aug 2022
#
+1 votes
Recently we've added support for multiple values for enumerated properties. This means that for any IFC enumerated property, such as Pset_WallCommon.Status, it may have multiple values (e.g it may simultaneously be part of multiple Status (e.g. both "NEW" and "OTHER"). Although it is unlikely for multiple statuses to be selected, it is a possibility.
This commit now updates the selector queries with support for the new enumerated properties :)
D
by doia on 20 Aug 2022
#
+1 votes
Is there a way to simulate different stages of phasing with IFC native terminology? So that the different stages of a building can be documented within a single IFC file?
Phase | 1 - Existing | 2 - Construction | 3 - Finished
--- | --- | --- | ---
Wall_01.[Pset_WallCommon.Status] | "Existing" | "Demolish" | no data entry
Wall_02.[Pset_WallCommon.Status] | no data entry | "New" | "Existing"
M
by Moult on 20 Aug 2022
#
@doia sure, there is nothing stopping you from assigning different Statuses to multiple entities, then using the Status property as a way of filtering the elements in a file.
D
by doia on 21 Aug 2022
#
@Moult said:
Recently we've added support for multiple values for enumerated properties. This means that for any IFC enumerated property, such as Pset_WallCommon.Status, it may have multiple values (e.g it may simultaneously be part of multiple Status (e.g. both "NEW" and "OTHER").
But how to I know which of the multiple statuses an element can have is assigned to which "Phase"?
I would guess I would need some kind of "IFCPhase" property (if this would exist) which holds an array of links to elements with an assigned status. Multiple "IFCPhase" properties therefor would represent different phases of the project, maybe even in a chronologically order. Kind of analog to the Revit Phasing functionality.
M
by Moult on 21 Aug 2022
#
Out of the box IFC only provides simple status properties for the common scenario of doing renovation work:
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).
If you are doing a more complex project, you will want to use the sequencing capabilities of IFC: you can create a schedule and have sequential tasks, one assigned to each phase. Then, you can assign products explicitly to each task. Tasks can have scheduled dates, assigned resources, associated costs, etc. Tasks can also have sub tasks or dependencies, if you want to say things like demolish this first, then setup this temporary structure, then do this. Here are a list of default task types (but you can have your own user-defined on too): http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcTaskTypeEnum.htm
Or, if that is too much for you, you can just invent your own property or invent your own convention such as by assigning to IFC groups.
T
by theoryshaw on 22 Aug 2022
#
+1 votes
Since it happens quite frequently in our industry, it seems that IFC should natively support a status of an object across multiple phases.
https://github.com/buildingSMART/IFC4.4.x-development/issues/21
M
by Moult on 23 Aug 2022
#
+1 votes
@theoryshaw I don't particularly see how a phase is different from a task in a work schedule like I described above, so I think IFC already does support it?
C
by ChubbyQuark on 1 Sep 2022
#
Sounds good, will try> @Moult said:
Recently we've added support for multiple values for enumerated properties. This means that for any IFC enumerated property, such as Pset_WallCommon.Status, it may have multiple values (e.g it may simultaneously be part of multiple Status (e.g. both "NEW" and "OTHER"). Although it is unlikely for multiple statuses to be selected, it is a possibility.
This commit now updates the selector queries with support for the new enumerated properties :)
How would this status value then be linked to the camera/drawing within BLenderBIM. I've tried applying the value in my previous post but this doesn't seem to filter the view? I may be going about this the wrong way but I'm trying to link the various model status' to a specific camera/drawing.
M
by Moult on 1 Sep 2022
#
@ChubbyQuark every drawing camera can have an EPset_Drawing property set. One of the properties is include/exclude. You can write in filter queries there. Does that help?
C
by ChubbyQuark on 2 Sep 2022
#
Thats the approach I've tried but couldn't get the view to filter as expected. This was the filter query added to the exclude field:-
.ifcWall[Pset_WallCommon.Status = "Existing"]

T
by theoryshaw on 2 Sep 2022
#
maybe?...
.IfcWall[Pset_WallCommon.Status ="Existing"]
instead of
.ifcwall[Pset_WallCommon.Status ="Existing"]
C
by ChubbyQuark on 2 Sep 2022
#
Still no joy. I've tried this on two different machines and can't get the status preset to filter. Works fine with .ifcWall, .ifcRoof etc.
A
by Ace on 3 Sep 2022
#
@ChubbyQuark It's worked for me most recently maybe you could share an example file that has the issue?
C
by ChubbyQuark on 3 Sep 2022, edited 3 Sep 2022
#
Ok, thanks for testing. Did you use the same syntax as above? There is a demo file attached in an earlier post which has the same issue.
A
by Ace on 4 Sep 2022
#
So I tried and found the problem:

Your syntax should be:
.ifcWall[Pset_WallCommon.Status = "EXISTING"]
Capital W and All caps EXISTING, so silly hhahah but atleast it is working!