OSArch Community

How to "Visualize" an IfcWorkPlan in Bonsai?

  1. R

    Thanks all. This is an interesting and informative discussion. For the problem I’m trying to solve, does it make sense to represent an assumed construction sequence as a root level IfcTask? From IfcWorkPlan

    If an assigned IfcTask is a root-level task, such task must be declared on the IfcProject using the IfcRelDeclares relationship.

    Task times are optional, so that eliminates the issue with uncertainty at design time. Also, the assumed construction sequence is basically milestones and not individual fine-grained steps. IfcTask can be a zero duration milestone.

    As I dig deeper into this, it seems that Ifc4.3 falls a bit short for US bridge requirements. Consider a road corridor realignment project. The new alignment will cross a river and a highway with two different types of bridges. Within the project is one alignment and five sites. One site for each bridge and sites before, between, and after the bridges. Each bridge, being different types, will have different assumed construction sequences. If root-level task, work plan, work schedule are rel-declared with IfcProject, how are the construction sequences related to the proper bridge? None of Rel Assigns, Associates, or Connects subtypes seem appropriate.

    -- EDIT --

    I've answered my own question. IfcWorkPlan can be IfcRelDeclared to IfcProject is there is only one bridge. IfcWorkPlan can be IfcRelAssignsToControl if there is more than one bridge. Additionally, if more than one of the bridges are the same type, the same IfcWorkPlan (RelatingControl) can be assigned to several bridges (RelatedObjects).

  2. M
  3. R

    If I understand you @Moult , my assumed construction sequence would be something like IfcTask(summary task, construct bridge) - RelNests - [ IfcTask(build piers), IfcTask(erect beams), IfcTask(cast deck) ]. Then IfcTask(construct bridge) - IfcRelAssignsToProduct - IfcBridge.

    No need for IfcWorkPlan or IfcWorkSchedule?

    No need for IfcProject-RelDeclares-IfcTask(construct bridge)?

  4. M

    This is what I'd recommend:

    IfcProject <- RelDeclares -> IfcWorkPlan <- ... -> IfcWorkSchedule <- ... -> IfcTask (summary, construct bridge) <- Nest -> multiple IfcTasks as you describe, but you also need to relate them together with IfcRelSequence likely with FINISH_START relationships.

    Here's a breakdown of why these relationships exist:

    • The purpose of the IfcWorkPlan is to group related work schedules. This separates it from other work schedules which may describe other things, like maintenance schedules.

    • The rel declares of the IfcWorkPlan complies with the project concept in IFC to ensure all entities are reachable from the project.

    • The IfcWorkSchedule holds the tasks. In this case there is only one work schedule, but in the future as the schedule is fleshed out, it may be duplicated, optioneered, and used as baseline vs actual vs scheduled. When / if it gets duplicated, it is still nicely grouped in a single IfcWorkPlan.

    • The summary task allows for overall date / float calculations if / when this comes into play. Since time isn't present here, it technically serves no purpose right now.

    • Individual tasks use rel sequence to determine the order / sequence of the tasks.

    This matches exactly (apart from optional time information) the example provided by buildingSMART on how to show construction sequences.

    This is completely supported in Bonsai, and also supported in Synchro and Bexel I believe.

  5. R

    Makes sense. I’ll give it a try. Thanks for your help and patience

  6. R

    I followed your recommendation and it seems to work well.

    I went the extra step of IfcRelAssignsToProduct for the subtasks and the elements of the bridge. That is, I related the step 3 subtask to the deck and the step 4 subtask to the barriers, and so on.

  7. M

    Awesome! BTW I assume you're working in C++, but if you're doing this in Python there is an API which makes this type of thing very simple and ensures all the relationships are correct.

  8. S

    why C++ or Python when it can be done directly in Bonsai? genuine question

    thanks

  9. S

    @Rick_Brice

    in case you don't know this already, tasks and sequence can be imported in Bonsai as .csv file

    File -> Import -> Work Schedule (.csv)

    example from your model in the file attached

    cheers

  10. R

    @steverugi

    why C++ or Python when it can be done directly in Bonsai? genuine question

    I'm exporting IFC bridge models from my software. The software is in C++.

    When I import the models, Bonsai gives me a great sanity check that I'm writing out valid IFC.

    in case you don't know this already, tasks and sequence can be imported in Bonsai as .csv file

    I didn't know that - Thanks!

  1. Page 1
  2. 2

Login or Register to reply.