Link IFCWalls with IFCBuildingStorey

edited October 2025 in General

Hey everyone,

I’ve been struggling for a while now with something that I thought should be pretty simple in Bonsai BIM, but it’s turning into a rabbit hole. Basically, I just want my walls to move when their building storey moves — no Blender drivers, no scripts, just proper IFC relationships doing what they’re supposed to do.

I have a master IFC with several IfcBuildingStorey objects — P00, P01, P02, each with its elevation set correctly. When I change the elevation of a storey, I would expect all the elements contained in that storey (walls, slabs, etc.) to move accordingly. But that’s not happening at all.

At first, I thought it was something about containment, so I checked: every wall is properly assigned to its corresponding storey. The relationships (IfcRelContainedInSpatialStructure) are there, and everything looks right both in the schema and in the property panels. But when I modify the storey elevation, the walls just stay in place. They don’t follow the level.

Then I noticed that when I try to edit the LocalPlacement of a wall, Bonsai won’t let me — the placement fields are greyed out, and I see something labeled “Inherited: AXIS2”. I assume that means the wall is using the storey’s placement or coordinate system somehow, but I can’t actually modify or override it. It feels like the placement is hard-linked but not actually dynamic.

I even went down the Python route using IfcOpenShell inside Blender. I opened the file, got all the storeys, and checked their placements and elevations. Then I tried reassigning each wall’s PlacementRelTo so it points to the corresponding storey’s placement, and updated the relative Z coordinates manually. The IFC data looks fine when I inspect it — but still, the geometry in Blender doesn’t move. Even after reloading the IFC, the walls stay where they were before. So either Bonsai isn’t updating the mesh representation when placement changes, or the IFC hierarchy isn’t being interpreted correctly.

At this point I’m kind of stuck between two worlds:

The UI side, where everything looks connected but isn’t actually dynamic.

And the Python/IFC side, where I can edit data but it doesn’t reflect visually.

I also noticed that I can’t edit LocalPlacement even if I unlink the wall temporarily — it just keeps the “Inherited” tag. Maybe that’s related? I don’t really understand what Bonsai means by “Inherited AXIS2”, but I suspect it’s connected to the local coordinate system being shared between objects.

What I want is pretty straightforward: when I move a storey, the elements that belong to it should move too. I don’t want to use Blender drivers or hard-coded constraints, because I want to keep everything IFC-native and interoperable. Just plain IfcLocalPlacement referencing the storey’s placement, the way it’s supposed to work.

So my questions are basically:

Is this workflow actually supported in Bonsai right now?

Should walls automatically follow their storey’s elevation when the storey moves?

What does “Inherited AXIS2” really mean? Is there a way to make it local or editable?

Or is this just not implemented yet in the current build?

I’ve already tried reloading the IFC, updating it, reassigning the storeys, checking the schema, even scripting it manually — nothing makes the geometry move. Everything looks right on paper, but not in the model.

I’d really appreciate it if someone could clarify whether this is a limitation, a bug, or if I’m just missing something obvious in how Bonsai handles placements and elevations.

Thanks a lot in advance,

Edit:
Blender version: 4.4
Bonsai version: 0.8.3-Post1
Windows version: 11

Comments

Sign In or Register to comment.