Files
IfcOpenShell/src
Petru Conduraru 99f2a0c1e8 bonsai(drawing): join mitred wall/slab linework by actual layer materials, not LayerSetName (#6274)
The default drawing join criteria compared IfcMaterialLayerSetUsage
via "material.Name", which for layered walls resolves to the optional
IfcMaterialLayerSet.LayerSetName attribute. Two walls with an
identical layer composition (same materials, same thicknesses) can
still have a different or unset LayerSetName depending on how the
material was assigned (direct instance override vs wall type), which
made the 2D cut linework merge fail and left a spurious seam line at
mitred or butt joins even though the walls share the same material.

Switch to "materials.Name", which resolves the actual list of
constituent material names via ifcopenshell.util.element.get_materials,
so two elements are only treated as different when their real material
composition differs. The redundant "Material.Name" entry is removed,
since it never resolved to anything (get_element_value only recognizes
the lowercase "material"/"materials" keys), so it was silently
matching None for every element.

Verified live in headless Blender 5.2 against the reporter's attached
Wall joins & visualisation.ifc: before the fix, the mitred wall pair
(GUIDs 1KtMvpwxL5PwkIhx8XA6Ro and 1EzeyHDj98PhTMAOhx02Zi, both a
brick+concrete layered wall) rendered as two separate SVG groups with
a visible internal seam. After the fix they merge into a single group
with no seam, and unrelated walls that only coincidentally shared an
unset LayerSetName no longer get incorrectly merged together either.

Generated with the assistance of an AI coding tool.
2026-07-16 13:13:54 +03:00
..
2026-07-15 19:20:17 +05:00
2026-02-27 14:52:55 +05:00
2026-02-27 14:52:55 +05:00
2025-12-19 18:53:14 +05:00
2025-12-19 18:53:14 +05:00
2025-12-22 18:44:42 +05:00
2025-12-19 18:53:14 +05:00
2025-12-22 18:44:42 +05:00