mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 09:48:32 +00:00
c1081dccee
get_wall_axis and every consumer of it (window and door snapping, material layer offsets, wall joins) assume a wall's local +X carries its length. A mesh converted to IfcWall keeps its authored axes, so a box modelled long on local Y gets its effective length and thickness swapped for those tools, which is the snapping failure in issue 7453. An earlier attempt rotated the mesh during conversion and was closed: overriding explicit user modelling breaks unpredictable cases such as heritage, industrial and dilapidation models. Nothing is changed automatically here. assign_class only reports an actionable warning naming the affected tools and the fix, and a new bim.align_local_x_to_length operator rotates the local axes only when the user invokes it, compensating the object matrix so the world position and appearance stay identical. Parametric walls, square footprints and multi user meshes are left untouched. Generated with the assistance of an AI coding tool.