What about showing the drawings in Blender's 3D space ?
I realize I'm opening a new can of worms. The live visualisation of plans in Bonsai / Blender using the camera view is great, but it (personally) begged the question of looking for something more permanent and integrated into Blender.
I personally don't use inkscape / CSS and pretty much 100% of my clients expect DXF/ DWG so I'd like to have some form of WYSIWYG inside Blender, in the end if I could totally replace using Autocad & co I would be most happy. Setting up the 3D world as a canvas directly related to the model would be nice. Maybe using different scenes for different layouts, etc.
I'd like to know if that is something anyone would be interested in.
Something like that.
Cheers
Comments
I 100% agree, that would be awesome. In Revit or Archicad even to model I often need a section or plan beside the 3d
Blender 4.3 (just released) has geometry nodes; curve to grease pencil & grease pencil to curve, I wonder if that provides any new work-flow possibilities?
I would love this sooo much! For MEP I need geometry nodes. I do still need to export my models to IFC, so some form of 'IFC Classification' (like Revit's IFCSaveAs) is needed for me.
I also need to be able to 'tag' objects with a Leader and Text linked to the value of some Custom Properties (MeasureItArch can do this but I find it's method of dimensioning too gawky to use).
Here's a close method - but it doesn't work for buildings since it would be a bad idea to have Instances of large models. https://blenderartists.org/t/tutorial-2d-cad-drawings-with-blender/1550767
God I hate workflows like this 😀 model space is model space, what if you need to add a road later? You move all your drawings around? Not to mention larger projects with multiple sections that are not perpendicular to each other.
If you absolutely must have drawings included in your model, than only exactly there where the cut goes through the model.
Yes, WYSIWYG is important, as well as working in 2d sections/elevations on the 3d model. But please not like this.
I use crop region for temporary sections and Bonsai sections/plans let you also edit 3d model in section/plan view.
@JanF hehe very fair points, thank you for sharing it. I think we could have best of both worlds with collection instancing or object data linking. The exact position of the drawing could be dealt with by the projector. or manipulated with a single point transform. You also may use regular Autocad style modelspace / paperspace if needed with different scenes or different view layers inside a scene.
I have been asked for this exact configuration by some architects where they want to have the cuts and elevations in a UCS so the lines are exactly projected from the model geometry.
Cheers
Actually that was very valuable feedback @JanF . It has made me rethink the way I've set it up. I agree that mixing plans and 3D models in the same space is prone to errors and headaches, even though it makes intuitive sense at least for me. I still think it has its uses but not as an actual workspace, more like a showcase of the entire project. After years of using Autocad I think Blender has the means to be a very capable CAD sotfware. The only thing it isn't good with in relation to Autocad is georeferencing and very high coordinates, which can be taken care of by 3rd party addons (and Bonsai). I've evaluated wether scenes or view layers are best suited and I don't think view layers are it. I think for now the best course of actions is :
Of course the scene manager list interface and limited items availability will be a problem with this workflow so I must design a way to make it more appealing and easy to navigate.
Cheers
This looks amazing....When it comes to the annotations, will you be able to do it in a similar way to the Dims and Lines addon?
This allows the user to click two (or three) points for creating the dimensions etc. This is more intuitive than what a lot of the Geo Nodes addons are doing (manually moving the dims etc onto the points to be measured etc.).
Using scenes for drawings and sheet layout seems exciting.

I like the idea of having multiple drawings 'open' at the same time.
It seems too, this would also do away with the lost time it takes switching from drawing to drawing.
...
Also I have an intuitive sense that 'Ray Portal BSDF' could be harnessed, somehow, toward this end as well.
@Bedson I think after testing a few solutions that annotating in 3D is more of a gadget than a real useful tool for drawing designers. What would be really useful is automatic creation of dimensions depending on parameters on the model. eg put a dimension break every time the dimension line crosses a cut wall line, but don't put it if it crosses a furniture line, etc. But this needs very careful consideration since this can easily be broken. I remember Archipack having implemented something really nice for auto-annotating. I'll have to revisit it. All in all the goal of exploding everything into sub-scenes or sub-containers is to let users use whatever tool they like best since there is no reason any addon or tool wouldn't be supported down the line. But personally I'm not going to pursue 3D annotating since it has no practical use for me. I'd much rather annotate a 2D drawing than a 3D model if I can.
@theoryshaw hehe yup this opens up a lot of possibilités, although I think the mental gymnastics it forces the user to go through will limit it to the power users. I think a well placed camera in the 3D world can do most of what the portal node does in the context of drawing generation. You "just" need to setup the backend scripts to manipulate the texture data.
Cheers
I was also very excited when I found out about the scenes function in blender for the same reasons as you guys. Multiple model spaces would be also great and I have no idea why neither Revit nor Archicad have them.
But, as you already found out, blender ui is limited. And if you really want to develop a professional BIM application (as is currently the idea of Bonsai), you just can't keep on looking for workarounds and ways to bend Blender for every single function (also you have to keep a lot of Blender specific data in your ifc which sucks). That's why there's more development in the web ui direction (see https://community.osarch.org/discussion/26/bonsai-new-release/p13#Comment_21943) Adding WYSIWYG preview for plans should be very easy in a web view because svg.
Or stream a browser in-world. :)
https://community.osarch.org/discussion/comment/22171/#Comment_22171
Unlikely, as this only works with the Cycles renderer thus far (4.4 alpha). Because of the way it works, it might not even be possible to get it working in EEVEE.
Ha! Time to stop lamenting about it and get it finally done 😁
It's less about
lamenting
and more aboutwonderment
andbrainstorming
. :)Had an interesting chat, for what it's worth: https://chatgpt.com/share/6779fa96-21d4-8013-9611-1b1e4711b3fc
Hehe interesting indeed. All the points do make sense even if a bit too verbose, chatGPT gonna chatGPT ^^ The actual implementation actually doesn't matter too much IMO, I don't think the performance should be too much of a concern, usually there are way more concerning bottlenecks you hit before you hit the limits of what Blender can handle, be it View layers or Scenes.
For now my principal problem is that objects in different scenes don't really communicate with each other, even if they can reference each other. So as hinted in the conversation it can get weird when you want to make sure that something in another scene is where it should be for instance. Another big problem which is more deeply rooted in the design of Blender is that most of the systems, especially add-ons are designed to work well with a single scene. But nothing that can't be solved with some lines of code :)
Hi @Gorgious , I'm just wondering if you have been able to progress your idea of having separate scenes with sections and annotations etc - away from the main model? It looks like exactly what I want to do in order to use Blender instead of Revit, but I am struggling to nail the workflow...do you have any tips/hints/observations?
@Bedson Indeed, I have made progress, I'm slowly building something up over the course of my projects. Works quite well for small scale projects but I run into performance issues once the scope ramps up, not to mention file sizes exploding, which is bad when working / saving on a server.
Not using Bonsai's native drawing generation (yet) because of some features I absolutely need eg https://github.com/IfcOpenShell/IfcOpenShell/issues/3668
I don't think this (mixing model space with paper space both spatially and conceptually) is a good idea. I know Blender has scenes and view layers and tricks that other add-ons use like autogenerating images, loading them in then using camera background or live textures or whatever but ... they are just tricks. There will come a point when it doesn't fool everybody. I recently saw a swarm of bugwishes come in about seeing the drawing as is in the viewport ... these are related issues.
Here's an alternative proposal: this is part of the reason we have the web UI integration, to start allowing new strategies. Might I advise instead that when a drawing is generated, it is viewed in the web UI, and that web UI has dedicated layouting and annotation tools. Because it's on the web, WYSIWYG for SVG and CSS. The trick to this is that the drawing generation will now have an additional responsibility: it will also generate a dataset of coordinates for "hotspots" and alignment lines. This means that you could then dimension in the browser and it will snap to object centerlines etc intelligently and filter to only what you see. You can do true multiline, not keep on worrying about local Z overlapping of annotation because Blender is inherently 3D, proper parsing of SVG symbols from your asset library. It'll also have a bit of back-and-forth intelligence (later on it can do partial drawing regeneration perhaps) similar to the current proof of concept of the web spreadsheet. You can also have as many drawings, sheets all next to one another.
Maybe I'm explaining it badly through text but hopefully it makes sense.
For the web interface maybe we can build on graphite, "a free, open source vector and raster graphics editor". It also opens in the browser; demo. Featuring a node editor it may be easier to maintain a connection to the 3D model. Here's a link to the roadmap and repo.
Graphite is licensed Apache 2.0 don't know if that's compatible with Bonsai.
You couldn't incorporate it's code into Bonsai. It would effectively be no different to using Inkscape as a called application. While it is still in Alpha, it is quite laggy feeling on the red dress demo on my system. Exporting that to SVG and opening in native Inkscape feels much snappier. I don't see the point of replacing one external app with another, slower, less complete one.
Unless Inkscape runs in your browser, the point would be using a web interface.
Well the point for me is to not run such a heavy application in a web browser. As a general rule it will not be nearly as performant as a native application. Maybe if they reach a 1.0 with a well rounded feature set, and can optimise it sufficiently, it would be worth considering. If Graphite is selected, it will require additional development, presumably in Rust to facilitate communication between Bonsai (Python/C++) and Graphite (Rust).
I also think that using Blender for this has a lot of shortcomings, like for instance styling lines and hatches, no WISIWYG. Another one is it heavily couples ifcopenshell / Bonsai with Blender's data structures and 3D algorithms where the philosophy is rather to build an agnostic structure and let multiple apps profit from it.
My take on it as of today FWIW is that I do need a solution right now to finish my ongoing and future projects projects so I have to make do with what I have, I can't have a solution that is not functional, even if it means a fair bit of manual tweaking in the later parts of the workflow. I can build the solution in Blender, on a web interface I do not know how. So I elected on doing it inside Blender, which also have a lot of pros, especially considering there is a fair bit of 3D/2D processing needed to create meaningful drawings. Although conceptually I don't think using scenes to isolate specific drawings or to put together drawings works that great, as you can't instance a scene in another scene, you can only instance collections into other scenes. Adds a little bit of complexity to the whole setup.
Also at least in my field, whether I like or not, DWG / DXF is the defacto deliverable data format my clients expect. So working on a web based interface with web based data formats means I'll have to add another translater to convert svg to dxf, and css styling to dxf styling which is not a huge deal but as anyone who has worked in the field knows, translation can't convey 100% of the source meaning to the target language, so I would lose a bit of information in the process, and I would miss some information that you get in dxf and doesn't exist in svg.
Another point is I think I don't really get the point to use a web interface instead of a standalone application. I think it's from lack of experience in the field. Is it to be OS agnostic ? Easier to build something from the ground up, and make changes to ?
Haha just fixed a long standing "bug" in my exporter that bloated the file size by 350%. My file went from 230 Mo to 65Mo. The culprit ? These 3 mesh custom properties.
PSA : DON'T copy heavy ifc meshes to a vanilla Blender object. If you do, delete these properties. :)
I still have about 50% to shave off, plain vanilla geometry on the same file is around 30 Mo. FWIW ifc file is a little bit over 2 Mo.
Cheers.