Editing BlenderBIM Add-on/BlenderBIM Add-on Roadmap

From Wiki.OSArch

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 13: Line 13:
 
A day later, the project began on [https://github.com/IfcOpenShell/IfcOpenShell/commit/e9649a52177bc5895a1de470acd0dea8166cbaf3 August 29, 2019], with 83 lines of code that demonstrated that Blender geometry could be exported into [[Industry Foundation Classes (IFC)]].
 
A day later, the project began on [https://github.com/IfcOpenShell/IfcOpenShell/commit/e9649a52177bc5895a1de470acd0dea8166cbaf3 August 29, 2019], with 83 lines of code that demonstrated that Blender geometry could be exported into [[Industry Foundation Classes (IFC)]].
  
The first packaged build for the public, changing it from an experimental set of scripts into a distributed package was done a month and a half later, on October 13, 2019. A week later, we were surprised to learn that our package was being used to visualise data from a compactor machine being used to build a highway. This was the first tangible evidence that the BlenderBIM Add-on had great potential.
+
The first packaged build for the public, changing it from an experimental set of scripts into a distributed package was done a month and a half later, on October 13, 2019.
 
 
Over the next nine months, the small building went from concept to detailed design to construction to handover. As the small building progressed, new capabilities were added to the BlenderBIM Add-on on a daily basis to meet our evolving needs.
 
 
 
In parallel, we started supporting a large multidisciplinary project with stringent BIM requirements. To support the team members, we built a suite of BIM tools. These tools were like a Swiss army knife of BIM utilities which could be launched from the BlenderBIM Add-on environment.
 
 
 
The heart of any open source software project is a vibrant community. On 4 February 2020, the Open Source Architecture (OSArch) community forum and chat group were launched with a mission to "create a built environment with free software, increased transparency, and a more ethical approach". A wiki was created as a knowledge base related to open source software in the AEC industry. We were surprised to discover that more than 100 FOSS were already available for the AEC industry. Monthly information sharing sessions and a news portal related to FOSS in the AEC industry were set up.
 
 
 
Soon, new features in the BlenderBIM Add-on were being driven by not only the problems that we were facing, but also by the problems faced by members of the community. Members of the community play an important role of battle-testing the BlenderBIM Add-on and identifying bugs to be fixed.
 
 
 
In September 2020, the 1,000th issue was tracked on the issue tracker.
 
 
 
In October 2020, the BlenderBIM Add-on and its related utilities won the prestigious 2020 Technology Award by buildingSMART International.
 
 
 
In December 2020, the OpenSourceBIM OpenCollective was created as a fiscal host to start collecting donations.
 
 
 
In January 2021, the BlenderBIM Add-on was rewritten, making three major changes.
 
 
 
The first change made the BlenderBIM Add-on native IFC, removing all Blender information from the database. Blender was still used as a user interface, but portions of the code could now be ported to work with other user interfaces such as FreeCAD.
 
 
 
The second change put a wrapper around the IfcOpenShell library to convert it into an API, simplifying some of the complexity of the IFC specification. This makes it easy for developers to build apps on top of IfcOpenShell, expanding the ecosystem of native IFC applications.
 
 
 
The third change was to split the BlenderBIM Add-on code into almost 40 modules. This makes it easy for new developers to add code because they can now concentrate on a single module.
 
 
 
Prior to these changes, BlenderBIM Add-on features were primarily focused on architects (the "A" of AEC). Once these changes were in place, a small team from the community started adding features related to structural analysis (the "E" of AEC) and another small team started adding features related to scheduling and costing (the "C" of AEC).
 
 
 
In March 2021, the BlenderBIM Add-on, under IfcOpenShell, [https://osarch.org/2021/06/09/google-summer-of-code-students-announced-for-opencax/ joined the OpenCAx umbrella for Google Summer of Code] for the first time. Artur Tomczak helped develop the initial prototypes of IDS, which would later be released as a buildingSMART standard in 2022. Prabhat Singh built the first BCF-XML 3.0 and OpenCDE libraries.
 
 
 
In May 2021, the [https://osarch.org/2021/05/25/epic-megagrants-funding-awarded-to-blenderbim-add-on/ BlenderBIM Add-on received a 15,000USD Epic MegaGrant]. This was split across three developers, Johan Luttun, Thomas Krijnen, and Dion Moult to develop three features: an automated geometry test suite to maximise long-term stability, a Python-accessible 2D drawing engine, and ability to author 80% of all IFC schema capabilities. This work took roughly a year.
 
 
 
In January 2022, the 2,000th issue was tracked in the issue tracker.
 
 
 
In March 2022, the second GSoC event took place, with Martina Jakubowska building the initial prototypes of IfcSverchok.
 
 
 
By May 2022, as part of the Epic Megagrant timeline, IfcOpenShell had upgraded to v0.7.0, a new basic drawing system with smart references was released, and the BlenderBIM Add-on had more coverage of the IFC schema than any other tool in the industry, including parametric 4D and 5D, and basic MEP features.
 
 
 
In August 2022, the IfcOpenShell Github repository surpassed 1,000 stars.
 
 
 
In November 2022, the IfcOpenShell and BlenderBIM Add-on websites were rebranded under a common brand, and funding targets were set in the OpenSourceBIM fiscal host, aiming for 500USD per month. This target was quickly achieved.
 
 
 
In March 2023, Andre was fully sponsored to work on the BlenderBIM Add-on as a developer.
 
 
 
In March 2023, the third GSoC event took place, with Riley Wong building undo / redo, save, IFC conversion, and upgrading the BrickSchema interface.
 
 
 
In July 2023, Thomas received a Cesium Ecosystem Grant to work on Cesium integration.
 
  
 
== Version 0.0.X ==
 
== Version 0.0.X ==
Line 71: Line 27:
 
== Version 0.X.X ==
 
== Version 0.X.X ==
  
The first 0.X.X release will mean that most of the basic features are there, and we know we can produce output. The objective then shifts to polishing, increased testing, improving stability, improving usability, writing tutorials and documentation, and optimisation. We also aim to battle test the package in as many commercial projects as possible, and build up small teams of people heavily using the BlenderBIM Add-on and IfcOpenShell suite of tools. This is loosely scheduled for 2024.
+
The first 0.X.X release will mean that most of the basic features are there, and we know we can produce output. The objective then shifts to polishing, increased testing, improving stability, improving usability, writing tutorials and documentation, and optimisation. We also aim to battle test the package in as many commercial projects as possible, and build up small teams of people heavily using the BlenderBIM Add-on and IfcOpenShell suite of tools. This is loosely scheduled for 2021.
  
 
By this stage, there will also be increasingly tangible costs involved, such as server costs for hosting, build servers, asset libraries, and so on. This is only set to grow, and so there needs to be an added focus on a community development model. For the community to sustainably grow and to support free software developer participation, models for funding developer resources will need to be developed. The concept for this is not commercial, but similar to the Blender Foundation approach, or KDE Community Fund approach. It could also be based on free software payment initiatives like Liberapay.
 
By this stage, there will also be increasingly tangible costs involved, such as server costs for hosting, build servers, asset libraries, and so on. This is only set to grow, and so there needs to be an added focus on a community development model. For the community to sustainably grow and to support free software developer participation, models for funding developer resources will need to be developed. The concept for this is not commercial, but similar to the Blender Foundation approach, or KDE Community Fund approach. It could also be based on free software payment initiatives like Liberapay.
Line 88: Line 44:
  
 
There are currently nearly 40 distinct modules that comprise the BlenderBIM Add-on. Ones that have known initiatives are listed below. Each initiative contains the name of the developer who is leading that initiative.
 
There are currently nearly 40 distinct modules that comprise the BlenderBIM Add-on. Ones that have known initiatives are listed below. Each initiative contains the name of the developer who is leading that initiative.
 +
 +
Some times are loosely scheduled to meet up and hack on a particular module.
 +
 +
* Tuesday 5pm Sydney timezone working on structural (Jesusbill, Moult)
 +
* Wednesday 8am Sydney timezone, working on construction sequencing (yassineSIGMA, Moult)
 +
* Wednesday 5:30pm Sydney timezone, working on BCF (prabhat01, Moult)
 +
* Thursday 5pm Sydney timezone working on structural (Jesusbill, Moult)
 +
* Friday 7am Sydney timezone working on facility management (Undisclosed)
 +
* Saturday 6pm Sydney timezone working on costing (yassineSIGMA, iosvarms, AldoMontanari, Moult)
 +
* Sunday 5:30pm Sydney timezone, working on BCF (prabhat01, Moult)
 +
* Times TBD, working on BIMTester (HarshAgarwal, Moult)
 +
* Times TBD, working on IDS (Artur, Moult)
 +
* Times TBD, working on construction sequencing animation generation (szymon_budziak, Moult)
  
 
Note: this is working document. Changes are expected.
 
Note: this is working document. Changes are expected.
Line 95: Line 64:
 
Note: this is not a module, but spans across the entire project.
 
Note: this is not a module, but spans across the entire project.
  
* The system is being fully decoupled into ifcopenshell.api + blenderbim.bim.module. This still needs documentation and representation adding interfaces + adapters. (Moult)
+
* The system is being fully decoupled into ifcopenshell.api + blenderbim.bim.module. This still needs improved syntax, documentation, and resolution of ownership histories and representation adding interfaces + adapters. (Moult)
 +
* Someone needs to investigate and solve the "undo" problem. (Moult)
 
* A prototype of a client-server model for distributed, multi-user, cross-application simultaneous authoring needs to be built. (Moult)
 
* A prototype of a client-server model for distributed, multi-user, cross-application simultaneous authoring needs to be built. (Moult)
  
Line 104: Line 74:
 
=== bcf ===
 
=== bcf ===
  
* GSoC student prabhat01 is undertaking the challenge to add support for BCF-API 3.0. (prabhat01, Moult)
+
* GSoC student prabhat01 is undertaking the challenge to add support for BCF-XML 3.0, as well as BCF-API 3.0. (prabhat01, Moult)
  
 
=== bimtester ===
 
=== bimtester ===
  
 +
* GSoC student HarshAgarwal is undertaking the challenge to create a standard for documenting BIMTester feature templates, a web-app for users to build templates, and to run tests online. (HarshAgarwal, Moult)
 
* There are tests underway to make BIMTester accept the new upcoming IDS specification (aothms, Moult)
 
* There are tests underway to make BIMTester accept the new upcoming IDS specification (aothms, Moult)
  
 
=== bsdd ===
 
=== bsdd ===
  
* Note: this module does not currently exist. A UI needs to be built to interact with the new bSDD library (Moult)
+
* Note: this module does not currently exist. A bSDD library needs to be built, which can then lead to a UI being built. (Moult)
  
 
=== cobie ===
 
=== cobie ===
Line 120: Line 91:
 
=== cost ===
 
=== cost ===
  
* Work has started (yassineSIGMA, iosvarms, AldoMontanari, Moult)
+
* Research is underway, but currently no detailed roadmap formed on how to tackle cost aspects of the schema. Work will hopefully start soon. (yassineSIGMA, iosvarms, AldoMontanari, Moult)
 +
* Derive quantities automatically from product
 
* Expand / contract all in tree feature
 
* Expand / contract all in tree feature
 
* Export to OOXML spreadsheet
 
* Export to OOXML spreadsheet
 
* Export to CSV
 
* Export to CSV
 +
* Support arithmetic formula components in cost values
 +
* Update calculation for arithmetic formula components
 
* Implement a schedule of rates
 
* Implement a schedule of rates
 
* Show a final cost for the entire schedule depending on the type of schedule
 
* Show a final cost for the entire schedule depending on the type of schedule
Line 143: Line 117:
  
 
* We need to solve how to edit portions of the representation tree. (Moult)
 
* We need to solve how to edit portions of the representation tree. (Moult)
 +
* There needs to be a parametric IFC primitives generator, otherwise modeling steel and structure is a pain. (Moult)
  
 
=== io ===
 
=== io ===
  
 
* Firstly, the import / export needs to be refactored into a module to improve maintainability. (Moult)
 
* Firstly, the import / export needs to be refactored into a module to improve maintainability. (Moult)
* For imports of large files, we should give the user the option to filter by spatial hierarchy. This promotes highly responsive, query-based editing rather than monolithic models. (Moult)
 
 
* Sometimes, IfcOpenShell has a runaway process when handling meshes. This includes faceted breps, triangulated face sets, and tessellations. Bypassing OCC and parsing these meshes natively is vital to ensuring practical, scalable, mesh based workflows. (Moult)
 
* Sometimes, IfcOpenShell has a runaway process when handling meshes. This includes faceted breps, triangulated face sets, and tessellations. Bypassing OCC and parsing these meshes natively is vital to ensuring practical, scalable, mesh based workflows. (Moult)
 
* User friendly asset imports, especially from project libaries, and product types, is required to turn the BlenderBIM Add-on into a proper authoring tool. (Moult)
 
* User friendly asset imports, especially from project libaries, and product types, is required to turn the BlenderBIM Add-on into a proper authoring tool. (Moult)
 +
 +
=== material ===
 +
 +
* You need to be able to edit attributes of a material profile set usage. (Jesusbill)
 +
 +
=== model ===
 +
 +
* There are unstarted plans to develop the concept of an "Object Generator", a standard to define a standardised interface to how authoring tools generate IFC objects. For example, a wall might generate an axis representation, or a window might generate an annotation representation, or a slab might generate a footprint representation. Solving this is required before time can be invested in more mature authoring tools (door tool, wall tool, etc) (Moult)
  
 
=== project ===
 
=== project ===
Line 170: Line 152:
 
=== sequence ===
 
=== sequence ===
  
* Work has started: Usecases and UI to author entities related to Construction Sequencing and Resources (yassineSIGMA, Moult)
+
* Work has started on developing all the necessary usecases and UI to author entities related to construction sequencing (yassineSIGMA, iosvarms, AldoMontanari, Moult)
 +
* Support different versions of P6 (need samples)
 +
* Import calendars from P6
 +
* Calculate durations in task tree
 +
* Allow correlated editing of durations and start / end times
 +
* Support duration calculation of working days vs calendar days
 +
* Show sequence relationships (FS, SS, FF, etc)
 +
* Show lag time
 +
* Visualise progress at date
 +
* Generate animation between date range
 
* Preserve P6 ObjectIds and IFC GlobalIds to do smart relinking upon P6 or IFC updates
 
* Preserve P6 ObjectIds and IFC GlobalIds to do smart relinking upon P6 or IFC updates
 
* Sort task tree by start date
 
* Sort task tree by start date
* Support import of MS Project - Ongoing (Missing: LagTime, calendar assignement to tasks, calendar exception times, Resources)
+
* Show derived dates of parent tasks with no dates
 +
* Support import of MS Project
 
* Support import of LibreProject
 
* Support import of LibreProject
 +
* Assign work calendars to work plans
 +
* Support expand / contracting task trees
 +
* Support pset assignments to tasks
 
* Support document association to tasks
 
* Support document association to tasks
 
* Support recurring task time tasks
 
* Support recurring task time tasks
 +
* Support task moving from
 +
* Support task moving to
 
* Support task typing
 
* Support task typing
 
* Support tasks types and inclusion in a project library
 
* Support tasks types and inclusion in a project library
 +
* Assign resources to tasks
 
* Assign task classification references
 
* Assign task classification references
* Support Duplicating workschedule ( baselines )
 
* Support Actual vs Planned
 
  
 
=== structural ===
 
=== structural ===
  
* Work has started to have full support for structural authoring (Jesusbill)
+
* Work has started to have full support for structural authoring. (jesusbill)
 
 
'''Structural Analysis Model'''
 
* Add/Edit/Remove model: OK
 
* Assign/Unassign members and connections to model: OK
 
* Assign Load Cases and Load Combinations to model: X
 
* Batch operations of Assign/Unassign members and connections to model: X
 
 
 
'''Structural Members'''
 
* Add/Edit/Remove members: OK (standard BBIM functionality for IfcProduct)
 
* Edit Local Coordinate System for curve members: OK
 
* Edit Local Coordinate System for surface members: X
 
* Assign MaterialProfileSet for surface members: OK
 
* Assign Material/MaterialLayerSet for surface members: OK
 
* Select MaterialProfileSet and MaterialLayerSet from a list: X
 
* UI panel with connections and actions related to selected members: X
 
* Batch operations of Assign/Unassign materials and derivatives to members: X
 
 
 
'''Structural Connections'''
 
* Add/Edit/Remove connections: OK (standard BBIM functionality for IfcProduct)
 
* Edit Local Coordinate System for point and curve connections: OK
 
* Edit Local Coordinate System for surface connections: X
 
* Add/Edit/Remove boundary conditions (supports) for connections: OK
 
* Consider elastic (spring) support for each degree-of-freedom in boundary conditions: OK
 
* Assign/Unassign members to connections: OK
 
* Add/Edit/Remove connection conditions between member and connection: OK
 
* Edit Local Coordinate System for connection conditions between member and connection: OK
 
* Select boundary and connection condition from a list: X
 
* Batch operations of editing boundary and connection conditions: X
 
* Show stiffness units for elastic conditions: X
 
* Consider connections with eccentricity: X
 
 
 
'''Structural Loads'''
 
* Add/Edit/Remove structural loads in "Scene" properties: OK
 
* Show units for structural loads: X
 
 
 
'''Load Cases and Structural Actions'''
 
* Add/Edit/Remove load cases: OK
 
* UI Panel to batch create for selected objects and selected load case a load group with a single type of structural action: X
 
* Implement a way to visualize structural actions: X
 
 
 
'''Load Combinations'''
 
* Add/Edit/Remove load combinations: X
 
* Assign/Unassign factored load cases to combinations: X
 
  
 
=== Other ideas on the backburner ===
 
=== Other ideas on the backburner ===
Line 262: Line 215:
 
A summary of the changes in all versions released so far can be found in the [[BlenderBIM Add-on Changelog]].
 
A summary of the changes in all versions released so far can be found in the [[BlenderBIM Add-on Changelog]].
  
==See also==
+
[[Category:Blender]] [[Category:BlenderBIM Add-on]]
* [[:Category:BIM Collaboration Format (BCF)]]
 
 
 
[[Category:Blender]]
 
[[Category:BlenderBIM Add-on]]
 
[[Category:BIM Collaboration Format (BCF)]]
 

Please note that all contributions to Wiki.OSArch are considered to be released under the Creative Commons Attribution-ShareAlike (see Wiki.OSArch:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)