Help getting my bearings with parametric modelling and inventory management with Blender Bim

edited December 2023 in General

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

  • edited December 2023

    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:

    • infinite parametrization is not practical, there are good reasons why things are the way they are
    • most common objects are parametric in BBim: walls, slabs, columns, beams, doors, windows
    • for basic geometry types (extrusions) you can edit anything
    • furniture is managed through types, which can be generated from parametric definitions
    • in an extreme case, you can use anything in Blender and have the result dynamically converted to ifc with sverchok

    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.

    Coen
  • 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.

    in an extreme case, you can use anything in Blender and have the result dynamically converted to ifc with sverchok

    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

    @aaron said:
    Why would it be considered extreme to convert from sverchok to ifc?

    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.

  • 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.

    aaronBedson
  • Does Sverchok need to exist separate from GeoNodes or can its nodes be used in the GeoNodes environment?

  • edited January 8

    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.

    BedsonNigel
  • edited January 8

    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.

    GorgiousNigel
  • @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?




  • edited January 26

    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)

    ArLa
  • edited January 26

    @JanF said:
    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.

    Ace
  • 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.

    ArLa
  • 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.

    ArLa
  • @JanF said:
    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 said:
    Try joining the lists a different way, as I remember it has to be a list with two representation elements.

    @JanF @Moult Can you give me any idea how to combine these two into same Ifc entity.

  • @JanF > @JanF said:


    I flatten list consist of Level 1 (1,1.1) then connected to the representation. Now each entity comes under same geometry with different representation. to continue adding representation the geometry input can added into the node.


    Thanks @JanF.
    Now moving to Annotation part.

    JanFtheoryshaw
  • edited January 27

    @JanF said:

    >
    @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

    ArLa
  • edited January 27

    @JanF said:
    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

    ArLa
  • ****> @JanF said:

    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

    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.

Sign In or Register to comment.