From 65237cab655512152437a2043ba4c81a110d8c5c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 13 Oct 2025 08:44:47 +1100 Subject: [PATCH] Fix #7080. Potential bug with merging styles that didn't replace elements of the same class. --- src/ifcpatch/ifcpatch/recipes/MergeStyles.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ifcpatch/ifcpatch/recipes/MergeStyles.py b/src/ifcpatch/ifcpatch/recipes/MergeStyles.py index cb2780a360..5c1fa2f4fa 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeStyles.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeStyles.py @@ -44,11 +44,12 @@ class Patcher(ifcpatch.BasePatcher): uniques = {} i = 0 for element in self.file.by_type(ifc_class): - data = "-".join([str(a) for a in element]) - if unique := uniques.get(data, None): + ifc_class = element.is_a() + key = "-".join([str(a) for a in element]) + if unique := uniques.get(ifc_class, {}).get(key, None): ifcopenshell.util.element.replace_element(element, unique) self.file.remove(element) i += 1 else: - uniques[data] = element + uniques.setdefault(ifc_class, {})[key] = element print(f"Replaced {i} {ifc_class}")