mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-13 10:57:49 +00:00
c424d1b480
get_default_style did an exact-name map lookup, so subtypes like IfcWallStandardCase or IfcSlabStandardCase never inherited the default material of their parent type, falling through to the generic grey DefaultMaterial instead. This was reported in 2018 (#473) and the fix direction (walk up the supertype chain once the schema runtime made supertypes available) was agreed there, but never implemented. On an exact-match miss the lookup now walks decl->supertype() until a mapped ancestor is found, caching the result under the leaf name for O(1) subsequent lookups. The product's user-facing type string is deliberately untouched; only the style lookup gained inheritance. Applies equally to the built-in defaults and --default-material-file. This change was written with AI assistance.