Hacker News new | past | comments | ask | show | jobs | submit login
BlenderBIM – add-on for beautiful, detailed, and data-rich OpenBIM with Blender (blenderbim.org)
235 points by Teever 10 months ago | hide | past | favorite | 68 comments



When we had our home reconstructed three years ago, the architect exported the plans in BIM format from the software he used. I used Blender with BlenderBIM to arrange virtual tours with my wife to get a better (immersive?) view of how the different rooms will look after the planned changes. The result wasn't perfect, which I attribute to my very limited experience with Blender and some minor flaws around the export/import process (e.g. doors and windows were missing, some walls had the wrong dimensions). I fixed some of the problems manually in Blender after the import in a few minutes. All in all, the plugin did the job very well, and helped us make some decisions. I would gladly recommend it for a similar use case.

EDIT: removed typo


There is (among many other) one thing that I truly like about Blender: with its gigantic add-on ecosystem it is on the path to becoming the standard platform for everything 3D.

Or rather: the one place where everything you can do with 3D can come together under the same roof: CAD, CAM, Architecture, Interior Design, 3D reconstruction, Scientific Visualization, Animation, 2.5D drawing, Artistic Modeling, Prototyping, Industrial Design, Simulation, Rendering, Special Effects (of course), etc ... I'm certainly forgetting 80% of the list.

Take any of the other 3D packages out there in all the domains I listed: none of them has anywhere near the breadth and versatility of Blender, and pretty much none of them are capable of importing 3D work from other packages the way Blender can.

I hope various industries involved in 3D will finally recognize this fact and the economic value it brings about. The SFX industry has already recognized it. Fingers crossed, the other will follow.


How does CAD modelling work in Blender? I thought solid geometry manipulation like in CAD software was fundamentally different to what Blender does (surfaces only)?


There's https://www.cadsketcher.com/ addon for Blender. Blender isn't really a CAD program, but apparently it's got enough 3D functionality that it's possible to do CAD in it. Would need to hear from someone more familiar with CAD than I to know whether it's really viable yet or not. Blender's excellent for everything I've personally needed to do in 3D thus far though. (Mostly models / animations for use in game engines.)


It is a stretch to call Blender a CAD. What I think distinguishes parametric CADs is that in Blender you edit the body while in CAD you edit a set of operations that produce the body. This sequence is then processed by geometric modelling kernel to produce the end result. Editing and rendering is the easier part of it.

Sketcher mentioned is probably letting you create dimension accurate objects by hand, but it is far from being a proper CAD.


A 5s check of the documentation (so I may be way off), looks like Sketcher co-opts blender's UI to make it a front end to a CAD app (SolveSpace). So it does get you operations modeled to geometry like a real CAD app.


Blender doesn't support STEP file import or export, so it is not a viable CAD program. The add-on is probably great for creating dimensioned parts for use in animations and other things Blender does. But there is no interoperability with manufacturing or simulation tools.


Thanks for all the responses. As I said, I'm not a "CAD guy", so I didn't really know for sure, but now at least (thanks to y'all folks) I have a somewhat better understanding where "the line" between Blender 3D (and similar programs like Maya, Lightwave 3D, etc) and CAD actually lies. ;)


CAD modeling in Blender is only possible with geometry nodes.

I did some projects using geometry nodes. It is a nice step towards CAD modeling because it is fully parametric.

CAD models are mathematical models and thus infinit accurate. Solid models are not. But sometimes they are good enough. I create a lot of models in Blender for 3D printing.


In the BlenderBIM Add-on, CAD modeling works by providing a dedicated modeling interface that interacts with the IFC data model. IFC is an ISO standard that describes geometry, data, objects, processes, and relationships, for the built environment (i.e. BIM). IFC's geometry is based on STEP, so modeling in IFC has similarities to modeling in STEP. You can have swept solid extrusions, revolutions, true arcs and circles, but also some things that don't exist in STEP but are specific to the built environment, like the parameters for an I-shaped beam.

So like other Blender add-ons that do this already (e.g. CAD Sketcher) the BlenderBIM Add-on bypasses Blender for most geometric operations. You define using the dedicated modeling interface, the IFC data model is updated, then the triangles are visualised by Blender, but the under-the-hood CAD definition is there.

The geometry processing layer is done by IfcOpenShell, which is a layer on top of OpenCASCADE (but in the future, may make more use of CGAL or its own custom geometry processing code).

That said modeling buildings are typically simpler than manufacturing CAD modeling. Buildings have forgiving construction tolerances, and are often assemblages of off-the-shelf products where it is not necessary to redefine the exact product shapes. (i.e. place a packer here, place a sprinkler there, whether the sprinkler looks like a sprinkler or is geometrically just a cube in my model makes little difference to construction or maintenance operations).


Is there a good way to work with bulid123d (or cadquery) parametric CAD with Python and Blender as a CAD? All three are built with OCC OpenCASCADE.

IFC: Industry Foundation Classes: https://en.wikipedia.org/wiki/Industry_Foundation_Classes

BIM: Building Information Modeling: https://en.wikipedia.org/wiki/Building_information_modeling


I'm not currently aware of any integration, but since it is based on OpenCASCADE, there may be certain shapes that "just work" with IFC. This is similar to how FreeCAD uses IfcOpenShell to directly serialise some FreeCAD shapes into IFC geometry.


In my experience, it isn't really very good at it. I've moved to OpenSCAD for cad work, and am very happy with its design philosophy (if not its user experience)


Rendering the triangle meshes and polygon meshes is actually a ’nice to have’ tip of the iceberg in CAD/CAM/BIM flows and Blender doesn’t really help in the domain problem as such.

In general design workflows feed data to downstream consumers. Two top ’consume’ pipelines are around drawings and CNC machine control (STEP).

Rendering everything nicely is something that is nice to have but does not help in the design process, and for project coordination you probably want an online shared project view (e.g. Trimble Connect and many others).

As a private consumer it’s ofc nice to have a free too to use to tap into industrial data flows but it does not really help you in integrating into them (at least yet, but I might be wrong - data is just data).


I never claimed that Blender was at the level of more focused CAD/CAM and other specialized tool.

I also never claimed that rendering was the only thing you'd ever want to do downstream of building a CAD model. There is a ton of things other than rendering you might want to do with a 3D model initially produced in a cutting-edge CAD package, none of which are possible in the package itself.

On the other hand, if you've ever tried to import - say - an animation or a blob-based model in something like Fusion 360 or Catia ... the whole thing is simply laughable.

Whereas Blender can gobble up pretty much anything that looks like 3D data and give you a huge list of tools to manipulate, edit, display, and change it. No other tools, proprietary or OSS can get anywhere near it in terms of generality.

The fact that Blender, and everything it can do even for a straight CAD-to-manufacturing pipeline is not on your radar doesn't mean it doesn't exist or make it less interesting.


I still think that it would have been better if BIM had not been created in opposition to STEP.


> ... "on the path to becoming the standard platform for everything 3D."

For a great many purposes it's already there, and for what little that Blender isn't capable of in that space, there's always things like the Godot Engine, which happens to be a rather Blender-friendly game engine. If I remember correctly, there's a couple few other open source game engines that also go out of their way to support Blender as a part of the workflow, but Godot is the one I'm currently learning / somewhat familiar with.


Took me some minutes to find out: BIM is Building Information Model. EDIT: "building" as in "houses".


The one case where simply deciphering the acronym doesn't help much. Let's say: "for viewing and editing files describing architectural objects and building interiors".


Let me try to explain it in a way that the acronym does make sense. For ages people have exchanged information about buildings in 2d and non-semantic line drawings with only an implicit symbolic meaning.

In BIM, a building (or any construction work really, bridges/tunnels/...) is described as a set of components with explicit information (the I), for example: this is a wall with fire rating XYZ. The geometry/representation is only one aspect of that wall. This information is exchanged using actual data models (the M) - hopefully using IFC (another acronym, less meaningful this time), which is the open and vendor neutral standard to encode such building models.

There's a lot of disciplines (architects, structural engineers, heating and ventilation, city planners and municipalities, planners, builders, owners, tenants). Also, building have a long lifetime, that extends way beyond the typical maintenance period of proprietary software. And the sector has a massive impact on our well being as well as environmental goals.

Encoding this information in a semantic and computer-interpretable has enabled better ways of working together, but there's still much potential and many interesting challenges (come join us!) ahead of us to make a better built environment a reality!


Speaking as an architect who uses other BIM software than this ‘at the coal face’, I wanted to add a bit more of a real world example onto your explanation. BIM is a system which is meant to make the notes (semantic information) that are added to the industry standard diagrams (plans, sections and elevations)[0] stay pointed at the right thing with the right information in them. It also auto generates many of the lists of components that we use.

It makes some things easier; a quick video call to the engineer with a screen share of a 3d model to ask about something makes it much easier to talk about and resolve issues. It makes other things harder; generating the industry standard diagrams that we all use to analyse information is slower than just drawing them in 2d. You get 80% of the way there a lot faster but then you have to deal with all the situations that the software designers didn’t anticipate when they designed the wall, slab, roof, door and window tools and often the only way to do this is to drop objects back to ‘dumb’ geometry and rework them. You then have to go back to manually labelling them in the 2d 'diagrams' or trying to figure out how to tag them semantically with a specially generated tag so that they show up correctly in the auto generated schedules and notes. I personally find the BIM way of working more stressful as you never know when you are going to get caught out by a software glitch that halts your production, it is a lot more unpredictable than brainlessly slogging through drawing a bunch of 2d drawings. I think these are the challenges you are referring to.

So lets say I'm writing a 'Door schedule', a list of all the doors on the project, when I started my career you would go through a project with the paper plans and type up a list in excel with all the specifications manually, now when you place a door object it is tagged with various information which you can query to auto generate this list of doors. However, the doors will have been placed in the BIM model quite early on in the process when we were just thinking about where the doors needed to be and which way they opened. We were not thinking about which manufacturer they were from, what the finishes and hardware are going to be and fire ratings etc at that stage. So to get this list to autogenerate correctly you have to go back to each door and locate the correct fields from among hundreds of others in a clunky data entry interface to enter this information to get it to query correctly and show up in your list of doors. It is database data entry consistency problem. The list of all the doors shows up instantly; 2 mins work to get a list with all this detailed information set up. 2 hours later, I've managed to figure out the tagging system to get it to list the last weird edge case on door D25. I could have typed the whole thing faster in excel, but now that the information is there, it is tagged to that door and as long as no-one duplicates it and moves it to another location the door schedule will still be correct... So every time you re-issue this schedule, you still need to go through it door by door and check against the plan to see what its specification needs to be and check if it is still correct. You can't trust the automatic door schedule to be correct in case somebody with ADHD (a lot of architects including me) forgot to check and edit all the semantic information after they made the visual change they wanted.

Separating the process of adding written information to the drawing from the process of drawing the thing has always been a problem with CAD but with BIM it is even worse because there is a greater disconnect. In my experience BIM reduces problems with geometry not being correctly thought out and things not fitting together but it increases problems with mislabelled information because there is a greater mental distance between the thing you edit and where the information eventually ends up being presented.

I'm a software minded person I have a >20k LOC python BIM customisation project I've written myself and I've coded some embedded C in the past but I struggle to get the semantic tagging to work efficiently; it is much slower than just going to the 2d output drawing and adding a dumb note. I've coded my own BIM door and window objects for my CAD package to try and streamlines this and when I can use them they way I want to it works great, but I do find myself going back and coding more features on pretty much every project I work on to allow for a situation I hadn't anticipated when I first wrote the code.

It also raises an ethical issue if you are billing hourly because how many hours of troubleshooting your own BIM software can you reasonably bill for?

BIM has the same issues as other areas where bureaucracy has been computerised into a rigid process; it is very poor at edge cases and buildings are full of these. CAD software really needs a huge investment in deep interaction design psychology and research to resolve these issues.

[0]These are never going away because the are a very efficient abstraction to use for analysis and they need a clear presentation to be readable; you wouldn't ask an electrical engineer to give up circuit diagrams in favour of a 3d model.


> You can't trust the automatic door schedule to be correct in case somebody with ADHD (a lot of architects including me) forgot to check and edit all the semantic information after they made the visual change they wanted.

Would it be useful if elements contained some kind of "confirm date" field as well as "create date" field (create date would be the time it got pasted) and likely "last modified" on objects? Or would it be unreliable due to them e.g. not really taking surrounding changes in account?


Yes and no. A full revision control system would be handy but would probably have the same issues with commit comments as in software. It could help filter stuff that has been touched but the software needs to be very intelligent about marking something as actually changed. E.g. If everything is parametrically linked should it get touched by a change? and its last modified date should bump? The visual diff could highlight a whole lot of non-relevant stuff as changed.

To your other question, yes it is possible to require a change in the specification of a door because the layout has changed elsewhere, e.g. it might need to become a 1hr fire door with a door closer because the layout of a corridor changed elsewhere and it now forms part of the protected escape route.

Solving this problem is complicated. You can't link the fire resistance of the door to the wall it is in though as it is common practice to specify 30min fire doors even where they are not needed as it is a good way to get a better quality generic heavy door without specifying a particular make and model so this parameter will be commonly overridden for reasons that are not 'semantically logical' but are eminently practical in the real world. Also the two are not necessarily related anyway because a wall might have different requirements driving its specification.

Modelling the voids not the things that contain them is one way to look at the problem. It might be possible to place a sort of virtual smoke bomb object in the corridor that will try to fill the space with virtual smoke and anything that 'smoke' touches needs to have say 30mins fire resistance. However this is complicated because in my jurisdiction you can have different fire resistances required for walls, doors and ceilings forming compartments... So your smoke bomb object would need to know if it was interacting with a door, a wall, a compartment ceiling or a false ceiling and determine wether to alert that something is wrong or pass through it as if it's not there... That is assuming that the space has been modelled tightly enough in the first place to ensure that the 'smoke' doesn't leak out.

Another example of this problem of semantics is reinforced concrete structures because you can make any shape you want out of concrete it might be a wall to one thing and a part of a foundation structure to another and part of a column structure at the same time. Semantically it is one piece of concrete but it is also all three of those other things for the purposes of modelling the structure. This is a tricky problem for software to solve because you usually model those elements individually but when you generate drawings they should all show up as one homogenous lump. What tends to happen is the software sometimes fails to merge things together and you end up troubleshooting a bunch of spurious lines all over your Plans Sections and Elevations.


This seems like a textbook case where AI could let you have your cake and eat it too. Eg work in the easy 2d domain with maybe unstructured sticky notes. have a deterministic pipeline from 2d to geometric checking, with I guess patch points for the manual stuff. and then have AI draw up and maintain the BIM. It seems tailor made to copilot those adhd tasks you describe.


I think many people are exhausted (at least I am) with the idea of bolting AI onto every technology, product, and service in existence to end all of humanity's problems. It won't work like that.


Like clippy for fire doors. "I've noticed you have moved this into a corridor where all the other doors have 1hr rating is the 30min rating on this door correct" Would be amazing but sounds a but too much from what we can expect from AI at the moment; we would start to rely on it and it would have to be 99.999% correct.


BIM is a well known acronym in the building&construction market where this plugin is intended to be used.


The fun thing about BlenderBIM is that it's IFC-native. (IFC is the 'Industrial Foundation Classes' - a data model/structure for modeling buildings and the components, systems, and intangibles like construction schedules.)

BlenderBIM is internally managing everything with the IfcOpenShell library - all of the data uses the Python interfaces of IfcOpenShell (which internally has a lot of C) to keep the model state. Blender is more a rendering backend and nice UI to manipulate the state of the IFC model with IfcOpenShell - but basically everything you can do with the Blender GUI you can pop open a shell and just type in Python and do the same thing.

This means you'll occasionally see some Blender things that don't do what you expect to the model you're editing - there are ways to have Blender do state modifications that don't all get translated to the IFC data underneath, so sometimes doing things like selections or modifiers are surprising for Blender users. (I think over time the list of things that are like this has gotten a lot smaller, and BlenderBIM is now pretty good about keeping the state of what's displayed in Blender in sync with what the underlying IFC model is storing)

The main commercial player in this space is Autodesk Revit. There is a lot of thinking that perhaps Revit has reached a point as a platform where Autodesk can't keep building on it (i.e. it has so much tech debt that it's getting hopeless) - see https://letters-to-autodesk.com/ Autodesk has a number of other 3D modeling software packages and I sometimes think that for their next generation of Revit they should consider the BlenderBIM approach and maybe build on top of Maya or one of their other offerings.


Has anything actually been moving in this space? From what I recall Autodesk had the US market bottled up, and IFC was really only being adopted in the EU.


Very interested in this sort of thing to create a "digital twin" of my home for various purposes (home automation visualisation, overlaying security camera feeds on "real" geometry (e.g. show camera feeds as textures on my house's garden etc in 3D view), trying out some remodelling ideas on VR etc

Has anyone tried anything like this and has some advice?


Matterport is the industry standard for real estate walkthroughs, but it’s not cheap.

On the other end of the spectrum, and possible the easiest way to get something up and running, is the web version of SweetHome3D [1]. It is rough in some places and somewhat limited, but it has been around for ever, and still has a lot of potential. It’s also available as an add-on for HomeAssistant.

[1] https://www.sweethome3d.com/


> Matterport is the industry standard for real estate walkthroughs, but it’s not cheap

The hardware is not cheap, but if you have a (friendly) realtor in the area they might be able to let you scan it for a resonable price. Or a dedicated scanning company if you have those in your area.

Worked at a company who had these for doing scans of offices, and you could get the scan in different standard file formats for not a huge price (iirc).

https://support.matterport.com/s/article/Matterport-Assets-Y...


Seconding the plug for sh3d. And the source is relatively accessible if you want to make modifications---I patch my personal copy to allow zero-height walls and floors which can make doing more complicated geometry easier.


I continue to use SketchUp for that, as is the closest thing to CAD I can quickly work in without needing to spend a month in training first.


This is very cool. So people don’t have to buy an autodesk product to view these types of plans.

Been trying to figure out the best way to document the structure of my home. I think Blender + this add on looks like a great start.

I suspect there will be a massive learning curve though.


There's some great resources online, such as https://www.youtube.com/@IfcArchitect


> So people don’t have to buy an autodesk product to view these types of plans.

Can Autodesk products still be bought these days ?

I thought they had switched to full-on leech mode (subscription).


slightly off topic: What happened to Blender Apps? There seems to be a lot of potential for apps like this one.

https://code.blender.org/2022/11/blender-apps/


What's the point of creating such toy 3D programs? Blender already has huge amount of free training material, any serious development effort would want to integrate with its UI, rather than strip it away.


I'd imagine those programs would have a very different aim than Blender itself.

I'm thinking of scientifc simulation tools, which would benefit from interactive 3D graphics. Coding that with a traditional game engine is a no-go for researchers.


Blender Apps are on the medium to long term plans for the Blender foundation (i.e. planned on roadmap but not currently under active development). The Blender team currently have a lot of projects on and are resource bound so have prioritized focus on finishing developments such as Evee Next, GPU compositing etc before starting other projects such as Apps.

For more detail see: https://www.blender.org/development/projects-to-look-forward...


Happy to see the idea is not abandoned!


Blender is already being used for that purpose, it doesn't have a specific aim, and that is one of its strengths. The question remains: Why would you strip away and partially re-implement all the UI? You never know what your users might have needed that you took away.



If anyone wants to create an additional capability for modelling all the stuff with wires (power, comms, security etc) I can give you an exact spec how to do this, there is a little more to the detils than first apparent.

I don't really have the current ability, or time, to do it myself but for the right person a good spec could really head them off in the right direction.

How would I know? I just spent near two decades working with an in house tool developed for electrical/instrument modelling alone. I have seen some things that do work, some that don't and a bunch of details, over this time period as they developed and refined, and have a pretty good idea what would work.

Msg me if anyone is interested.


This would be very much appreciated. The best way to do this is to post on https://community.osarch.org/ with as much details as possible on a specification. You will also find other electrical engineers there who can provide feedback. It may also "not be the right time" (i.e. all the devs are busy tackling other issues) but sooner or later someone will look at it and find it a valuable resource to implement.


@pushmatrix on Twitter/X has some really interesting integrations between the Vision Pro and Blender.

Look at the real time modeling and Chores 2.0 posts examples. I imagine this would also be a good candidate for integration like that.


Is there a public repository of BIM files so that I can play around on potentially more complex buildings?



Related:

BIM and IFC – What are IFC models, and how do BIM and IFC relate?:

https://plannerly.com/bim-and-ifc-models/


I'm an architect, and I can't imagine using blender to design anything architectural. Purpose built architecture BIM software like Revit is just way better. Expensive, but better


This looks interesting! It might be a great companion for the BlenderDMX addon [1].

[1] https://blenderdmx.eu/


Might be best to disclose that you seem to be the lead developer of BlenderDMX ;-)


Correct, thanks, didn't realize it's better to mention. This is an open source project.


How?


BlenderDMX allows you to import a lighting rig and visualise what it will look like. BlenderBIM allows you to import a building and visualise what it will look like. Using both, you can visualise what a lighting rig would look like in a given building.


BlenderBIM doesn't "import a building" BIM is a method of detailing a house. You export it to something like IFC and then share it. For example if you do design in Blender, but the plumber uses Revit you use IFC to share between the two programs. The plumber adds the piping to the plan, and exports it for you and then you now have a all of the plumbing required.

You can then export it using BIM to a schedule which will say we need 45 90deg corners, 20 10" pipes, etc...


Sure it has lots of other uses. But if you get sent an IFC being able to see it in Blender even if you don't care about the schedule is very nice.


As a noob who doesn’t know what BIM stands for, one easy way to improve this website would be to expand the acronym above the fold. Yes, I’ll Google it.


It's not really for people who don't know what BIM means. Its the same as a bunch of techy stuff with techy terms, if you know the terms it is for you. If you don't just close the website and move on.


I would love to see this integrated with data from Home Assistant. Presumably would be difficult with MQTT.


Big believer in Blender becoming the default tool to design and build buildings this century.


ok - except more interesting buildings were built long before 3D models. I see repetitive and featureless buildings done with this software, for sure. Other than that, not certain at all..


Anybody know how this compares to the architecture workbench in FreeCAD?


See my related post [1]. The NativeIFC add on talks about BlenderBIM.

[1] https://news.ycombinator.com/item?id=39706564


Revit is not BIM and it’s terrible at it.


Since the article use TLAs and does not explain what it's about, I guess it's not for me.


Don't worry, if you don't know what BIM is, you don't need BIM and you should be thankful about your previous life choices. Weirdly, no one in BIM really seems to agree on what BIM actually is either.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: