BlenderBIM - Scene organisation

edited March 2021 in General

Hello,
I'm looking for some information on scene organisation when using the BlenderBIM Add-on and the preferred method.

This would just be used for organising the scene to control visibility of objects, design options etc.

Two approaches would be: -

  • Using Blender standard collections within the .ifc hierarchy which are ignored when the .ifc is exported, not sure if this is even possible?
  • The organisation of the scene is implicit with a correctly structured .ifc project hierarchy? How would this be achieved so there is easy scene management within Blender that is also reflected in the exported .ifc?
«1

Comments

  • As far as I know there is no good system for this right now. I've been doing some research on how this could be done using a combination of the ifcsearch function and blender hide - my idea is that you save groups of filters for phases for example (ifcwalls on, load bearing stuff off) and have a button going ifcsearch filter 1 - hide, ifcsearch filter 2 - hide and so on. This should be fairly trivial to implement.
    Do you think this would be enough?

    theoryshaw
  • Hi Jan,
    Sounds like a good approach. Could the filters be used across different classes? I guess there are two things at play; ease of scene management within Blender and setting model view definitions. For scene management I think it only needs to be granular enough to display required phases and design options. Could these be one and the same thing ?

  • edited March 2021

    What I am talking about is for Blender work only, do you mean Model View Definitions as defined by building smart? I think these are handled separately centrally by ifcopenshell and are only used for exchange, I don't know of any way to use them for work on a project.
    But for stuff like renovations, phases, options and so on these "visibility filters" should be universal. Do you think it would be enough to just use ifc properties or would we also need some additional internal parameters which would be Blender only?
    For

    • renovations the status property should basically be enough
    • design options I vaguely remember a discussion that there is no standard property, you'd have to create a custom one
    • project phases it would be a bit more complex, but mostly about annotations I think, zhis is mostly about graphics of things and that's a different topic
  • edited March 2021

    Initially I was just thinking scene organisation and management in Blender, but i find useful layer states (design options, floor finishes plan etc.,) often end up close to what MVD would be. For costing purposes would we not need a MVD for the various options so a QS could cost or a massing model for solar studies and energy analysis?

    Perhaps it's more a question of how layer states/filtered options are transferred into the ifc schema for distribution?

  • Yes, I'm also curious about how best to organize a scene to accommodate visibility, phasing, design options, etc, and properly reflect it in the IFC structure.
    Basically would be nice to import an IFC file, and be able to reconjure that structure in Blender.

  • edited March 2021

    I like the thought of potentially using IfcSpatialZone, too.
    "A spatial zone is a non-hierarchical and potentially overlapping decomposition of the project under some functional consideration. "

    Ace
  • I was testing the ifcsearch possibility today. Took a 1Gb ifc model of one of our renovation projects and tried different search queries for ifcproperties on it. It took Blender about a minute each time to select the elements, so unless the search engine is massively optimised, using it as I suggested is impractical.
    Also, I haven't figured out how to search multiple psets at once - if I want to select all LoadBearing elements, I have to go through pset_buildingelementcommon, pset_wallcommon, .. and so on and look for the property separately? (Regex works only on the searched term, but I guess just applying regex on the pset name would make the search time hit the roof anyway)

  • @JanF can you add a bugreport to remind me to add support for searching on property name, not just pset name? I've run into this issue too.

    There are no rules right now about scene organisation. You're free to do whatever you want. The import is simply a guideline. Over time, I believe some best practices will coalesce - but for now, I'm keeping options open.

  • Was this when testing the Pset fields? I couldn't get results using any of the Pset fields but was probably user error. Using a 250mb file and queries in IFC Class and GlobalId seemed to give results in a couple of seconds.

    @Moult Are the Presentation Layers fully functioning? I see there are some visibility controls within this palette but they don't seem to be functioning.

  • edited March 2021

    @Moult https://github.com/IfcOpenShell/IfcOpenShell/issues/1382

    @ChubbyQuark you have to specify the full Property set name and the Property Name. The searched term can be specified using regex, if you enable it.
    For example: Pset_WallCommon LoadBearing True
    As of https://github.com/IfcOpenShell/IfcOpenShell/pull/1106 the support for representation layers seems to be a work in progress.
    I tried it as well and I

    • can see imported layers
    • can see which layer an element belongs to and change it
    • can't add a new layer
    • can't toggle the visibility of a layer
    theoryshawAce
  • Thanks for the link. Will do do some more testing when I get a mo.

  • @ChubbyQuark the presentation layers isn't fully complete - I think I put the icons for visiblity and freezing, but forgot to program them :D

    @JanF you should be able to add new layers. Just realised you can't do this to a project which didn't already have layers. Whoops! https://github.com/IfcOpenShell/IfcOpenShell/commit/4564ee3476f9f707d0a905069d1966bbe4306cb9

    Jesusbill
  • Unfortunately IfcSpatialZone doesn't hold up on a roundtrip--at least the way I organized it, although I might be missing something.

    https://gitlab.com/osarch/FreeMVD_WorkFlow/-/tree/53e1e8814d80e0feefda653dd412aef37807ee5c/Random Tests/IfcSpatialZone/from_Blender


  • Did you get the spatial zone to import into an IFC viewer in the correct hierarchy? I imported your test .ifc into BIMVision and BIMcollab and couldn't see any reference to the zones?

  • No. I see it's in the exported IFC file, but there's no objects associated with it.

  • Just checked and spatial zones are non-hierarchical. I found a spatial zone will export and display, in some IFC viewers, if assigned geometry.
    I had assumed a spatial zone could contain building elements and used as a 'filter' but I'm not sure that is correct.
    Unfortunately that is where my knowledge ends without a lot more reading...

  • @ChubbyQuark you are correct, spatial zones are non-hierarchical. In other words, @theoryshaw you cannot simply organise them as another branch in your spatial container tree (which is hierarchical). They are therefore more similar to IfcGroup. So far, no functionality is built in the BlenderBIM Add-on to manage or view spatial zones. If you assign geometry, yes, it will export and display I suspect.

    If this is something you guys need relatively soon, please add it to the bugtracker so I can keep track :) So many things to do!

  • If this is something you guys need relatively soon, please add it to the bugtracker so I can keep track :)

    low priority, on my end.

  • Would be a medium priority for me. We produce many feasibilty models with optioneering subsets, so was exploring how to best mass spaces, zones and areas, with a view for comparison (just areas and volumes initially). Thinking then being to automatically tag elements that are contained within a zone or space as the projects progress. Really useful for producing room data sheets for FM.

  • @ChubbyQuark cheers, maybe file a bugreport and mention it is medium priority, just so that I can remember.

  • @JanF said:
    What I am talking about is for Blender work only, do you mean Model View Definitions as defined by building smart? I think these are handled separately centrally by ifcopenshell and are only used for exchange, I don't know of any way to use them for work on a project.
    But for stuff like renovations, phases, options and so on these "visibility filters" should be universal. Do you think it would be enough to just use ifc properties or would we also need some additional internal parameters which would be Blender only?
    For

    • renovations the status property should basically be enough
    • design options I vaguely remember a discussion that there is no standard property, you'd have to create a custom one
    • project phases it would be a bit more complex, but mostly about annotations I think, zhis is mostly about graphics of things and that's a different topic

    Hi Jan,
    I think combining the IFC search with Blenders layers is a flexible approach for setting up working views in Blender. I'm not sure if there would be performance hit using this method as you'd probably end up with many view layers.

    Workflow could be: -
    Use of IFC search and/or presentation layers to set required view --> Save new view layer in Blender (used as working view or basis of new drawing) --> Create drawing to store searches and view layers state. Issue is I don't think the view layer is, or can be, read by BlenderBIM?

    Also not sure what would happen if an updated IFC file is imported as it would need to be filtered with the same settings so views/drawings would update. Your suggestion of saving filters based on search terms and presentation layers may be a more robust approach.

  • @Moult said:
    @ChubbyQuark cheers, maybe file a bugreport and mention it is medium priority, just so that I can remember.

    Ok, will do.

  • Is there a way, to recreate something like the following upon IFC import? If not, could there be? Just revisiting, ways to organize the scene, where it stands up to roundtripping.
    You know peeps like their nested collections. :)

  • I've been out of the loop for a few weeks (day job took over). Not sure I grasp the question, as I understand it the structure is created when conforming. Ifc is imported, round tripping should be maintained as long as the .ifc is valid?

    I need to download the latest addon and test any added functionality of presentation layers etc.

  • Export organisation does no more depends on collections, so you are able to define relationships in other ways. On the other hand, at import time, blenderbim try to represent relationships in "visual" way through collection.
    Binding relationships into collections also may have some limitations, by over compicating things by using collections only in order to make relationships "visible" tu users, at cost of billions collections with single object linked into it.

  • edited May 2021

    Not sure, one way or the other, but seasoned Blender users start doing things like the following, just because 'collections' is a good way to organize a file. File here.
    As you can see, we're not really using 'IfcBuildingStorey' correctly here, but is a hack to help organize the scene.

  • Yes, the ease of collection organisation coupled with view layers in Blender is great for representing different design options and Phases. Also handy if rendering out a series or compositing. It would great if this could be used alongside blenderbim but not sure if representation layers should replace blender native scene organisation?

  • Representation layers may also be collections, as objects may belong to more than one collection.

  • Ah, interesting. Seems you can create collections as fake users within Blender. Would that allow some kind of syncing between blenderbim and the outliner for objects outside of the ifc collection structure?

  • edited November 2022

    @theoryshaw said:
    Not sure, one way or the other, but seasoned Blender users start doing things like the following, just because 'collections' is a good way to organize a file. File here.
    As you can see, we're not really using 'IfcBuildingStorey' correctly here, but is a hack to help organize the scene.

    @theoryshaw did you find a way to organise a scene within blender? I think the object visibility should should be linked to the include/exlude filters within the Pset so its obvious what will print to .SVG

    Dion mentioned in another post to use Groups, which is the current approach I'm taking, this means the .ifc ends up with a drawing group per phase (existing, proposed, demo etc.). Not sure if this is best practice but it works well to link scene visibility in Blender to the exported drawing .SVG.

Sign In or Register to comment.