Fix UI bugs for settings predefined types / assign_type to prevent invalid ifc (#7011)

This commit is contained in:
Christoph Mellüh
2025-08-12 08:11:55 +02:00
committed by GitHub
parent b5e977d7f3
commit 3e5a2e5eb2
4 changed files with 55 additions and 6 deletions
@@ -188,10 +188,7 @@ class Usecase:
if not related_objects:
return
related_objects_set = set(related_objects)
ifc2x3 = self.file.schema == "IFC2X3"
related_objects_set = set(related_objects)
if ifc2x3:
types = next(iter(relating_type.ObjectTypeOf), None)
@@ -257,6 +254,14 @@ class Usecase:
relating_type=relating_type,
)
self.map_material_usages(objects_to_change, relating_type)
# Remove PredefinedType / ObjectType if existing to forbid double typing(See #7006)
predefined_type = ifcopenshell.util.element.get_predefined_type(relating_type)
if predefined_type != "NOTDEFINED" and predefined_type is not None:
for obj in related_objects_set:
obj.ObjectType = None
if hasattr(obj, "PredefinedType"):
obj.PredefinedType = None
return types
def map_material_usages(