From 320142f8e292ee92f0d0fa337f610d85f94ff07b Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 28 Oct 2024 15:33:29 +0500 Subject: [PATCH] Hide material sets panels if there is no material set #5647 --- src/bonsai/bonsai/bim/module/pset/ui.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/pset/ui.py b/src/bonsai/bonsai/bim/module/pset/ui.py index a55afeae83..0691ef18bc 100644 --- a/src/bonsai/bonsai/bim/module/pset/ui.py +++ b/src/bonsai/bonsai/bim/module/pset/ui.py @@ -35,6 +35,7 @@ from bonsai.bim.module.pset.data import ( ProfilePsetsData, WorkSchedulePsetsData, ) +from bonsai.bim.module.material.data import ObjectMaterialData from typing import Any, Optional @@ -438,7 +439,10 @@ class BIM_PT_material_set_psets(Panel): return False # We don't support material psets in IFC2X3 because they suck if not tool.Ifc.get_entity(context.active_object): return False - return True + if not ObjectMaterialData.is_loaded: + ObjectMaterialData.load() + ifc_class = ObjectMaterialData.data["material_class"] + return bool(ifc_class and "Set" in ifc_class) def draw(self, context): if not MaterialSetPsetsData.is_loaded: @@ -475,7 +479,10 @@ class BIM_PT_material_set_item_psets(Panel): return False # We don't support material psets in IFC2X3 because they suck if not tool.Ifc.get_entity(context.active_object): return False - return True + if not ObjectMaterialData.is_loaded: + ObjectMaterialData.load() + ifc_class = ObjectMaterialData.data["material_class"] + return bool(ifc_class and "Set" in ifc_class) def draw(self, context): if not MaterialSetItemPsetsData.is_loaded: