From 8dd8a23af941e225da5af56c55ecaa7e7b99b700 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Thu, 3 Nov 2022 08:16:40 +0100 Subject: [PATCH] The predefined type suggestions now fetch their values from the ifcopenshell.util.doc module instead of parsing the file data --- .../blenderbim/bim/module/root/data.py | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/data.py b/src/blenderbim/blenderbim/bim/module/root/data.py index b2cdccf9b5..560a420eee 100644 --- a/src/blenderbim/blenderbim/bim/module/root/data.py +++ b/src/blenderbim/blenderbim/bim/module/root/data.py @@ -38,7 +38,7 @@ class IfcClassData: cls.data = {} cls.data["ifc_products"] = cls.ifc_products() cls.data["ifc_classes"] = cls.ifc_classes() - cls.data["ifc_classes_suggestions"] = cls.ifc_classes_suggestions() + cls.data["ifc_classes_suggestions"] = cls.ifc_classes_suggestions() # Call AFTER cls.ifc_classes() cls.data["contexts"] = cls.contexts() cls.data["has_entity"] = cls.has_entity() cls.data["name"] = cls.name() @@ -117,20 +117,11 @@ class IfcClassData: "IfcUnitaryEquipment": ["Fan Coil Unit"], } ) - file = IfcStore.get_file() - if file: - for ifc_class in cls.ifc_classes(): - ifc_class = ifc_class[0] - declaration = IfcStore.get_schema().declaration_by_name(ifc_class) - for attribute in declaration.attributes(): - if attribute.name() == "PredefinedType": - for e in attribute.type_of_attribute().declared_type().enumeration_items(): - if e in ( - "NOTDEFINED", - "USERDEFINED", - ): - continue - suggestions[ifc_class].append(e.title()) + version = tool.Ifc.get_schema() + for ifc_class, _, _ in cls.data["ifc_classes"]: + class_doc = get_entity_doc(version, ifc_class) + predefined_types = class_doc.get("predefined_types", {}) + suggestions[ifc_class].extend(predefined_types.keys()) return suggestions @classmethod