BlenderBIM - OpenBIM authoring with Blender

Make sure you are using the latest version. Can you check the version number? The latest version has an option that is on by default in the scene properties panel saying something like “detect vendor workarounds on import”. That will resolve the Revit problem where things are very far away since Revit doesn’t implement geolocation properly.

You can use the view selected option to zoom into the objects. Perhaps they are far away nevertheless.

If things still dont work, can you send me the file via private message? I won’t share with anyone.

Thanks for sending me your file! Your issue has now been fixed as of this commit and the fix will be available in the next release!

For those interested, Revit apparently sometimes (incorrectly) stores poor geolocation coordinates in the building. I have added it to the list of Revit-specific workarounds during import-time.

Sorry for the late reply, I forgot to post this here.

New update!

  • Documentation added for the context panel
  • Site objects are now imported
  • Bugfix to export different types of curve objects
  • All non-polygonal extrusions now have an Axis representation exported
  • Material properties are now exported (like density, youngs modulus, etc)
  • New sample attributes for doors and windows shipped with the add-on
  • Point clouds now can be exported to IFC
  • IFC structural objects are now exported
  • UI improvement to only show predefined types and userdefined types if it is possible
  • Structural objects now export a topological reference representation
  • Parametric material profiles are now supported (rectangular, circular, I-Beam, etc)
  • New UI to manage material attributes
  • New UI to change material assignment (single / layer / constituent / profile set)
  • New UI to create a property set override instead of having to write properties in separate CSV files
  • BIMTester now includes model setup vocabulary, drafted in collaboration with BuildingSMART Australasia co-founder @john.mitchell - it tests basic project attributes and geolocation for both IFC2X3 and IFC4.
  • BIMTester now allows custom JUnit directories for better cloud integration
  • Bugfix where some context representations were not exported now fixed
  • UI to specify structural boundary conditions
  • New UI to specify structural member connections
  • Can export a group of structural objects into a Structural Analysis Model
  • Importing now has a progress bar and more consistent logging
  • Documentation for the BlenderBIM Add-on and IfcOpenShell merged and restructured
  • New workaround for Revit incorrect geolocation being placed on the building object - enabled by default
  • Assigning product types is now done by a property instead of the Blender parent relationship to allow it to scale on large files
  • New experimental script to convert IFC into Code_Aster input for 100% free and open source structural analysis

A few pictures highlighting the major improvements…

Point clouds! Woo! As you can see, BIM, point clouds, and 3D annotations are all fused together - this presents exciting opportunities for recording this as-built fusion for our built environment! (Note: the existing Point Cloud Visualiser plugin is used here - the BlenderBIM add-on will read the point data and export it to IFC)

As the BlenderBIM add-on can now author an IFC file containing structural analysis models, there is now an ability to convert this IFC file into a format that Code_Aster can read to perform structural analysis:

The results are visualised with Salome_Meca and ParaviS (effectively Paraview included into Salome_Meca). Shown is the deflection of a single cantilevering beam.

This is the start of a pipeline where structural modeling and structural analysis can be done with a 100% free and open source pipeline through IFC!

Shown below are the test vocabulary developed with @john.mitchell to check geolocation. This is still relatively fresh, but we hope to standardise this to verify that all models produced are properly geolocated.

Also quite exciting is how FreeCAD was combined with the BlenderBIM Add-on - FreeCAD was used to parametrically model with constraints (Catia-style) a stair tread which was sent in STEP format for manufacturing. The native parametric file was associated with an IFC document association, and the FreeCAD export supplied the solid parametric representation item, whereas Blender provided the mesh based representation item. This demonstrates that it is possible to mix different mesh modeling techniques across different programs and use each to their strengths. Many thanks to @yorik who has made a lot of this possible in FreeCAD.

The same tread is shown with a faceted brep representation in Blender below:

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

2 Likes

I have to say I’m very impressed by the progress made with BlenderBIM so far, and I see this addition to Blender as an increasingly valuable possibility in the open BIM workflow.

Anyway, just wanted to share a small example of what I’ve been working on. I’ve made a small program that takes a .csv as input (compactor machine data, basically a point cloud), generate rectangular meshes for each point, set color based on status, adds the objects complementing properties with property set override, and exports individual IFCs per “Design Layer” from the data.

In our current workflow we collect machine data on a daily basis, and with BlenderBIM we are now able to automate the prosess of visualizing the progress and status to all project members (not only those acquainted with GIS). In addition to making the data available for further analyses in the BIM workflow.

The example below shows how this can be visualized within Navisworks (This is a highway road project):

My program still needs some optimization in order to reduce the number of objects. It seems Blender is starting to slow down around 10.000,- objects, even if the geometry is not very complex. So going to see if this is manageable without the use of some other GIS tool.

But thanks again for adding support for property set overrides. :slight_smile:

1 Like

@inge_handagard very cool project! Do you mind if I share your screenshot and your short paragraph about your project on other social media? I think others would be very excited to see free software BIM in action! I will of course be more than happy to credit you with a name / link / whatever you like.

I assume the colours (of which there are three) correspond to status. Would it be possible to merge all of the planes of the same colour together? That would make Blender much, much faster. The large volume of objects is a known problem.

Please let me know if there is anything else I can add :slight_smile:

@inge_handagard If you’re not familiar with the duplivert/dupli workflow, I highly recommend it as it could streamline your process and allow you to break that 10k object barrier.

The issue is that in IFC dupliverts don’t translate currently. If we made them translate, the restriction would be similar to an array modifiers - the IFC product data will be the same and GlobalIds need to be regenerated.

If this is acceptable (I.e. the pset of each plane is identical) then I can build it as a feature :slight_smile:

Oh, and if you have three types have you considered using type products?

@noidtluom Thanks! I don’t mind if you share the post.

Yes, the colors represent status. So that is exactly my plan as well, but this means tinkering with geometry, neighbor points, boundary lines etc., and that might be on the edge of my capabilities. Merging the objects, once there, is probably not problematic - but then you will just add one step to the process - and deletion of objects in Blender is terribly slow… So I need to “sort” the points by common properties (I have already made a hash-function for this), and then derive the boundary for the point “groups” - and then create the meshs.

@XenWildman Not too familiar, but I looked somewhat into duplication when I started out, only to hit the problem that all objects “inherited” the property values, and colors of the last object added. I’ve created 4 “default” meshes, (and 4 “dummy objects” to set the corresponding color), witch I use for each new object instance.

I was hoping that having 4 meshes vs. thousands would improve the efficiency, but it did not help very much.

@noidtluom Each plane has unique property values, so not entirely sure this would solve anything. As mentioned I’ve created a hash, but this is based on 6 different values, so you might end up with quite a few combinations of these either way - and the geometry would not be the same (if you combine the related meshes).

No, I have not looked into type products - what is the gain you get from doing that? Was thinking of adding a few different classifications, eg. for “Machine Name”, “Status” etc., but haven’t started on that yet.

I guess I misunderstood the situation then. Dupli is a more efficient way of creating many objects but if the desired outcome is to represent something like the squares in the image, ie. colour and perhaps animation how about Vertex colour?

Yup, I think it would be a possibility for the visualization part. I could potentially create one object/mesh for the entire dataset, and use Vertex colour to create the texture. But I would loose the unique properties related to each square. (There might be cases where we want to keep this data.)

@noidtluom I believed you have described that Blender will support textures, Vertex colour for IFC export? But not sure if this would be supported by any other “common” softwares on import?

@inge_handagard - perhaps you could send me a copy of your IFC file, or Blend file that generates the IFC, (of course, I will treat it as sensitive data and only use it for the purposes of investigation) and I can perhaps try to discover a way to optimise it.

Mr. Moult, First of all congratulations on the excellent work with “BlenderBIM”. I’m starting with Blender and trying to create works focused on BIM. Could you please tell me if the IFC extension is capable of carrying textures, even though they are native to Blender? I did some tests and the textures were not preserved on import (.ifc).
Thank you !

@Klaus_Sousa - the IFC format does indeed support textures, but it is a little complicated, because the IFC format supports more than just the traditional mesh representations of verts/edges/faces. For this reason, BlenderBIM does not yet support texture exports. Even if it did support textures, unfortunately there are very few, if any, IFC viewers that can actually see the textures you have applied :frowning:

It’s not an excuse, though - it is certainly on the to-do list. If it is a high priority for you, I will see what I can do to implement it sooner rather than later.

Thank you very much for the answer, Mr. Mount. The transport of textures by .ifc is certainly a great evolution. But OK ! I’ll wait patiently for the implementation … I’m already taking medication for anxiety kkkkk.

A new version of the BlenderBIM Add-on v0.0.200228 was released today! It’s been a month since the last release, but there are lots of new features!

  • 12D files, which usually have absolute coordinates, are now imported into Blender with an offset to allow you to work in local coordinates for vertical BIM
  • The BIM audit panel now allows you to select a particular BIMTester feature, and write tests directly from the UI instead of needing a text editor
  • Your spatial tree can now have geometric representations (most importantly, this allows you to export an IfcSite terrain)
  • Quick project setup button now sets up spatial objects too
  • Sites can now export a reference long/lat attribute
  • When importing, it now remembers what IFC file the data came from (in preparation for partial writes)
  • Minor bugfixes related to missing items in dropdown menus, curve orientations upon export
  • Import now associates type products
  • Bugfix allowing you to import multiple spatial structure elements with identical names
  • New option to toggle import of opening elements
  • Improved IFC-to-Code_Aster script
  • Preset render settings for creating documentation and diagrams
  • Create dimension annotations in 3D from any orientation instead of for a particular view
  • New support for IFC projection elements (opposite of void elements)
  • Allow you to create other types of leaders and section levels from any orientation instead of for a particular view
  • IfcPolygonalFaceSets are now imported with the correct units (useful for sites and terrains)
  • Extra checks to ensure exports don’t create GlobalId collisions
  • Allow duplicate names for both mesh and curve data
  • New option allowing people to maintain parametric behaviour to generate multiple IFC objects, or to bake the results into a single IFC object
  • New IFCPatch tool, allowing you to patch the data in an IFC file based on a series of preloaded “recipes”. These allow you to workaround various limitations in other IFC authoring exports in a safe way without breaking the rest of the IFC data. Recipies include: Reset spatial element object placement locations, Offset from absolute coordinates to a local system, Remove representations from sites, Offset IfcBuildingStorey elevations,Set reference elevation
  • BIMTester now shows test results with a percentage success rate
  • IFC import now imports pset data
  • 2D grids are now imported even though curve data isn’t enabled, given the importance of grids. Support added for IfcGrid and IfcGridAxis
  • New ability to search for IFC objects by their attribute or pset property values with a case insensitive string, with support for regex for super advanced searching
  • You can select any IFC attribute or pset property and colour code the model by the value for a visual cue when auditing IFC data
  • Minor UI clean-up to hide panels by default
  • New import option to toggle import of IfcSpace objects
  • Handle import coordinate offsetting of IFC2X3 files created from Tekla which are poorly geolocated
  • Version bump to the latest IfcOpenShell library, which includes fixes for more stable geometry import

Get the latest version today: https://blenderbim.org/

4 Likes

Hi. I’m not sure if this still applies to your problem, but you can reduce drawtime considerably by deselecting the outline-selected prop. Apearantly blender draws the objects twice to generate those orange outlines.

Also I’m currently writing a term paper about IFC featuring BlenderBIM. I’d be more than happy, if I could include your post from jan29 as well as your thoughts about BlenderBIM so far.
If you have images or tips you’d like to share, I’d gladly include them as well.

Thanks in advance,
Teck-Freak

A new version of the BlenderBIM Add-on is now released: v0.0.200328 ! Get the new version today: https://blenderbim.org/

One month since the last release, there have been over 30 fixes, stability improvements, and new features. Highlights include new import features for simplify and merge IFC models, brand new IFC to/from CSV data export and import, basic support for BCF-XML 2.1, and simple construction documentation sheet management.

  • Latest IfcOpenShell version, with various stability fixes to import more files!
  • BIMTester can now just generate reports if required
  • BIMTester can run a single test instead of the entire test suite
  • Fix import bug with some IFC object types aren’t related correctly
  • New BIMTester test to check if an element doesn’t exist
  • Improved support for IFC2X3 materials without transparency
  • Fix import bug where IFC spaces with the same name might not be in the right location in the spatial tree
  • New import option to auto-merge geometry by IFC class
  • New import option to auto-merge geometry by IFC material
  • New import option to disable element aggregation
  • Hidden lines in construction documentation may now be in 3D, useful for showing exploded axonometric views
  • New IFCCSV tool allows querying an IFC file and exporting attributes and psets and reimporting an updated CSV to the IFC model
  • IFCCSV tool allows querying using IFC class, attribute, pset, and qto filters, with multiple operators, AND and OR statements
  • Export fix where sometimes you could create an abstract IFC class
  • All IfcSpatialElements are now supported including obscure ones like IfcSpatialZone and IfcExternalSpatialElement
  • IFC exports now support multiple materials on a single object
  • Fix export bug where some aggregates don’t export
  • Fix import bug where some objects inside a space won’t import
  • New import feature to automatically clean meshes to get nicer topologies
  • New export feature to export objects inside spaces and any spatial element
  • New import feature to record the spatial relationship of objects inside spaces (with ability to scale for large projects)
  • New import feature where quantity take-off quantities are imported
  • New export feature where you can manually fill out quantities and export them
  • Fix import bug where materials may be on multiple shape representations
  • New support for BCF XML 2.1!
  • View list of BCF topics in the UI, showing basic metadata about each topic
  • New button to uninstall add-on, to improve the upgrade process
  • See multiple viewpoints for each BCF topic and launch a camera view for each viewpoint
  • Any type of curve object is now supported for construction documentation annotation objects
  • Spatial containers are auto-detected when exporting making it more convenient for users to do quick exports
  • Support for BCF topic comments
  • BCF topic reference links, BIM snippets, document references, and related topics are supported with buttons to quickly open both external and internal references
  • New buttons to quickly view BlenderBIM Add-on homepage, docs, wiki, and forum
  • Documentation titleblock and view templates heavily optimised to a fraction of the filesize - mere kilobytes!
  • New UI feature to add new sheets and add views to sheets
  • New UI features to quickly open sheets and views in external SVG programs / viewers
  • Views now store view scale in their vector output - in an indsutry where our vector output is non-semantic, which really changes things!
  • Fix IfcPatch bug for broken ResetAbsoluteCoordinates recipe
  • New feature to publish sheets with automatic view titles, scales, view numbers, and sheet names

Sorry to say but I get this error;
Can you have a look at it?
Thanks,
Martijn.
Blender version 2.82a on ubuntu 19.10

Traceback (most recent call last):
File “/snap/blender/37/2.82/scripts/modules/addon_utils.py”, line 351, in enable
mod = import(module_name)
File “/home/dom/.config/blender/2.82/scripts/addons/blenderbim/init.py”, line 27, in
shutil.move(os.path.join(lib_dir, f), os.path.join(lib_dir, ‘…’, ‘…’, ‘…’))
File “/snap/blender/37/2.82/python/lib/python3.7/shutil.py”, line 564, in move
raise Error(“Destination path ‘%s’ already exists” % real_dst)
shutil.Error: Destination path ‘/home/dom/.config/blender/2.82/scripts/addons/blenderbim/…/lib/…/…/…/libTKHLR.so.10’ already exists

@martijnfc - to upgrade, please delete all of the following in your Blender add-ons directory and then install afresh:

blenderbim/
ifcopenshell/
OCC/
pystache/
svgwrite/
deepdiff/
jsonpickle/
lib/ # Note: this only exists on MacOS and Linux
ordered_set.py
pyparsing.py

On Linux and Mac, because of the way the Conda builds currently have relative links to their .so files, you are also required to delete all the lib*.so* files in your ~/.config/blender/2.82/ folder. It’s a pain, I know. However to fix it requires a bit of work on the Conda builds for OCE, which is not really my expertise.

The new version has an uninstall button which does this for you. It’s not best practices as far as add-ons go, but is a necessary complication given how some of the precompiled c++ dependencies currently work.

Thank you! It works perfect now. Thank you for all the effort you have put into this add on. :slightly_smiling_face: