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): 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 = ( old_predefined_type = (
context.scene.BIMRootProperties.ifc_predefined_type if get_ifc_predefined_types(self, context) else "" 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() IfcClassData.load()
# When switching between ElementType and Element, keep the same class and predefined type if possible # When switching between ElementType and Element, keep the same class and predefined type if possible
if context.scene.BIMRootProperties.ifc_product == "IfcElementType": if context.scene.BIMRootProperties.ifc_product == "IfcElement":
ifc_class = old_class + "Type" ifc_class = next(iter(ifcopenshell.util.type.get_applicable_entities(old_class)), None)
elif context.scene.BIMRootProperties.ifc_product == "IfcElement": elif context.scene.BIMRootProperties.ifc_product == "IfcElementType":
ifc_class = old_class ifc_class = next(iter(ifcopenshell.util.type.get_applicable_types(old_class)), None)
else: else:
return 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 context.scene.BIMRootProperties.ifc_class = ifc_class
if old_predefined_type: if old_predefined_type:
context.scene.BIMRootProperties.ifc_predefined_type = old_predefined_type context.scene.BIMRootProperties.ifc_predefined_type = old_predefined_type