Help getting my bearings with parametric modelling and inventory management with Blender Bim
I'm feeling really excited about how powerful Blender Bim is looking these days and have decided to really battle test it on a project I'm working on.
Parametric Modelling
One thing I'd love to pick the brains of the more experienced folk here on is how I might approach parametric modelling which will work well along side blender bim.
I'm new to parametric modelling in blender, but have experience doing this in Autocad, Fusion 360, and even Sketchup with dynamic components.
So for example, lets say I want to add a cabinet to my blender bim project.
But I'd like to be able to parametrically define the size, number of shelves etc and ideally generate a bill of materials, and cut list.
Is there any particular set of Blender native tools or add ons that can be used alongside Blender Bim to have one holistic project where everything is contained in the model?
I'm aware of the existence of:
- Geometry Nodes
- Sverchok
- CAD Sketcher
- And I'm wondering if anyone that has already explored similar ideas might be able to advise which of these it might be best to invest time ?
Inventory Management
Another thing I'm interested in is using Blender Bim to capture data about the inventory of a building.
So one use case might be data on the IT equipment stored on a site.
That IT equipment, like a server, might have different server components in it.
Eventually I'd like to get to a stage where I can monitor sensors / data coming from the equipment as well as the overall energy consumption of the building
Would it be feasible to track this within a blender project?
Any suggested concepts to read into would be much appreciated.
Comments
Paramteric modelling
Please poke a bit around the forum, there's been a lot of discussion about this:
https://community.osarch.org/discussion/793/blenderbim-parametric-based-ifc-types-doors-windows-etc
https://community.osarch.org/discussion/1192/ifctype-furnishing-set-for-plan
https://community.osarch.org/discussion/1614/is-this-how-you-create-a-parametric-railing
https://community.osarch.org/discussion/732/import-profile-assets-into-blenderbim
https://community.osarch.org/discussion/1244/sverchok-update-on-development-of-ifcsverchok-nodes-gsoc-2022
especially the first link contains a lot of nice discussion.
To sum it up:
Inventory management
I think you need to be more concrete. What should be the result? Ifc is really just a database, you can store any data there.
Thanks for the links. They were helpful, although I think I need to read through them a few times as I get more familiar with both Blender and Blender Bim.
Why would it be considered extreme to convert from sverchok to ifc?
Have you read this discussion? It deals with similar problems.
https://community.osarch.org/discussion/1705/blender-objects-w-modifiers-or-sverchok-to-blenderbim#latest
If you know and mainly use sverchok for your (parametric) work, it would not.
What I meant is, using it as a workaround for the problem that BlenderBim does not, and in reality can not, be compatible with all the possible workflows inside Blender. And in that case you can always channel all your resulting geometry to sverchok and have it automatically converted to ifc.
Gotcha.
I'm still early into my Blender journey. I haven't touched Sverchok yet, but have gotten quite familiar with Geometry Nodes.
I imagine this may become apparent as I continue to learn, but there seems to be more momentum behind Sverchok use than Geometry Nodes in Blender Bim workflows and I'm wondering what the reasons are for that.
Sverchok is much older. Geometry nodes were not even a thing when BlenderBIM started, so people like me coming from grasshopper learned sverchok and developed sverchok workflows.
Plus writing custom nodes in sverchok is apparently more straightforward than writing custom geometry nodes.
Does Sverchok need to exist separate from GeoNodes or can its nodes be used in the GeoNodes environment?
AFAIK they are compatible only to the extent that they both produce mesh elements (vertices, edges, faces), and they can attach custom attributes to said geometry, but I don't think they are inter-operable in the way you are thinking. I think you can produce geometry in GN, then modify it in Sverchok, or the other way around, but they cannot call operations from each other.
They are fundamentally different.
Sverchok is written in python and easily expanded with custom nodes, it has even a scripted node directly linked to blender text editor
Geometry nodes are a part of blender, are written in c++ and there's currently no easy way of shipping custom nodes. Apparently you'd have to make a custom blender build.
https://blenderartists.org/t/developing-custom-geometry-nodes-for-beginners-blender-3-5/1461761
Meaning sverchok has far wider range of functions and is used as ui for other projects like topologic or ladybug.
In contrast geometry nodes are far better integrated and efficient, have no wip nodes and better documentation.
As Gorgious said, both can input and output blender geometry, so you could combine them.
@JanF @Moult , I am trying to use array of IFC using Blender Bim sverchok Addon. The update from Sverchok is not rendering SVG. how these works and how to achieve these results?





Are you sure you've hit the update data button? It should rewrite the geometry in the body representation.
(Which is probably not what you want, the function is here to define geometry of a single object, you will find arrays under BlenderBIM parametric functions)
Yeah, I tried update geometry. The Array function in Blender Bim parametric was linear methos, I can't manipulate array geometry using curves. I found another way of doing it. I construed an array using Sverchok and converted those geometries to Ifc using Ifc-Sverchok addon. But now I need to solve how to append a 2d view to the mesh using sverchok nodes.
Here every instance of mesh was converted to a Ifc element and write to an Ifc file. But I don't know to add 2d representation to body plan view using the nodes.
From the previous method the update done its job. but the array instances not shown in plan render.
I think the problem is the same in both cases, you only create a body representation which doesn't show correctly in plan. You can simply create a second, plan representation and link them both to create entity node.
Yeah. I figured it, but the linking of both is not working using sverchok nodes.
Try joining the lists a different way, as I remember it has to be a list with two representation elements.
The representation hierarchy is bit confusing. I think all are in a list. I unwrap flattern list of both entities and joining those two into a single list entity and write a file. It creates two different elements.
@JanF @Moult Can you give me any idea how to combine these two into same Ifc entity.
@JanF > @JanF said:
Thanks @JanF.
Now moving to Annotation part.
>

@JanF The nodes working fine until
we add a edge mesh with like this is not working the written ifc file doesn't have any annotation to it but an empty mesh was produced. The Blender mesh to representation only take single input, while Ifcsverchok to representation take multiple inputs, but it's not working. I am adding a blender file and ifc file which created by the sverchoke nodes here.
** please remove the extensionm .txt and add .blend and .ifc to those files named accordingly
Did you read the readme and test the examples?
https://github.com/mdjska/IfcOpenShell/tree/v0.7.0/src/ifcsverchok#saving-the-model
It definitely worked for me, but that's more than a year ago, it's possible something got changed since then
yes. I read and saw his nodes. From there, I came across Ifc-Sverchok addon. No commits have done in the Ifc sverchok. he clearly explains how blender mesh to representation works. that creates a single entity per loose geometry.




I don't know how to create a loose curve geometry to annotation representation. ** If I do the same manually the annotation takes a 2d curve as representation.
I am searching for discussion or some other works. I and also found if I merge the vertices between two circle it won't a loose geometry anymore but a tessellation in a 2d form**. It works. But it would be another way by transforming matrix and join curves to represent in nodes.
@JanF Thank you. If I found a way I will update. If you found any, please mention it. @theoryshaw Is their a way to run a script between these nodes?
@Erindale Does Ifc Sverchok nodes takes 2d curves as inputs. By reading the git repo - it says representations in form of sverchoknode out. I did a resample curve node and apply matrix. It doesn't work. It also creates three entities.
Sorry, I'm not exactly sure what you are trying to achieve, or what the problem is. See if this helps:
https://github.com/JanFilipec/Sverchok-Tutorials/tree/main/IfcSverchok
****> @JanF said:
Now I get it, I will follow these. I try to use curves as inputs. Thats causing a problem. I debug the input nodes. It accepts any Sverchok node outputs but not a loose geometry. If a loose geometry was given as input the representation process took loose geometry as individual representations. I never thought of giving a mesh to represent a 2d, but a 2d curve to represent 2d forms.
In the example files you posted here in the repo uses mesh. Thanks For the time for educating.