Files
IfcOpenShell/src/ifcopenshell-python/ifcopenshell/api/geometry
Dion Moult 8cf7057abc Fix #5954. Special automatic movement of features shouldn't then also move children of those features.
If you move a wall, and that wall has features (e.g. openings), it's
desirable to also move those openings (because they are invisible). This
is a special exception to `should_transform_children` because the
definition of the feature (opening) is inherently tied to the parent
(wall).

What wasn't considered is that this would typically then also move
subchildren of the features (e.g. fills like doors). I'm surprised
nobody caught this earlier.

I did also consider another approach where if you move a wall, it moves
all unfilled openings, and if you move a door which fills a opening, it
moves the opening too. Intuitively it sounds nice, but it doesn't work
because:

 - Openings can have multiple fillings. If you move all fillings, they
all fight to move the openings.
 - All logic about children goes one way: a placement may have child
placements relative to it. This breaks the convention (if moving a door
instead moves its opening) which can make brains explode.
 - It starts to conflate rules about relative / referenced placements
with spatial decomposition. We assume all IFCs are valid and follows the
convention of relative placement but we cannot guarantee this. This also
leads to brain explosion.
2025-01-13 15:44:52 +11:00
..
2024-07-26 12:00:57 +10:00
2024-05-15 17:18:33 +05:00
2024-05-15 17:18:33 +05:00
2024-12-23 18:59:55 +05:00
2024-09-03 18:53:25 +05:00
2024-05-15 17:18:33 +05:00
2024-05-15 17:18:33 +05:00
2024-05-24 19:15:51 +05:00
2024-05-15 17:18:33 +05:00