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 22: Line 22:
  
 
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.
 
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 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.
 
In January 2021, the BlenderBIM Add-on was rewritten, making three major changes.
Line 38: Line 34:
  
 
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).
 
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 47:
 
== 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 64:
  
 
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 96: Line 85:
  
 
* 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 documentation 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 94:
 
=== 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)
  
Line 150: Line 141:
 
* 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 ===
 +
 +
* Material colours should be reimplemented as a fallback to style colours.
 +
 +
=== 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 171: Line 170:
  
 
* Work has started: Usecases and UI to author entities related to Construction Sequencing and Resources (yassineSIGMA, Moult)
 
* Work has started: Usecases and UI to author entities related to Construction Sequencing and Resources (yassineSIGMA, Moult)
 +
* Allow correlated editing of durations and start / end times
 
* 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
 +
* Derive start / end times of a parent task based on its nested tasks dates range
 
* Support import of MS Project - Ongoing (Missing: LagTime, calendar assignement to tasks, calendar exception times, Resources)  
 
* Support import of MS Project - Ongoing (Missing: LagTime, calendar assignement to tasks, calendar exception times, Resources)  
 
* Support import of LibreProject
 
* Support import of LibreProject
 +
* 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 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 ===

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)