Presenting Blender as a new IFC authoring tool

blender28-bim-191101-win.zip 01-Nov-2019 08:58 12029391

Dimitar said “I wanted a software that be between strict software and parametric” for (conceptual) design

Blender in “geometry/topology,” generally in design is really powerful and also has a powerful parametric logic too

The gap is/was it’s not an engineering software for instance for BIM, but BlenderBIM can solve this gap

@Hans_Lammerts About DXF, personally don’t see any future for DXF, it’s outdated
IFC is better choice, but needs improvement, even IFC4.2 final

“I have found that the DXF import/export to be not 100% reliable.”

There are two kinds of thoughts in our beautiful remarkable BIM AEC industry. Those who believe BIM is fully 3D object orientated and those who thing BIM is all about new ways of ‘Fusion of media & technology’, often referred as ‘Bim is a process’. Anyway, i think for both ways of thinking is is CRUCIAL for the long term to enable connections being made with old 2D engineering archives and - CAD still work being done out there.

So, If you truly and fundamentally want open formats to be support this than DXF is one of the best ways to support that. Unfortunalety DWG still is not an ‘open’ format. It doesn’t mind the DXF standard are old and not being developed further. It is probably a benefit.

At the same time i wonder what 2D and 3D open standards are being used in the field of ‘GIS’. (?)
LandXML, GML but also … DXF…

Just my thoughts, $
regards hans

@Moult
@robsnyder

These days just some from Autodesk try to say DXF is good and is a “real” open format

Those who say “BIM is all about the process,” including I, say “BIM is all about Data/Information” too. And existing BIM is “weak” in Data/Information, and also Process

IFC4.2 has a lot of improvements in “Geometry/Topology” the “inherent” issue of IFC is its “flexibility”

IFC through relationships cause “Flexibility” which is good and also has its pros and cons too

About Backwards and Forwards! because this is one of the hot topics in buildingSMART too, “if we have a middleware that can convert old files to new files and vice versa” the issue related to Backwards and Forwards will solve

Question is When will this IFC 4.2 see the light in my prevered design software of choice? IFC has gained momentum in buildings but for other sectors that have a relationship with mechnanical and topography very little has changed of the years.

As I see IFC4.2 has a lot of improvements, especially in HVAC, the main issue today I think is buildingSMART should change/improve and develop a lot of things after ISO19650

Also, I guess, some software companies see their future unpredictable, because IFC, especially in STEP 2017 has some features that is not pleasant for software vendors

My two cents is that you cannot really compare DXF with IFC. They have different purposes and complement one another. Judging a format by how “aged” it is is not a valid argument in my opinion. To my understanding, DXF does not contain standard locations for representing complex BIM relationships, and therefore it not suitable as a BIM format. However, it is certainly extremely suitable for documentation, and certain forms of geometry.

In the field of GIS, there are quite a few formats out there - from the common shapefile format, to GeoJSON, Spatialite databases … from my experience they have more standards than the BIM world :slight_smile:

Update time!

  • New support for importing and exporting imperial units, and you can choose your primary LENGTHUNIT.
  • You can create geometry specifically for the PLAN geometric representation context now, and choose the TARGET_VIEW enum to do plans, sections, RCPs …
  • New export options to export materials as styled items. This is useful for exporting to Revit (and a few others), which seems to completely ignore IfcMaterial, but instead treats the styled item name as the material name, and ignores any colours assigned via IfcMaterial. Ideally, this should be fixed on their end, but is a workaround.
  • New import options to import 2D curve elements
  • Parametrically generated geometry from Blender now maintain their GlobalId value, even if you generate less or more of the geometry.
  • New import option to ignore site locations, so that non-geolocated IFC2X3 files or incorrectly geolocated IFC4 files (almost every single Revit export that we come across) can import with a sensible project origin.
  • New UI and improved support for specifying multiple swept solid extrusions per object, for geometric round-tripping with programs like Revit
  • Stephen Leger from Archipack has started contributing code! He has done some neat cleanups and optimisations on the Blender UI.
  • IFC BIMTester now has a feature where you can choose to purge tests for elements which have been since deleted since you wrote your test suite.
  • You can now specify IfcPerson and IfcOrganization details including postal and telecom addresses for export.
  • As usual, bugfixes, most notably for the export location of swept solids and parented Blender objects.
3 Likes

I am impressed by the ambitious and promising initiatives towards OpenBIM. Please keep on with it!

After learning more about the details I will come back with qualified technical comments.

Best regards,
Herbert from Austria

1 Like

Thank you @Herb! It is a long and difficult journey ahead, but the world needs more open :slight_smile:

First things first … new Blender version 2.81 has been released! See the changelog. This one focused a lot on improved sculping tools. The retopo tools are really important to bring in scanned geometry into high quality meshes. The built-in bulk rename is nice, although it already existed as an add-on for a while, and the improved snapping is great. Faster renders and improved denoising is awesome!

Update time!

  • Bugfix for IFC locations of objects which have a parent relationship or constraints in Blender
  • Plugin renamed to BlenderBIM
  • Version number now shows on the add-on
  • Objects can now be arbitrarily scaled in any axis
  • Under the hood code clean-up and PEP8 improvements
  • You can now specify an IFC Diff and do an incremental import. No need to reimport an entire file, just import the things which have changed!
  • Bugfix for BIMTester to prevent overwriting existing feature files
  • Optimisation for the “select audited elements” function. Much faster.
  • Add support for element voids and fill elements relationship. You can now properly do doors in walls and stuff like that.
  • Bugfix for IFC “select by type” function which wasn’t working.
  • Implement support for IFC library (not project library, which already existed - this new feature lets you specify if your project is on a BIM server, such as Git)
  • A couple new sentences added to the BIMTester vocabulary to mark elements as exempt from testing
  • Bugfix when shape representations are reused in their mapped item entity.
  • Support for parametric mirroring of geometry (aka the mirror modifier in Blender) to export out to IFC - it can halve your modeling time and export filesizes for symmetrical portions of your building!
  • New dropdown for audit class in the audit panel, instead of having to navigate to other panels to approve or reject IFC classes.

Also - brand new BlenderBIM.org website design! Cleaner layout, mobile friendly.

https://blenderbim.org/

Now comes with new tutorial articles on:

Also started a new series of articles to help upskill people on OpenBIM:

Related tools like Archipack also now have the ability to split and merge walls:

5 Likes

Happy holidays, everyone! It’s been almost 3 weeks since the last update, but there have been many developments.

  • Imports now support styled item colours, and differentiates between material surface colours and object surface colours
  • Support a “material passport”, essentially you store externally defined surface styles, and Blender can detect if any Cycles or Eevee shaders exist in it, and will load them. This allows for IFC models with complex textures and materials for CG renderings. No other BIM program can do this.
  • New IFC Clash utility, to perform clash detection, with a specified dimensional tolerance. This data can be exported into JSON so you can visualise clash results and analyse them. Clash detection is done directly on the IFC so you can run it on your BIM server. Can run from command line. This replicates functionality from Navisworks or Solibri.
  • You can proxy one shape for another using associated documents. If you associate another mesh object, Blender can replace the IFC shape representation with another Blender native file format. This way you can have low-fidelity models in the IFC file but retain higher polygon models elsewhere.
  • Import now supports document associations
  • New UI to choose exactly what geometric representation contexts to export.
  • IFC diff utility can now run from command line input so that it is easier to run from a BIM server.
  • New support for construction documentation. More on this below.
  • Bunch of under the hood fixes with IfcOpenShell thanks to @aothms and other IfcOpenShell contributors like AdriScho and mieszk

Complex material support:

Object proxying support:

Clash detection, as well as the JSON output (note: BCF output will come too):

clash2

User-configurable geometric contexts:

0

Per-object colour support:

I wanted to highlight one of the most important changes in this release is the ability to do construction documentation. A BIM model is only half the story, documentation is the “map” to help navigate your way through the data and direct your attention to portions of interest in the BIM model. So having open-data standards for OpenBIM is not enough, we need to have open-data standards for documentation.

This documentation is generated (i.e. section cut) from the IFC file directly (so you can headlessly publish it on your BIM sever!) and supports any direction of cut (plan, section, RCP, elevation), with clipping plane options and your typical slew of annotative objects. All sheets and output is in SVG, as it is an open-standard for vector data with wide support, and there is no viewer for the IFC annotation objects. Managing views on sheets is done with Inkscape, another free and open source vector tool. A standard web browser can view the output too. The technical lettering font is also completely open-source thanks to the LibreCAD community who has a nice collection.

We are currently using a 100% free and open-source pipeline to perform certain jobs on live commercial projects. The IFC file is used as a native format, Git is used for versioning, and construction documentation is also 100% open-source. See here a sample sheet which I am able to show produced with BlenderBIM.

Some close-ups:

image

If you’d like a copy of the PDF to see the full scale output please send me a message.

The output supports dimension strings (rotated and orthogonal), text with multiline and different alignment supports, section and plan level annotations, and different hatching styles, line thicknesses, leader markers (e.g. architectural tick dimensions v.s. engineering arrow dimensions), grids (from IfcGrid) and so on. I’ve set a bunch of presets to get people started with typical 2.5, 3.5mm 5mm, etc sizes that are standards in Australia. Dimensions are all calculated based on the model. This documentation is also semantic, as it includes SVG classes, so all annotation styles are applied at run-time using CSS, so you can re-use the same plan multiple times and turn on and off visibility or change the display for different users. It can also therefore be interactively queried on a web-browser.

The model is detailed to fabrication level and and have manipulations such as unfolding to create the steel lasercut net as shown at the bottom right of the sheet.

Annotation can be viewed in 3D - there are plans to store this in the IFC file too - but it may prove a little tricky since a lot of IFC entities related to annotation were removed by buildingSMART. It would be good to discuss options to restore some of these.

Sheet revisions are picked up from the active Git repository - so it would tag the current HEAD^ location of the version control system that forms the backbone of your BIM server using Git. No more manual versioning.

image

Many thanks to Thomas Paviot and Martin Siggel who are supporting Python-OCC which helps makes all this possible.

Oh, also, with BlenderBIM we can integrate with OpenStreetMaps GIS data to get an IFC output from the City of Sydney. Here it is viewed in XBim, taken originally from BlenderGIS add-on. There are roads, but they are coplanar with the ground, so you can’t really see them clearly since XBim doesn’t render it that way.

Download the latest today: https://blenderbim.org/

11 Likes

Very cool. I’m excited about the annotation layer being reflected in the IFC file. Would 2nd reviving some of the deprecated annotation classes.

2 Likes

Amazing results @Moult !!!

1 Like

This is really powerful :grin:
Congratulations :wave:t2:

btw (off-topic):
Detail1
How does this work from a mechanical point of view?
I am afraid that the stringer slides through bellow the profile beam, doesn’t it?

I pay high respect @Moult for the great achievements with BlenderBIM.

As contribution for further developments I will spend some comments:

I am happy to report that minor issues that I discovered in the previous version of BlenderBIM disappeared in the new version. (little misalignment of window and openingelement inside wall)
Results (ifc testfile has been built by PostgreSQL PL/ pgSQL):
xBIM Xplorer:


Revit2020:

blender28-bim-191219-win:

I am a little bit concerned about dynamic performance.
50 storey tower (highly simplified) did not open in BlenderBIM, even after one hour.
other results:
xBIM Xplorer



Revit2020:

Best regards, Herb

Thank you for informing us, please if possible attach your test file.

Also, are you working on “grammars?”

There are the “tower” test files:

50 storeys:
tower - 50 storeys.ifc (2.3 MB)

reduced version with 4 storeys only:
tower - 4 storeys.ifc (185.4 KB)

Here are the test files “4storeys-4walls-64windows” that have been generated based on generic (parameterizable) XFC files for octagon windows and for the generic building:

parameter H_STOREY set to 4m:
4storeys-4walls-64windows - H_STOREY 4m.ifc (62.8 KB)

parameter H_STOREY set to 6m:
4storeys-4walls-64windows - H_STOREY 6m.ifc (62.8 KB)

I am not working on grammars from a scientific point of view.

I follow a very pragmatic way (KISS = keep it short and simple) to solve practical planning information challenges with state of the art IT methods and minimized human effort as aligned as possible to current standards (e.g. IFC, DIN SPEC 91391, …). But this would be another story respectively topic.

1 Like

I tried “IFC Clash utility” to be used on a windows machine but I am stuck at half of the way.
Does anyone succeed with “IFC Clash utility” on a windows machine?

I expect only some minor steps to be considered but I did not succeed completely through the tool chain dependencies:

  • “IFC Clash utility”
  • Python
  • Visual Studio
  • fcl
  • eigen3
  • libccd
  • octomap

I am currently stuck at VS2019 compiler error during compilation of fcl:
include\fcl\math\bv\RSS-inl.h(369): error C2280 “attempting to reference a deleted function”

Are there any similar observations?

@Herb - thanks for your encouragement and testing. The stair tread support is welded to the stringer where you drew a red circle. The stair design is also incomplete, so it may change once we refine the engineering.

I have fixed the issue where your file did not load. So you will now be able to import them into Blender successfully.

However, there are a few issues with your file. The first which jumped out was that global IDs aren’t correct. Global IDs must follow a very specific form of base64 encoding of a standard UUID, it is not correct to simply place text in there, which may create issues with IFC programs trying to read your IFC file.

I suspect that these issues may cause problems with reading your file. In the new year hopefully with the help of @aothms we can determine what exactly these are with closer inspection.

The fixes will be available in the next build :slight_smile:

I haven’t gotten the fcl dependency built on Windows yet. In the new year I will investigate packaging of the dependencies so people can have it working out of the box. Perhaps you can ask your questions in the fcl repo?

Happy new year!

1 Like