diff --git a/src/bonsai/bonsai/bim/module/classification/operator.py b/src/bonsai/bonsai/bim/module/classification/operator.py index 5585119411..6c41ed91e5 100644 --- a/src/bonsai/bonsai/bim/module/classification/operator.py +++ b/src/bonsai/bonsai/bim/module/classification/operator.py @@ -455,6 +455,18 @@ class AddClassificationReferenceFromBSDD(bpy.types.Operator, tool.Ifc.Operator): reference.Location = bsdd_classification.uri for classification_pset in bprops.classification_psets: + properties = {} + for prop in classification_pset.properties: + properties[prop.name] = prop.get_value() + + if classification_pset.name == "undefined_set": + if "ObjectType" in properties: + if hasattr(element, "ObjectType"): + element.ObjectType = properties["ObjectType"] + del properties["ObjectType"] + if not properties: + continue + is_pset = not classification_pset.name.startswith("Qto_") if is_pset: @@ -473,10 +485,6 @@ class AddClassificationReferenceFromBSDD(bpy.types.Operator, tool.Ifc.Operator): "pset.add_qto", tool.Ifc.get(), product=element, name=classification_pset.name ) - properties = {} - for prop in classification_pset.properties: - properties[prop.name] = prop.get_value() - if is_pset: ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties=properties) else: