Gorgious56
2025-01-21 13:56:32 +01:00
parent 82fbec68d1
commit fc58b1769c
+6 -6
View File
@@ -48,7 +48,7 @@ def get_representation_template(self, context):
def refresh_classes(self, context):
old_class = context.scene.BIMRootProperties.ifc_class.split("Type")[0]
old_class = context.scene.BIMRootProperties.ifc_class
old_predefined_type = (
context.scene.BIMRootProperties.ifc_predefined_type if get_ifc_predefined_types(self, context) else ""
)
@@ -58,13 +58,13 @@ def refresh_classes(self, context):
IfcClassData.load()
# When switching between ElementType and Element, keep the same class and predefined type if possible
if context.scene.BIMRootProperties.ifc_product == "IfcElementType":
ifc_class = old_class + "Type"
elif context.scene.BIMRootProperties.ifc_product == "IfcElement":
ifc_class = old_class
if context.scene.BIMRootProperties.ifc_product == "IfcElement":
ifc_class = next(iter(ifcopenshell.util.type.get_applicable_entities(old_class)), None)
elif context.scene.BIMRootProperties.ifc_product == "IfcElementType":
ifc_class = next(iter(ifcopenshell.util.type.get_applicable_types(old_class)), None)
else:
return
if ifc_class in [e[0] for e in get_ifc_classes(self, context)]:
if ifc_class:
context.scene.BIMRootProperties.ifc_class = ifc_class
if old_predefined_type:
context.scene.BIMRootProperties.ifc_predefined_type = old_predefined_type