Difference between revisions of "BlenderBIM Add-on/BlenderBIM Add-on Roadmap"

From Wiki.OSArch
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{BlenderBIM_Addon_Documentation}}
 
{{BlenderBIM_Addon_Documentation}}
  
The objective of the BlenderBIM Add-on project is to provide a complete free software workflow in an OpenBIM production pipeline. The ability to work from early feasibility and concept phase, project coordination, detailed design, fabrication & construction, facility management and building maintenance, post-occupancy evaluation, and tear-down.
+
The objective of the [[BlenderBIM Add-on]] project is to provide a complete free software workflow in an [[OpenBIM]] production pipeline. The ability to work from early feasibility and concept phase, project coordination, detailed design, fabrication & construction, facility management and building maintenance, post-occupancy evaluation, and tear-down.
  
 
In addition to providing features equivalent to existing proprietary software, the new tools will be different in two ways. First, they will be highly modular, allowing users to mix and match to create their own pipelines tailored to their needs, and easily modify or extend the pipeline if it does not suit their needs. The user should have full control over their tools. Secondly, the tools will uphold the highest standards possible of open data standards, exchange, and interoperability conventions, allowing us to integrate data across disciplines to make wiser decisions in the design and management of the built environment.
 
In addition to providing features equivalent to existing proprietary software, the new tools will be different in two ways. First, they will be highly modular, allowing users to mix and match to create their own pipelines tailored to their needs, and easily modify or extend the pipeline if it does not suit their needs. The user should have full control over their tools. Secondly, the tools will uphold the highest standards possible of open data standards, exchange, and interoperability conventions, allowing us to integrate data across disciplines to make wiser decisions in the design and management of the built environment.
  
This is an ambitious goal, and some of these responsibilities lie outside the scope of the Blender package. The end-result will be a toolkit of Unix-style utilities which offer all of the required functionality, some of which integrate into the Blender interface, and others which will not. A roadmap is provided here for those who want to know where the project is headed.
+
This is an ambitious goal, and some of these responsibilities lie outside the scope of the Blender package. The end-result will be a toolkit of Unix-style utilities which offer all of the required functionality, some of which integrate into the Blender interface, and others which will not (a "Swiss Army Knife of OpenBIM Utilities"). A roadmap is provided here for those who want to know where the project is headed.
  
 
== History ==
 
== History ==
  
A small commercial building project was first designed in Blender. We were then faced with the task of remodeling it in [[Revit|Autodesk Revit]]. We figured it would be easier to build an entire BIM application and construction documentation tool from scratch rather than face the pain of remodeling it in Revit. It turned out that it was.
+
A small commercial building project was first designed in [[Blender]]. We were then faced with the task of remodeling it in [[Revit|Autodesk Revit]]. We figured it would be easier to build an entire BIM application and construction documentation tool from scratch rather than face the pain of remodeling it in [[Revit]]. It turned out that it was.
  
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 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 later, on October 13, 2019.
+
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.
  
 
== Version 0.0.X ==
 
== Version 0.0.X ==
  
The version 0.0.X series are highly unstable, rapidly changing, alpha-quality software. The X will be substituted with the current date. This is the current state of the project.
+
The version 0.0.X series are rapidly changing, alpha-quality software. The X will be substituted with the current date. This is the current state of the project.
  
At this stage, the BlenderBIM Add-on is very new, but we encourage early adopters and people who want to push the boundaries of what's possible in BIM. Users should expect bugs, and changing behaviour. Users are highly encouraged to try to push the tool and report bugs.  
+
At this stage, the BlenderBIM Add-on is very new, but we encourage early adopters and people who want to push the boundaries of what's possible in BIM. While portions of the software are more stable and mature, there are other portions of the software that are still in the "experimental stages". Users should expect bugs, and changing behaviour. Users are highly encouraged to try to push the tool and report bugs.  
  
 
The primary objective during this version series is to build features, find some early adopters, start a community, and make it possible to achieve productive, commercial-grade output. We're going to release early, release often, and don't mind if we break a few things along the way, so long as we move towards a better future. During this, we hope to demonstrate to the industry what free software is capable of, and build the world's most advanced OpenBIM authoring package.
 
The primary objective during this version series is to build features, find some early adopters, start a community, and make it possible to achieve productive, commercial-grade output. We're going to release early, release often, and don't mind if we break a few things along the way, so long as we move towards a better future. During this, we hope to demonstrate to the industry what free software is capable of, and build the world's most advanced OpenBIM authoring package.
 +
 +
For the first year, priority was given to developing features that allowed my colleagues and me to resolve BIM-related problems that we faced on a daily basis, dealing with a wide variety of construction projects. Now, with that foundation largely in place, we are turning our attention to adding features that will allow us to replace proprietary software in our workflow.
  
 
== Version 0.X.X ==
 
== Version 0.X.X ==
Line 39: Line 41:
 
The following TODO items are highly specific, actionable improvements to be made to the BlenderBIM Add-on. This is a working document, and will shrink and grow over time as more items are planned or items are finished.
 
The following TODO items are highly specific, actionable improvements to be made to the BlenderBIM Add-on. This is a working document, and will shrink and grow over time as more items are planned or items are finished.
  
* Autodetect profile extrusions and create them as extrusions to improve round-tripping instead of manually assigning profiles
+
=== Beginner tasks ===
* Implement a search to the classifications UI
+
 
* Store camera setup settings data in the SVG, based off the BCF standard
+
These tasks are designed to be easy for those who know some programming (you don't need to be an expert!) and would like to help contribute. If you'd like to get involved in any,
 +
 
 +
* Allow the creation of searching a combination of filters in the IFC search panel
 +
* Allow IFC search filters to be saved into a "search sets" which can be reused
 +
* Allow remembered IFC search filters to be imported and exported
 +
* Implement a search to the classifications UI to make it easy to find a single classification reference
 +
* Scrape buildingSMART pset and attribute documentation to allow for descriptive tooltips
 +
* Add support for importing and exporting IFC CSV headers so you don't need to keep on typing them manually
 +
* Add BCF write support in the BCF panel
 +
 
 +
=== Improved implementation of data standards ===
 +
 
 
* Push single object attributes to an IFC file
 
* Push single object attributes to an IFC file
 
* Push single object psets to an IFC file
 
* Push single object psets to an IFC file
* Scrape buildingSMART pset and attribute documentation to allow for descriptive tooltips
 
 
* Add support for integer attributes, not just string values with casting
 
* Add support for integer attributes, not just string values with casting
* Create a UI in Blender to integrate with a Git repository
 
* Re-use and improve FreeCAD's recycler to optimise IFC files
 
* Visualise diffs in IFC data within Blender
 
* Decide on a good asset library extension for Blender to drag and drop components (Integrate with PyClone)
 
 
* Round-trip basic parametric data using custom psets
 
* Round-trip basic parametric data using custom psets
 
* Create a proof of concept of (proper) BIM and GIS integration with OGC datasets and a web viewer
 
* Create a proof of concept of (proper) BIM and GIS integration with OGC datasets and a web viewer
* Return to supporting all of the structural entities. (Note: not specific enough, please expand)
+
* Add support for the new bsDD API
* Support all of the construction sequencing entities. (Note: not specific enough, please expand)
 
* Migrate sheets and views to use a list UI instead of a dropdown for better usability. (Proof of concept already done with MeasureIt-ARCH)
 
* Rendering graphic settings should be remembered and restored on a view by view basis.
 
* Absolutely positioned files which are transformed upon import should retain their transformation data in IFC geolocation entities.
 
 
* Add BCF export support for IFC clash
 
* Add BCF export support for IFC clash
* Support round-tripping circular extrusions natively
+
* Add support for BCF data writing
 +
* Create a UI in Blender to integrate with a Git repository
 +
* Add support for OpenCDE API integration
 +
* Add support for BCF-API integration
 +
 
 +
=== Improved geometry handling ===
 +
 
 +
* Autodetect profile extrusions and create them as extrusions to improve round-tripping instead of manually assigning profiles
 
* Support round-tripping arc extrusions natively
 
* Support round-tripping arc extrusions natively
 
* Support multi-materials in native geometry round-tripping
 
* Support multi-materials in native geometry round-tripping
 
* Stabilise opening element boolean support in native geometry
 
* Stabilise opening element boolean support in native geometry
* Create a UI to run IFCPatch through Blender
+
 
* Basic integration with MeasureIt-Arch to allow for parametric annotations
+
=== Producing drawings ===
 +
 
 +
* Draw decoration (markers, leader arrows, dimension strings, etc) to viewport annotations using bgl and bfl
 +
* Store camera setup settings data in the SVG, based off the BCF standard
 +
* Figure out a way to associate annotation with geometry
 +
* [https://github.com/IfcOpenShell/IfcOpenShell/issues/1153 Here's] an extended list of planned functionality.
 +
**Please considering funding these features.  Details about the funding campaign can be found [https://github.com/IfcOpenShell/IfcOpenShell/issues/1153#issuecomment-743405481 here]
 +
 
 +
=== Streamlining 3D modeling for AEC ===
 +
 
 +
* Decide on a good asset library extension for Blender to drag and drop components (Integrate with PyClone)
 +
* Add common modeling tools to the tool menu for easy access and usability from other apps
 +
* Visualise diffs in IFC data within Blender
 +
 
 +
=== Support for structural ===
 +
 
 +
* Add support for IFC structural surface connections
 +
* Create a specific structural UI panel
 +
 
 +
=== Support for MEP ===
 +
 
 +
* Add support for importing group assignments like IfcSystem
 +
* Add support for exporting group assignments like IfcSystem
 +
* Add support for bulk select / assign / unassign to groups like IfcSystem
 +
* Add support for importing IfcPort
 +
* Add support for importing connected to and from
 +
* Add operators for navigating connection to and from in a system
 +
 
 +
=== Support for environmental ===
 +
 
 +
* Add support for Honeybee
 +
 
 +
=== Support for construction sequencing ===
 +
 
 +
* Support all of the construction sequencing entities. (Note: not specific enough, please expand)
 +
 
 +
=== Support for quantity take off and costing ===
 +
 
 +
* Build a proof of concept of quantity take off based on NRM
 +
* Create an option for column summaries in IFCCSV
 +
* Create an option for group by counts in IFCCSV
  
 
== BlenderBIM Add-on Changelog ==
 
== BlenderBIM Add-on Changelog ==
Line 69: Line 120:
 
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]].
  
[[Category:Blender]] [[Category:BlenderBIM Addon]]
+
[[Category:Blender]] [[Category:BlenderBIM Add-on]]

Revision as of 18:56, 15 December 2020

Please remove this "BlenderBIM_Addon_Documentation" template.


The objective of the BlenderBIM Add-on project is to provide a complete free software workflow in an OpenBIM production pipeline. The ability to work from early feasibility and concept phase, project coordination, detailed design, fabrication & construction, facility management and building maintenance, post-occupancy evaluation, and tear-down.

In addition to providing features equivalent to existing proprietary software, the new tools will be different in two ways. First, they will be highly modular, allowing users to mix and match to create their own pipelines tailored to their needs, and easily modify or extend the pipeline if it does not suit their needs. The user should have full control over their tools. Secondly, the tools will uphold the highest standards possible of open data standards, exchange, and interoperability conventions, allowing us to integrate data across disciplines to make wiser decisions in the design and management of the built environment.

This is an ambitious goal, and some of these responsibilities lie outside the scope of the Blender package. The end-result will be a toolkit of Unix-style utilities which offer all of the required functionality, some of which integrate into the Blender interface, and others which will not (a "Swiss Army Knife of OpenBIM Utilities"). A roadmap is provided here for those who want to know where the project is headed.

History

A small commercial building project was first designed in Blender. We were then faced with the task of remodeling it in Autodesk Revit. We figured it would be easier to build an entire BIM application and construction documentation tool from scratch rather than face the pain of remodeling it in Revit. It turned out that it was.

A day later, the project began on 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.

Version 0.0.X

The version 0.0.X series are rapidly changing, alpha-quality software. The X will be substituted with the current date. This is the current state of the project.

At this stage, the BlenderBIM Add-on is very new, but we encourage early adopters and people who want to push the boundaries of what's possible in BIM. While portions of the software are more stable and mature, there are other portions of the software that are still in the "experimental stages". Users should expect bugs, and changing behaviour. Users are highly encouraged to try to push the tool and report bugs.

The primary objective during this version series is to build features, find some early adopters, start a community, and make it possible to achieve productive, commercial-grade output. We're going to release early, release often, and don't mind if we break a few things along the way, so long as we move towards a better future. During this, we hope to demonstrate to the industry what free software is capable of, and build the world's most advanced OpenBIM authoring package.

For the first year, priority was given to developing features that allowed my colleagues and me to resolve BIM-related problems that we faced on a daily basis, dealing with a wide variety of construction projects. Now, with that foundation largely in place, we are turning our attention to adding features that will allow us to replace proprietary software in our workflow.

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

Version X.X.X

The first version 1.0.0, and subsequent releases, will mean that the BlenderBIM Add-on is now a stable product. A company should now be able to replace their entire proprietary toolset with free software. A bright future for the industry where we can now easily collaborate with high quality open data standards and a culture of openness and transparency.

The priority is now placed on optimising the workflow to create better buildings. To improve sustainable design, more beautiful buildings, happier places, with informed quantitative and qualitative decision-making that spans between GIS, BIM, environmental sciences, design psychology, and more.

The current TODO list

The following TODO items are highly specific, actionable improvements to be made to the BlenderBIM Add-on. This is a working document, and will shrink and grow over time as more items are planned or items are finished.

Beginner tasks

These tasks are designed to be easy for those who know some programming (you don't need to be an expert!) and would like to help contribute. If you'd like to get involved in any,

  • Allow the creation of searching a combination of filters in the IFC search panel
  • Allow IFC search filters to be saved into a "search sets" which can be reused
  • Allow remembered IFC search filters to be imported and exported
  • Implement a search to the classifications UI to make it easy to find a single classification reference
  • Scrape buildingSMART pset and attribute documentation to allow for descriptive tooltips
  • Add support for importing and exporting IFC CSV headers so you don't need to keep on typing them manually
  • Add BCF write support in the BCF panel

Improved implementation of data standards

  • Push single object attributes to an IFC file
  • Push single object psets to an IFC file
  • Add support for integer attributes, not just string values with casting
  • Round-trip basic parametric data using custom psets
  • Create a proof of concept of (proper) BIM and GIS integration with OGC datasets and a web viewer
  • Add support for the new bsDD API
  • Add BCF export support for IFC clash
  • Add support for BCF data writing
  • Create a UI in Blender to integrate with a Git repository
  • Add support for OpenCDE API integration
  • Add support for BCF-API integration

Improved geometry handling

  • Autodetect profile extrusions and create them as extrusions to improve round-tripping instead of manually assigning profiles
  • Support round-tripping arc extrusions natively
  • Support multi-materials in native geometry round-tripping
  • Stabilise opening element boolean support in native geometry

Producing drawings

  • Draw decoration (markers, leader arrows, dimension strings, etc) to viewport annotations using bgl and bfl
  • Store camera setup settings data in the SVG, based off the BCF standard
  • Figure out a way to associate annotation with geometry
  • Here's an extended list of planned functionality.
    • Please considering funding these features. Details about the funding campaign can be found here

Streamlining 3D modeling for AEC

  • Decide on a good asset library extension for Blender to drag and drop components (Integrate with PyClone)
  • Add common modeling tools to the tool menu for easy access and usability from other apps
  • Visualise diffs in IFC data within Blender

Support for structural

  • Add support for IFC structural surface connections
  • Create a specific structural UI panel

Support for MEP

  • Add support for importing group assignments like IfcSystem
  • Add support for exporting group assignments like IfcSystem
  • Add support for bulk select / assign / unassign to groups like IfcSystem
  • Add support for importing IfcPort
  • Add support for importing connected to and from
  • Add operators for navigating connection to and from in a system

Support for environmental

  • Add support for Honeybee

Support for construction sequencing

  • Support all of the construction sequencing entities. (Note: not specific enough, please expand)

Support for quantity take off and costing

  • Build a proof of concept of quantity take off based on NRM
  • Create an option for column summaries in IFCCSV
  • Create an option for group by counts in IFCCSV

BlenderBIM Add-on Changelog

A summary of the changes in all versions released so far can be found in the BlenderBIM Add-on Changelog.