From e14b3b224e41fa3fbe6033cc3b1c9e0bdeedc3e1 Mon Sep 17 00:00:00 2001 From: Gorgious Date: Fri, 28 Jan 2022 07:41:59 +0100 Subject: [PATCH] add method to data class to retrieve ifc class name --- src/blenderbim/blenderbim/bim/module/aggregate/data.py | 7 +++++++ src/blenderbim/blenderbim/bim/module/aggregate/ui.py | 5 +---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/aggregate/data.py b/src/blenderbim/blenderbim/bim/module/aggregate/data.py index 095bfff16e..b3221e5015 100644 --- a/src/blenderbim/blenderbim/bim/module/aggregate/data.py +++ b/src/blenderbim/blenderbim/bim/module/aggregate/data.py @@ -35,6 +35,7 @@ class AggregateData: "has_aggregate": cls.has_aggregate(), "label": cls.get_label(), "relating_object_id": cls.get_relating_object_id(), + "ifc_class": cls.ifc_class(), } cls.is_loaded = True @@ -53,3 +54,9 @@ class AggregateData: aggregate = ifcopenshell.util.element.get_aggregate(tool.Ifc.get_entity(bpy.context.active_object)) if aggregate: return aggregate.id() + + @classmethod + def ifc_class(cls): + element = tool.Ifc.get_entity(bpy.context.active_object) + if element: + return element.is_a() diff --git a/src/blenderbim/blenderbim/bim/module/aggregate/ui.py b/src/blenderbim/blenderbim/bim/module/aggregate/ui.py index 59fb719989..83f511ca0d 100644 --- a/src/blenderbim/blenderbim/bim/module/aggregate/ui.py +++ b/src/blenderbim/blenderbim/bim/module/aggregate/ui.py @@ -19,7 +19,6 @@ from bpy.types import Panel from blenderbim.bim.module.aggregate.data import AggregateData from blenderbim.bim.ifc import IfcStore -from blenderbim.bim.module.root.data import IfcClassData class BIM_PT_aggregate(Panel): @@ -73,8 +72,6 @@ class BIM_PT_aggregate(Panel): row.operator("bim.enable_editing_aggregate", icon="GREASEPENCIL", text="") row.operator("bim.add_aggregate", icon="ADD", text="") - if not IfcClassData.is_loaded: - IfcClassData.load() - ifc_class = IfcClassData.data["ifc_class"] + ifc_class = AggregateData.data["ifc_class"] if ifc_class == "IfcBuilding": layout.operator("bim.building_storey_add")