[BlenderBIM] Versioning/Phasing?

AceAce
edited July 2022 in General

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?

«1

Comments

  • edited June 2022

    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.

    AceJanF
  • Thanks @Coen for the insight I think I will take the approach of custompropertyset, just didn't know how to approach this

  • edited June 2022

    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.

    Ace
  • 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?

  • @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?

  • 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: -

  • @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.

  • 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?

    Ace
  • 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 :)

    Ace
  • 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"
    theoryshaw
  • @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.

  • @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.

  • 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.

  • 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

    Ace
  • @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?

    theoryshaw
  • Yes, good point.

  • 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.

  • @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?

  • 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"]

  • maybe?...
    .IfcWall[Pset_WallCommon.Status ="Existing"]
    instead of
    .ifcwall[Pset_WallCommon.Status ="Existing"]

  • 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.

  • @ChubbyQuark It's worked for me most recently maybe you could share an example file that has the issue?

  • edited September 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.

  • 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!

  • Ah yes enumerations are constants so they are ALLCAPs. I think in theory the ".IfcWall" is case insensitive but for good discipline probably a good idea to name it in CapsCase.

  • Ok, thanks. Ill try it again as i already adjusted the case after theoryshaw pointed that out. Does it also work filtering for 'new'? That should display just the missing wall in your screenshot above.

  • Hey here is the result:

    It's because all your walls besides those that disappeared and the long North wall do not have a 'status'

    Here is the file aswell, remember the status needs to all caps in the camera 'NEW' not 'new'
    .ifcWall[Pset_WallCommon.Status = "NEW"]

    theoryshaw
  • edited September 2022

    Thanks, that's ace, Ace. Works a charm now. I thought I'd tried the various capitalisations but clearly not!

    Follow up question: Have you found a way to filter all items of a particular phase and link to the camera view? Thinking of the requirement to create drawings for existing, demo, proposed etc.

    theoryshaw
  • Happy to help @ChubbyQuark

    Follow up question: Have you found a way to filter all items of a particular phase and link to the camera view? Thinking of the requirement to create drawings for existing, demo, proposed etc.

    Unfortunately I am in the same boat as you, if anyone knows how to do this atm I would like to know, I've gotten around it by using fill regions right now, but that aint smart at all );

    theoryshaw
  • Digging into the .ifc a little and the status is called out per element, I wonder if a UI toggle could be created to filter all items of a specific status?

    Ace
Sign In or Register to comment.