OSArch Community

[BlenderBIM & CharonIFC] Construction Project Planning, and Cost Scheduling

  1. J
  2. S
  3. S

    @walpa said:

    This is the question ... I don't know how it would work in Blender, but in FreeCAD it seems a little complicated to do a nested task with multiple workschedules (I may be mistaken).

    With our assumption that we could control (or nested tasks since) based on the IfcWorkSchedules's predfined type , this is what I tried with ifcopenshell python:

    
    import ifcopenshell
    
    file = ifcopenshell.open(r'C:\Osarch\blenderbim.ifc')
    
    workschedule_planned = file.createIfcWorkPlan(ifcopenshell.guid.new(),Name='WorkSchedule Construction - Planned Baseline',PredefinedType ='PLANNED')
    
    workschedule_actual = file.createIfcWorkPlan(ifcopenshell.guid.new(),Name='WorkSchedule Construction - Actual Baseline',PredefinedType ='PLANNED')
    
    task_slab_1 = file.createIfcTask(ifcopenshell.guid.new(),Name='Concrete Slab 1 Construction')
    
    task_wall_1 = file.createIfcTask(ifcopenshell.guid.new(),Name='Masonery Wall 1 Construction')
    
    actual_control_1 = file.createIfcRelAssignsToControl(ifcopenshell.guid.new(),Name='Actual Planning Control')
    
    planned_control_1 = file.createIfcRelAssignsToControl(ifcopenshell.guid.new(),Name='Planned Scheduled Control')
    
    actual_control_1.RelatingControl = workpschedule_actual
    
    planned_control_1.RelatingControl = workpschedule_planned
    
    actual_control_1.RelatedObjects = [task_slab_1, task_wall_1]
    
     planned_control_1.RelatedObjects = [task_slab_1, task_wall_1]
    

    When we query these task_slab_1, this is returned:

    
    for assignement in task_slab_1.HasAssignments:
    
                print(assignement.RelatingControl)
    
    120=IfcWorkPlan('0zbzDzhebAsuLBBS2k7Uq_',$,'WorkSchedule Construction - Actual Baseline',$,$,$,$,$,$,$,$,$,$,.PLANNED.)
    
    119=IfcWorkPlan('1YKGOaG_L8HxsT$yMTgxzo',$,'WorkSchedule Construction - Planned Baseline',$,$,$,$,$,$,$,$,$,$,.PLANNED.)
    

    When we query the workschedules' related objects, this is returned:

    
    workschedule_planned.Controls[0].RelatedObjects
    
    (#121=IfcTask('3J$46k5Hj4wfKeTIwViMvu',$,'Concrete Slab 1 Construction',$,$,$,$,$,$,$,$,$,$), #122=IfcTask('02hx9c7vL7DBwSHeUQzQlS',$,'Masonery Wall 1 Construction',$,$,$,$,$,$,$,$,$,$))
    
    
    workschedule_actual.Controls[0].RelatedObjects
    
    (#121=IfcTask('3J$46k5Hj4wfKeTIwViMvu',$,'Concrete Slab 1 Construction',$,$,$,$,$,$,$,$,$,$), #122=IfcTask('02hx9c7vL7DBwSHeUQzQlS',$,'Masonery Wall 1 Construction',$,$,$,$,$,$,$,$,$,$))
    

    I'm still very hesitant with the assumptions regarding controling tasks based on the predefined type. I think we should perhaps take the problem the other way round and see what kind of IFC 4D data is currently exported from software like Synchro ( it seems like it exports IFC data, but I don't know if they include their planning within it? it appears they are also stuck on old IFC schemas).

    Can we have a joint discussion on all this and more with @Moult, @duncan, @lukas , @iosvarms and interested individuals to discuss the best way forward? It would be good to build on Moult's existing efforts which are being integrated in BlenderBIM and incrementally increase the complexity of the 4D and 5D options.

    I'd also love to join the conversion with the maker of chronaIFC if this is still planned?

  4. D

    It's possible to merge threads. Shall I try it?

  5. J

    I'd say go for it

  6. W

    I see two options:

    or

    I have a suggestion:

    What do you think?

  7. C

    Hi all,

    My company are in the early stages of implementing 4D planning into the business. We are looking at Synchro as the preferred software to use. I wanted to ask you if there are other alternatives which you can recommend, preferably open source.

  8. W

    @duncan suggested opening this topic to discuss costs within the context of open source.

    We invite everyone to leave their opinions here.

    Here is my little testimony.

    I don't know how budgets and costs are made in other parts of the world, I only know the Brazilian market.

    The model must be the same as in other countries: in large companies, there are usually engineering sectors responsible for budgets, and costs are accompanied by specific ERP's, always with proprietary solutions.

    In companies that are implementing BIM, as far as I know, REVIT/NAVISWORK predominates.

    In some cases of medium-sized companies, budgets are contracted with outsourced professionals/offices.

    In most small businesses, when available, budgets are subject to spreadsheets and cost control is almost always lacking.

    In all the situations I experienced (in large, medium and small companies), cost control is always a controversy ... especially in the day-to-day construction.

    In our AEC industry, there are no OS software solutions for budget and costs.

    I know only 1 free budget software: ORSE (orse.cehop.se.gov.br/) provided by a state agency. It is old, based on MS Access DB, with a steep learning curve and is certainly not geared towards the BIM-5D.

    There are also the SINAPI Tables (https://www.caixa.gov.br/poder-publico/modernizacao-gestao/sinapi/Paginas/default.aspx), which are used as a source of price reference. One way to implement them as a BIM concept was made by Yorik and can be seen at https://youtube.com/watch?v=vBfdmvvfDfE.

    Greetings

  9. D

    I have now merged the three threads - let me know how well you think that works. The old discussions automatically redirect to this one.

  10. S

    @walpa said:

    I see two options:

    I believe the 1st option is the way forward, but I would replace all IfcWorkPlan with IfcWorkSchedule; so that we can organise IfcWorkSchedule entities within A single IfcWorkPlan. ( PS: there's a small 's' missing in the entity IfcRelAssignsToControl in the graphs above ).

    Regarding you UI/backend proposal, I don't understand why you link Tasks between themselves with IfcRelDefinesByObject. Is that allowed, and what for?

    I imagine the following for the UI/Backend:

    1 - The user starts by defining a 'WorkSchedule'. This creates an IfcWorkSchedule entity of 'PredinfedType' : BASELINE. In other words, this is the reference schedule, the one that should be approved and signed off in the project's early stages.

    2- When a user starts to create a schedule , IfcTasks are instantiated and assigned to the the workschedule created in step 1 with IfcRelAssingsToControl.

    3 - When the user decides to create an additional baseline ( which is nothing than a mirror of the first baseline right?), we create a new IfcWorkSchedule with predefined PredefinedType set as either PLANNED, ACTUAL, or USERDEFINED.

    4 - At the same time, the IfcTask entities created in step 2 would be automatically duplicated and assigned to this new IfcWorkSchedule entity created in step 3.

    I'm going to try and implement a small test in Blender and post the progress here

  11. W

    My thoughts:

    1 - The workflow (usually on P6, MSProject and LibreProject) is: Schedule--> BaseLine(s) --> Actual

    2 - ok

    3- ok, but with the flow up

    4 - ok for backend, but for frontend I think:

    Regarding you UI/backend proposal, I don't understand why you link Tasks between themselves with IfcRelDefinesByObject. Is that allowed, and what for?

    I did not see this in the IFC documentation, it is just a suggestion, I do not know if it is allowed, perhaps it is possible to consult the bSI forum.

    The reason is to create a way to connect the many tasks (IfcTask) with different data to just one (TaskUI). Example in IfcConstructionResource/Baseline use definition.

    Why ?

    It may not be a good idea to have a TreeView with 3 (or more) structures for repeated tasks, but with complementary information.

    And when the task is linked to the architectural object to search for quantities, apply resources and apply modifiers, it will be done in a single task.

    IfcRelDefinesByObject can be a solution ... but if allowed ...

  12. S

    Okay, so I have a little proof of concept going on, and although it's very experimental, I'm excited to share it:

    IFC4D Animation

    There are 3 items attached here for further exploration:

    1 - "Blender_Schedule_test.ifc": The IFC model in STEP format created with blenderBIM .

    2 - "IFC_AutoringIFCSchedule.py ": the code that was used to add the Construction Schedule entities and attributes to the IFC model.

    3 - "IFC4D_BlenderAnimation.py ": the script that reads this specific WorkSchedule Data and creates an animation in Blender ( run it at as a 2nd script).

    Using this in Blender: you would only need to import the IFC file, and run the script IFC4D_BlenderAnimation.py ( the materials are not stored inside the ifc model)

    The next steps I'll try to work on are:

    • Add IfcTaskTime entities to the IFC model in order to control the animation sequencing tempo

    • Import a P6 // Asta PowerProject // MS Project // Libre Project .XML file and repeat.

    • Add option for Additional Baselines

    • Make the 4D animation Workflow more robust

    • Figure out Costing requiremements and specifications, and integrate this with the Schedule.

  13. M

    This is great! We should integrate this into the "sequence" module of the BlenderBIM Add-on.

    Once or twice a week, @Jesusbill and I meet up to develop a bit of structural support together. What do you think of also meeting up once or twice a week to work on 4D?

  14. A

    This is working!!!!

  15. A

  16. A

    Once or twice a week, @Jesusbill and I meet up to develop a bit of structural support together. What do you think of also meeting up once or twice a week to work on 4D?

    I'd like to join you too if it's possible

  17. J

    @Aldo I am messaging you in DM so as not to pollute this post. No problem at all, only that we do not have fixed dates so you will have to follow the chat.

    Edit: Misunderstood you, I though you were talking about the structural stuff :)

  18. S

    @Moult said:

    This is great! We should integrate this into the "sequence" module of the BlenderBIM Add-on.

    Once or twice a week, @Jesusbill and I meet up to develop a bit of structural support together. What do you think of also meeting up once or twice a week to work on 4D?

    Most definetly! Shall we set a regular meet-up on Wednesdays 6 to 7 PM Sydney-time?

    @Aldo said:

    Once or twice a week, @Jesusbill and I meet up to develop a bit of structural support together. What do you think of also meeting up once or twice a week to work on 4D?

    I'd like to join you too if it's possible

    The more the merrier :)

  19. J
  20. M

    @SigmaDimensions that sounds good! Let's try that time.

  21. C

    guys, I already have a reasonable knowledge of the ifc standard, and I'm studying blenderbim. In the future, I would be very happy to help with coding

  22. L
  23. W

    Review in the relationship map, according to the implementation of @SigmaDimensions

  24. M

    @SigmaDimensions your SVG diagram seems well researched and mostly correct. There are perhaps some minor details that we need to clarify, such as whether both work plans and work schedules need to be declared. It also corresponds with my reading of the spec, as well as corroborates (99%) with the IFC example, and this student's academic paper on page 34.

    We should make conservative decisions when translating these schemas into an authoring environment. My experience has shown that just because there seems to be multiple ways to do it doesn't mean they are all equally correct. Most likely, the schema has an intention, and that intention usually has some good thinking behind it - which we should seek out.

    There are not that many people who are knowledgeable enough about the spec to clarify sequencing / costing unfortunately. My initial hopes of getting examples from Synchro were dashed when I read that Synchro exports IFCs without any time information. I know @geometrygym has implemented these entities and used the sequencing entities to an extent in Rhino, so I had a little chat with him and we have made a list of questions, which he will do a bit of research to clarify. Here's the list:

    1. What is the difference between an IfcWorkSchedule and an IfcWorkPlan?

    2. When should the IFC root task be assigned to an IfcWorkSchedule and when should it be assigned to an IfcWorkPlan?

    3. When should an IfcWorkSchedule be used standalone, and when should it be included in IfcWorkPlan?

    4. Should IfcEvent / IfcProcedure be used in construction sequencing, and can you give an example that isn't flipping burgers?

    5. The example IFC for construction uses IfcRelNests to include the IfcWorkSchedule in the IfcWorkPlan, should this be IfcRelAggregates?

    6. How is the IfcCostSchedule related back to the project?

    7. Is it valid for an IfcCostSchedule to be (nested / aggregated) in an IfcWorkPlan, and when should you do this?

    8. What are example valid values for the Purpose attribute of IfcWorkControl?

    9. Why is there the same predefined type enum (ACTUAL/PLANNED/BASELINE for both IfcWorkPlan and IfcWorkSchedule?) Are they allowed to conflict?

    10. The IfcWorkSchedule / IfcWorkPlan seems to always be declared back to the IfcProject. What other contexts might it be declared to? Do both need to be declared back, or only one, and the other can be derived?

    There are certainly more questions. For example, I'd like to see an example of how events and procedures work from a facility management perspective... but hopefully we'll deal with these as we progress. Pinging @aothms in case he knows some of these answers.

    BTW - there may be an unspoken assumption here that we're all dealing with IFC4 and if so let's keep it that way and ignore IFC2X3 for the moment :)

    Moving forward, whilst these semantics are being sorted out, we can start migrating code from scripts into operations / usecases / UI for authoring. Looking forward to catching up with everybody 6-7pm today :)

  25. A

    @Moult no clue, sorry.

    My (unpopular) opinion is that all these things are removed from the standard and we focus on good interoperability with existing (open?) scheduling formats and workflows.

  1. Page 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7

Login or Register to reply.