Sverchok IFC Nodes create IfcWall

So did anyone try to actually build ifc files with the sverchok nodes? What am I missing? I'm simply trying to create a wall using the sverchok nodes only. I have two problems:

  • I can't get the ifc Create Entity node to build a list of IfcIndexedPolygonalFaces so that I could feed it to the IfcPolygonalFaceSet. I only get the first polygon from the list
  • The created ifc is not valid
  • Also the elements are written several times to the file
    Thanks
«1

Comments

  • IfcSverchok is very, very incomplete. More reading: https://github.com/IfcOpenShell/IfcOpenShell/issues/1479 - Would you like to help take it forward? :)

  • Sure, but the discussion on github is not exactly motivating :D I mean I have some experience with nodes (mostly grasshopper) but I certainly would not call myself an expert.
    Given the pace of development of IfcOpenShell I think the autogenerated nodes as a foundation are the only option, if that would reliably work, we could easily build some higher level nodes on top for normal users. But I honestly have no idea where to start with something like that.

  • edited June 2021

    I am currently trying to learn Blender/BlenderBIM and Sverchok. I come from Grasshopper background so would be happy join in on this initiative and help out in some way.

    CGR
  • @JanF and @kaiaurelienzh great! Have either of you used GeometryGym's IFC nodes? If you get familiar with it and are able to demonstrate how to use it to me, I can replicate that behaviour in Sverchok.

  • I know of GeometryGym but have never used their nodes before, will take some further research. I think it's proprietary so would need to fork out a licence?

  • Well, ping @geometrygym - what are your thoughts on a Sverchok port?

  • Our grasshopper nodes are presently hand crafted. Most are constructors, so if an automated creation of the nodes can be developed the benefits would be significant. Certainly it's on our roadmap to automate a lot more of our grasshopper plugin for future versions. But raw constructors with every attribute visible will make it harder on users.
    There's also other considerations of a graph based generation of IFC. Are objects immutable (How do you manage model manipulation (not just creation)? Is the model created top down or bottom up? These and other aspects have been barriers relating to a development of a geometry gym port to other environments such as Dynamo.
    We do charge users for our Grasshopper developments, although I believe the biggest benefit is the technical support.
    As a small standalone business, Geometry Gym has no resources to donate to a Sverchok port at this point in time.

    aothms
  • 100% agree that automated node creation is the way to go. Also agree that raw constructors will lead to poor usability.

    I think most model manipulation can "just work" if we use the IfcOpenShell API, since this is already increasingly battle tested in a native authoring environment.

    I'll find some time and add creating a prototype to the todo list. @JanF and @kaiaurelienzh do either of you code or would like to contribute codewise?

    kaiaurelienzhJesusbillbitacovirvictorklixto
  • @Moult yes I am a coder, in Python + C#. Happy to contribute.

    bitacovirvictorklixto
  • I'm a bit skeptical about the usability of nodes on complex structures in real world situations.

    basweinagonzalezestevechuongpqvnVDobranov
  • @stephen_l After spaghetti code we now have spaghetti node :)

    carlopavJanFMoultLaurensJNArEhsanCtobenz
  • Great @kaiaurelienzh let's organise a session to build an API node together, and see how far we can get. I'm in the Sydney timezone. What time/date works well for you? I'd prefer between 8am and 10pm Sydney time.

    @stephen_l I quite regularly see nodes as complex as that screenshot, and even more complex, used to deliver large commercial projects. Some authors secretly take pride in how many nodes it takes :D

    kaiaurelienzh
  • @stephen_l i don't think it is very different from normal programming, in more complex projects you simply have to divide it into smaller blocks (but you're right, as far as I know sverchok lacks grasshopper's ability to group nodes into higher level nodes right now)

  • @JanF yes you can group sverchok nodes into a custom node and choose which parameters to expose.

    MoultJanF
  • @Moult Sounds good, I'm from Melbourne so same timezone as you. I'd prefer Saturday morning if that's okay? Say, 11am or so? But I am flexible.
    @stephen_l agree that spaghetti is far from ideal and the goal would be to use code instead of nodes to generate building systems. However, commercial and complex projects are regularly delivered in practice every day using visual programming in AEC.

  • @kaiaurelienzh great! How about 11am 3rd of July?

    kaiaurelienzh
  • @Moult works for me. See you then.

    Moult
  • Just an update that from our meeting this morning we discovered (and subsequently fixed) two bugs this and that.

    We've agreed that a good approach would be to write an intelligent API node which detects API calls and inputs and outputs from standardised API documentation. Later on, this API node can be wrapped in further higher level nodes which have sensible defaults. This approach is similar to how Ladybug works which is tried and proven and is node-system agnostic. In the future, if we follow this approach, we can potentially even reuse the nodes within FreeCAD! Ping @yorik . At the same time, standardised API docs give us... documentation! Win-win!

    So, steps forward:

    1. Organise a time to meet again
    2. Start writing standard documentations like docstrings for API usecases
    3. Write a doc -> JSON parser.
    4. Write a node that parses the JSON and generates inputs and output node sockets.
    5. Start testing and standardising data types.
    kaiaurelienzhJesusbillbitacovirtheoryshawJanFaothmsvictorklixto
  • @kaiaurelienzh if you don't mind, it would be great if you could lead this project. I'll leave it to you to organise regular meeting times and push forward for coding :)

    kaiaurelienzhJesusbill
  • I don't have much free time but I will be happy to follow the meetings when I can and help, at least writing the docs for the structural part for example. It's good following this development on Visual Programming

    kaiaurelienzh
  • No worries @Moult , I'm happy to drive this project best I can. I've forked IfcOpenShell repo which has the Ifc nodes but having trouble installing the local repo to my Blender so I can start writing code and debugging. Is there documentation or references out there for me to take a look at?

    victorklixto
  • edited July 2021

    This should help:

    Any contributions to the (very new, but growing) docs are very welcome! Especially the mklink instructions for Windows.

    kaiaurelienzh
  • edited July 2021

    Thanks Dion, I've linked the folder to my blender installation and made a pull request for edits I've made to the documentation. Mklink has a slightly different syntax which tripped me up at first.

    However, ifcsverchok doesn't seem to be popping up in my addons for Blender despite restarting etc. Any further troubleshooting I can do?

  • That sounds odd. No errors in the console? Your screenshot looks OK, and I assume it's a link. Feel free to drop by the chatroom if you're online.

  • edited July 2021

    @Moult My environment is set up and I've created my own test node on a branch to confirm it all works. I'm ready to start properly coding now. Would you be available sometime over the next few weeks for another session and get started on the API node together? I'll try and block off some more time so we can dive deeper this time around.

    Jesusbillvictorklixto
  • @kaiaurelienzh awesome! I'm pretty much available anytime, so give me a time and day, and let's meet at https://meet.jit.si/openbim :) Everyone is free to join in as well if they want!

    victorklixtoJesusbill
  • @Moult said:
    @kaiaurelienzh awesome! I'm pretty much available anytime, so give me a time and day, and let's meet at https://meet.jit.si/openbim :) Everyone is free to join in as well if they want!

    @kaiaurelienzh and @Moult, I am happy to collaborate with this project as well.

  • Sorry I've been inactive on this front for a while - perhaps @victorklixto you could meet up independently with @kaiaurelienzh and see if you could help debug some of the code issues?

    victorklixto
  • @Moult said:
    Sorry I've been inactive on this front for a while - perhaps @victorklixto you could meet up independently with @kaiaurelienzh and see if you could help debug some of the code issues?

    No worries! That is great I will contact @kaiaurelienzh to see where and how I can help with it.

    kaiaurelienzh
  • What is your time zone Victor? We could setup a meeting that suits the both of us. Cheers.

    victorklixto
Sign In or Register to comment.