From 84020c9832f81715f5e6365e3acfbb50791b29ef Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Mon, 24 Oct 2022 15:20:52 +0200 Subject: [PATCH] Type Manager : Add search to ifc class and descriptions to class an predefined type enums --- src/blenderbim/blenderbim/bim/module/model/data.py | 7 +++++-- src/blenderbim/blenderbim/bim/module/model/ui.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/data.py b/src/blenderbim/blenderbim/bim/module/model/data.py index 5d25f2efb9..b900c3af59 100644 --- a/src/blenderbim/blenderbim/bim/module/model/data.py +++ b/src/blenderbim/blenderbim/bim/module/model/data.py @@ -23,6 +23,7 @@ import ifcopenshell import blenderbim.tool as tool from blenderbim.bim.ifc import IfcStore from blenderbim.bim.module.model.root import ConstrTypeEntityNotFound +from blenderbim.bim.prop import get_ifc_entity_description, get_predefined_type_descriptions def refresh(): @@ -60,7 +61,7 @@ class AuthoringData: declarations = ifcopenshell.util.schema.get_subtypes(declaration) names = [d.name() for d in declarations] names.extend(("IfcDoorStyle", "IfcWindowStyle")) - return [(c, c, "") for c in sorted(names)] + return [(c, c, get_ifc_entity_description(c)) for c in sorted(names)] @classmethod def type_predefined_type(cls): @@ -68,7 +69,9 @@ class AuthoringData: declaration = tool.Ifc().schema().declaration_by_name(cls.props.type_class) for attribute in declaration.attributes(): if attribute.name() == "PredefinedType": - results.extend([(e, e, "") for e in attribute.type_of_attribute().declared_type().enumeration_items()]) + declared_type = attribute.type_of_attribute().declared_type() + descriptions = get_predefined_type_descriptions(declared_type.name()) + results.extend([(e, e, descriptions.get(e, "")) for e in declared_type.enumeration_items()]) break return results diff --git a/src/blenderbim/blenderbim/bim/module/model/ui.py b/src/blenderbim/blenderbim/bim/module/model/ui.py index 25a18eeb49..855fb6c30b 100644 --- a/src/blenderbim/blenderbim/bim/module/model/ui.py +++ b/src/blenderbim/blenderbim/bim/module/model/ui.py @@ -20,7 +20,7 @@ import bpy from bpy.types import Panel, Operator, Menu from blenderbim.bim.module.model.data import AuthoringData from blenderbim.bim.module.model.prop import store_cursor_position -from blenderbim.bim.helper import prop_with_search, close_operator_panel +from blenderbim.bim.helper import prop_with_search class LaunchTypeManager(bpy.types.Operator): @@ -46,7 +46,7 @@ class LaunchTypeManager(bpy.types.Operator): props = context.scene.BIMModelProperties row = self.layout.row() - row.prop(props, "type_class", text="") + prop_with_search(row, props, "type_class", text="") columns = self.layout.column_flow(columns=3) row = columns.row()