diff --git a/src/bonsai/bonsai/bim/module/pset/__init__.py b/src/bonsai/bonsai/bim/module/pset/__init__.py index 5e53bde928..0ab35183e4 100644 --- a/src/bonsai/bonsai/bim/module/pset/__init__.py +++ b/src/bonsai/bonsai/bim/module/pset/__init__.py @@ -47,7 +47,6 @@ classes = ( ui.BIM_PT_object_psets, ui.BIM_PT_object_qtos, ui.BIM_PT_material_psets, - ui.BIM_PT_material_set_psets, ui.BIM_PT_material_set_item_psets, ui.BIM_PT_task_qtos, ui.BIM_PT_resource_qtos, @@ -66,7 +65,6 @@ classes = ( def register(): bpy.types.Object.PsetProperties = bpy.props.PointerProperty(type=prop.PsetProperties) bpy.types.Scene.MaterialPsetProperties = bpy.props.PointerProperty(type=prop.PsetProperties) - bpy.types.Object.MaterialSetPsetProperties = bpy.props.PointerProperty(type=prop.PsetProperties) bpy.types.Object.MaterialSetItemPsetProperties = bpy.props.PointerProperty(type=prop.PsetProperties) bpy.types.Scene.TaskPsetProperties = bpy.props.PointerProperty(type=prop.PsetProperties) bpy.types.Scene.ResourcePsetProperties = bpy.props.PointerProperty(type=prop.PsetProperties) @@ -82,7 +80,6 @@ def register(): def unregister(): del bpy.types.Object.PsetProperties del bpy.types.Scene.MaterialPsetProperties - del bpy.types.Object.MaterialSetPsetProperties del bpy.types.Object.MaterialSetItemPsetProperties del bpy.types.Scene.TaskPsetProperties del bpy.types.Scene.ResourcePsetProperties diff --git a/src/bonsai/bonsai/bim/module/pset/data.py b/src/bonsai/bonsai/bim/module/pset/data.py index 7f1e391629..6506f7cce7 100644 --- a/src/bonsai/bonsai/bim/module/pset/data.py +++ b/src/bonsai/bonsai/bim/module/pset/data.py @@ -33,7 +33,6 @@ def refresh(): ObjectPsetsData.is_loaded = False ObjectQtosData.is_loaded = False MaterialPsetsData.is_loaded = False - MaterialSetPsetsData.is_loaded = False MaterialSetItemPsetsData.is_loaded = False TaskQtosData.is_loaded = False ResourceQtosData.is_loaded = False @@ -185,7 +184,7 @@ class MaterialPsetsData(Data): if material.ifc_definition_id: material = tool.Ifc.get().by_id(material.ifc_definition_id) category = getattr(material, "Category", None) or None - psets = bonsai.bim.schema.ifc.psetqto.get_applicable("IfcMaterial", category, pset_only=True) + psets = bonsai.bim.schema.ifc.psetqto.get_applicable(props.material_type, category, pset_only=True) psetnames = cls.format_pset_enum(psets) assigned_names = ifcopenshell.util.element.get_psets( material, psets_only=True, should_inherit=False @@ -194,22 +193,6 @@ class MaterialPsetsData(Data): return [] -class MaterialSetPsetsData(Data): - data = {} - is_loaded = False - - @classmethod - def load(cls): - psets = {} - element = tool.Ifc.get_entity(bpy.context.active_object) - if element: - material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) - if material and "Set" in material.is_a(): - psets = cls.psetqtos(material) - cls.data = {"psets": psets} - cls.is_loaded = True - - class MaterialSetItemPsetsData(Data): data = {} is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/pset/ui.py b/src/bonsai/bonsai/bim/module/pset/ui.py index 69333ac9b4..93d087c54e 100644 --- a/src/bonsai/bonsai/bim/module/pset/ui.py +++ b/src/bonsai/bonsai/bim/module/pset/ui.py @@ -25,7 +25,6 @@ from bonsai.bim.module.pset.data import ( ObjectPsetsData, ObjectQtosData, MaterialPsetsData, - MaterialSetPsetsData, MaterialSetItemPsetsData, TaskQtosData, ResourceQtosData, @@ -88,7 +87,7 @@ def draw_enumerated_property( def get_active_pset_obj_name(context: bpy.types.Context, obj_type: tool.Ifc.OBJECT_TYPE) -> str: - if obj_type in ("Object", "MaterialSet", "MaterialSetItem"): + if obj_type in ("Object", "MaterialSetItem"): return context.active_object.name return "" @@ -430,46 +429,6 @@ class BIM_PT_material_psets(Panel): draw_psetqto_ui(context, pset["id"], pset, props, self.layout, "Material") -class BIM_PT_material_set_psets(Panel): - bl_label = "Material Set Property Sets" - bl_idname = "BIM_PT_material_set_psets" - bl_options = {"DEFAULT_CLOSED"} - bl_space_type = "PROPERTIES" - bl_region_type = "WINDOW" - bl_context = "object" - bl_parent_id = "BIM_PT_object_material" - - @classmethod - def poll(cls, context): - if not context.active_object: - return False - if not tool.Ifc.get() or tool.Ifc.get().schema == "IFC2X3": - return False # We don't support material psets in IFC2X3 because they suck - if not tool.Ifc.get_entity(context.active_object): - return False - 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: - MaterialSetPsetsData.load() - - props = context.active_object.MaterialSetPsetProperties - row = self.layout.row(align=True) - prop_with_search(row, props, "pset_name", text="") - op = row.operator("bim.add_pset", icon="ADD", text="") - op.obj = context.active_object.name - op.obj_type = "MaterialSet" - - if not props.active_pset_id and props.active_pset_name and props.active_pset_type == "PSET": - draw_psetqto_ui(context, 0, {}, props, self.layout, "MaterialSet") - - for pset in MaterialSetPsetsData.data["psets"]: - draw_psetqto_ui(context, pset["id"], pset, props, self.layout, "MaterialSet") - - class BIM_PT_material_set_item_psets(Panel): bl_label = "Material Set Item Property Sets" bl_idname = "BIM_PT_material_set_item_psets" diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index 8795f77155..d736599384 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -185,10 +185,6 @@ class Blender(bonsai.core.tool.Blender): return context.scene.BIMMaterialProperties.materials[ context.scene.BIMMaterialProperties.active_material_index ].ifc_definition_id - elif obj_type == "MaterialSet": - return ifcopenshell.util.element.get_material( - tool.Ifc.get_entity(bpy.data.objects.get(obj)), should_skip_usage=True - ).id() elif obj_type == "MaterialSetItem": return bpy.data.objects.get(obj).BIMObjectMaterialProperties.active_material_set_item_id elif obj_type == "Task": diff --git a/src/bonsai/bonsai/tool/ifc.py b/src/bonsai/bonsai/tool/ifc.py index 8144325584..502903601d 100644 --- a/src/bonsai/bonsai/tool/ifc.py +++ b/src/bonsai/bonsai/tool/ifc.py @@ -34,7 +34,6 @@ class Ifc(bonsai.core.tool.Ifc): OBJECT_TYPE = Literal[ "Object", "Material", - "MaterialSet", "MaterialSetItem", "Task", "Cost", diff --git a/src/bonsai/bonsai/tool/pset.py b/src/bonsai/bonsai/tool/pset.py index 9d37115aa4..7c07010fa8 100644 --- a/src/bonsai/bonsai/tool/pset.py +++ b/src/bonsai/bonsai/tool/pset.py @@ -45,8 +45,6 @@ class Pset(bonsai.core.tool.Pset): return bpy.data.objects.get(obj).PsetProperties elif obj_type == "Material": return bpy.context.scene.MaterialPsetProperties - elif obj_type == "MaterialSet": - return bpy.data.objects.get(obj).MaterialSetPsetProperties elif obj_type == "MaterialSetItem": return bpy.data.objects.get(obj).MaterialSetItemPsetProperties elif obj_type == "Task":