If you're reading this, we've just migrated servers! If anything looks broken please email dion@thinkmoult.com :)

[IFC] Deleting elements

2

Comments

  • edited August 2022

    I have definitely seen this problem, but can't reproduce, it is likely related to geometry cacheing.

    I don't see it on Linux, where cacheing doesn't work at all due to the way I install blenderbim on my system, but I do see it on Windows.

    I resolved it on Windows by uninstalling blenderbim and reinstalling, which presumably clears the cache.

    pstrokap
  • The latest unstable release from Github does not have caching enabled by default. Can anybody reproducing this bug test with that version?

  • Hey @Moult
    I've made a short vid with the issue and the latest blenderbim:

    Here are the two ifc files used aswell:

  • edited August 2022

    Looks like there's 2 bugs there, potentially unrelated. The other being those IfcBeams that magically show up. :)
    I replicated this IfcBeam bug w/ 0.0.220822. Was not able to replicate the delete problem. Windows 10
    https://github.com/IfcOpenShell/IfcOpenShell/issues/2370

    Coen
  • @brunopostle uninstalling blenderbim and reinstalling did the trick. It works as expected now. (blender v3.1.2 and blenderbim v0.0.220516). Thnx!

    brunopostleMoult
  • Update: uninstalling blenderbim worked for a test file. Yesterday I tested on a project and initially it worked fine but later the same issue reappeared. I did a clean install of the latest versions of blender and blenderbim this morning and tried to find out at what point things go wrong:
    Deleting only elements works.
    Deleting spaces and saving the IFC (or saving as) results in Blender crashing.
    Deleting elements in a blender file that has chrashed before will reappear.
    Loading the IFC (after blender chrased) in a new blender file fails and gives an error.

  • @pstrokap can you upload your file or send to dion@thinkmoult.com if private with a step by step of how to reproduce the crash / error? These types of bugs are high priority to fix.

    pstrokap
  • @bruno_perdigao said:
    I'm not really sure, but I suspect it has to do with the tree organization. The emptys representing IfcSpacialStrutuctureElement should be inside their respective collection. For example, both IfcSite are inside the collection "IfcSite/My Site.002".

    This raises a topic that is seriously messing with me. I see with the IFC import, a lot of empties, representing say a floor level, but none of the elements on the given floor a children of said empty. This is obviously more of a Blender internal structure issue than IFC issue per se. But I am wondering if the parent child relationships can/should be structured inside the Blender file?
    Similarly, the IfcOpeningElements (in my current project at least) are in a completely separate (single openings) collection. Should they not at the very least, be grouped into their respective floor level collections? And of course following on from this, should there not be a relationship between the opening element and what sits in that opening eg a window has an opening element and the actual window element, and then too, to the hosting wall element?

    Perhaps I am overthinking this, but it seems that the strength of the IFC thing is the relationships within the project?

  • Hi!
    Sorry folks.
    Been dealing with some personal family related issues...
    Below is a youtube link showing my actions regarding deleting an IFC object.
    Enjoy :)
    System : MacBook Pro (M1, 2020) macOS Monterey
    Blender version: Intel 3.3 /3.2 / 3.1 (fails on all )
    BlenderBIM: Latest experimental build-220831
    https://youtu.be/ETY26gXO6lc

  • @pstrokap deleting all spaces (250 elements) is a bit expensive so the save process on my machine takes 250 seconds to complete, but it does complete successfully. Did Blender actually crash for you or did it just go unresponsive, and if unresponsive, have you tried waiting longer? For me, I am able to delete random objects and all spaces successfully.

    I recently made a change for supposedly better / faster deletions, and today added support for an experimental feature to disable transactions on export (the first benchmark mentioned in the commit description is with your file).

    If it still doesn't work, catch me online during the Sydney timezone on osarch.org/chat and let's screenshare.

  • @sceyefeye said:
    I see with the IFC import, a lot of empties, representing say a floor level, but none of the elements on the given floor a children of said empty.

    This is an optimisation issue. The relationships are there in the object properties (you can see the IFC Spatial Container panel in Object Properties Tab) so all the relationships are retained. However, merely they haven't had Blender parent-child relationships created. That's because it is largely unnecessary to do so. It's not guaranteed that the user wants or cares about the Blender parent child relationship, and having these relationships on a model with 30,000 objects is not scalable. If the user wants to move the floor as a whole, they can do that by right clicking the collection and clicking "Select Objects".

    Similarly, the IfcOpeningElements (in my current project at least) are in a completely separate (single openings) collection. Should they not at the very least, be grouped into their respective floor level collections? And of course following on from this, should there not be a relationship between the opening element and what sits in that opening eg a window has an opening element and the actual window element, and then too, to the hosting wall element?

    The opening elements are in their own collection because that currently reflects the IFC decomposition tree - openings are only indirectly included in the decomposition hierarchy. This also makes it easy to show/hide openings because openings are generally "invisible" objects. If they were in the storey, how would you easily toggle their visibility? I guess we can build a feature for toggling the visibility. Would that be better?

    When editing with the BIM Tool you can toggle opening / hosted element relationships so they move with the parent and so on. This creates the Blender parent-child relationships on the fly. The hotkey is Alt-O.

  • @haukj I duplicated your steps exactly and it works for me. What doesn't make sense to me is that you are using an M1 which is the ARM architecture which we don't have daily builds for, so how did you manage to get build-220831? Did you compile it yourself? It would also be good to catch me online on osarch.org/chat and let's screenshare and if you don't mind we can do some debugging on your machine.

  • edited September 2022

    @Moult I use the intel version of blender...so...ahaa...maybe the emulator is an issue here?
    Sorry. I was sure I mentioned this detail earlier in this discussion

  • MacBookM1-Emulator-Blender(Intel)-BlenderBim :D

  • @haukj ah OK, I have no idea. It would be nice for you to drop into https://osarch.org/chat and let's do a screenshare to debug together. I might ask you to edit a bit of code to see exactly what's happening. I'd also like to learn more about this emulator so I can add it to the installation instructions for M1 users.

  • @Moult said:

    This is an optimisation issue. The relationships are there in the object properties (you can see the IFC Spatial Container panel in Object Properties Tab) so all the relationships are retained. However, merely they haven't had Blender parent-child relationships created. That's because it is largely unnecessary to do so. It's not guaranteed that the user wants or cares about the Blender parent child relationship, and having these relationships on a model with 30,000 objects is not scalable. If the user wants to move the floor as a whole, they can do that by right clicking the collection and clicking "Select Objects".

    Okay, so it is for programmatical reasons? Really only bothering me from an "OCD" perspective.
    I would just like to see the hierarchy in visual format as it makes it easier, for me, to understand the relationship of the project elements and how they relate to the whole.

    The opening elements are in their own collection because that currently reflects the IFC decomposition tree - openings are only indirectly included in the decomposition hierarchy. This also makes it easy to show/hide openings because openings are generally "invisible" objects. If they were in the storey, how would you easily toggle their visibility? I guess we can build a feature for toggling the visibility. Would that be better?

    It's more from the point of operation, that if I delete a window, its opening should similarly disappear. Of course this means that the openings would have to be implemented as Booleans, and following from that, that the hosting elements' geometry needs to be reconstructed without the opening, and then a Boolean operation applied. So yeah I get that it would take a level of "AI" or some other discretion to recreate the geometry. So I do get it that if the geometry has been poorly exported from one tool and then opened in another, there is only so much that can be done programmatically

    When editing with the BIM Tool you can toggle opening / hosted element relationships so they move with the parent and so on. This creates the Blender parent-child relationships on the fly. The hotkey is Alt-O.

    Ta

  • Yes, for optimisation reasons it's not practical to have 30,000 objects with relationships. The solution is to create the relationships on the fly as you edit portions of the model. Like in your example, BlenderBIM should automatically propagate to the opening. This is not impossible, just not coded yet. There's still a lot of work to be done on core stability and system architecture before I can focus purely on quality of life features for native authoring unfortunately.

    sceyefeye
  • T> @Moult said:

    @haukj ah OK, I have no idea. It would be nice for you to drop into https://osarch.org/chat and let's do a screenshare to debug together. I might ask you to edit a bit of code to see exactly what's happening. I'd also like to learn more about this emulator so I can add it to the installation instructions for M1 users.

    Sure! I'm located in Norway, and at work right now, so I cant join you right now..

  • @haukj we can try the weekend, or to be more organised feel free to send me a meeting request at dion@thinkmoult.com

    haukj
  • edited September 2022

    @Moult: Sorry, I was a caught up in work the last weeks so no time to respond untill now. I tried with a new file. Deleting elements works fine. Deleting a space and then saving project results in Blender crashing (not freezing, after a second or so Blender is gone). I tried moving spaces and then saving project. This results in a error report:




  • What should I do to correctly delete the IFC elements? Also how to regenerate a wall to get rid of the openings?

    test.ifc 129.1K
  • Thanks for trying, I wasn't very clear in explaining. I can delete the elements, but when I export to IFC, open it in BIMvision, nothing seems deleted. importing the IFC in blender again after restarting blender, elements I deleted all just appeared again.

  • Sorry, still seems to work for me.
    https://www.dropbox.com/s/vuj8zqbc6g74ezh/2022-12-26_17-45-33_Blender_blender.mp4?dl=0
    sounds like a conflicting plugin problem, perhaps.

    Coen
  • @Coen I've had that problem a lot, try installing a different version of Blender (the latest or the LTS)
    with the blender launcher:
    https://dotbow.github.io/Blender-Launcher/
    And install blenderbim on it aswell, then try the ifc

    It's hard to pinpoint the plugin or thing that causes the delete issue, so this is my 'keep working and dont worry' workflow

    Coen
  • @theoryshaw said:
    Sorry, still seems to work for me.
    https://www.dropbox.com/s/vuj8zqbc6g74ezh/2022-12-26_17-45-33_Blender_blender.mp4?dl=0
    sounds like a conflicting plugin problem, perhaps.

    @Ace said:
    @Coen I've had that problem a lot, try installing a different version of Blender (the latest or the LTS)
    with the blender launcher:
    https://dotbow.github.io/Blender-Launcher/
    And install blenderbim on it aswell, then try the ifc

    It's hard to pinpoint the plugin or thing that causes the delete issue, so this is my 'keep working and dont worry' workflow

    Thanks for the help, very much appreciated. :-) are you both using the latest release of the latest stable release? I just downloaded Blender 3.4.1 and BlenderBIM 0.0.221105. But still no succes. When I look at the clip of @theoryshaw it seems to work flawless. Will look into Blender launcher, never used that before.

  • I'm using a 'live development' installation on 3.3.

    Coen
  • @Coen I just tested with blender 3.4 and blenderbim-221223-py310-win and it worked on my side.

    Coen
  • @theoryshaw said:
    @Coen I just tested with blender 3.4 and blenderbim-221223-py310-win and it worked on my side.


    Yes finally! I think it's what @Ace said, some Blender add-on is causing this. I downloaded and installed the exact same versions as you. Then it still didn't work. Then I disabled all add-on except for BlenderBIM. Now it works. Need to find which add-on is causing this...

    theoryshawNigelAceJanF
  • I resolved it on Windows by uninstalling blenderbim and reinstalling, which presumably clears the cache.

    How to clear the cache on windows without uninstalling andreinstalling blenderbim, this truss keeps re-appearing:

Sign In or Register to comment.