From b310b5aaba1f4fe031c75d869ea30d5a496b42bc Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 12 Dec 2023 16:07:15 +0500 Subject: [PATCH] Remove old external styles UI from material in favor of general styles UI Adding external styles from other styles now also moved to general styles UI - https://i.imgur.com/uEyjKVY.png --- .../blenderbim/bim/module/style/__init__.py | 4 -- .../blenderbim/bim/module/style/data.py | 18 ------ .../blenderbim/bim/module/style/operator.py | 49 ++-------------- .../blenderbim/bim/module/style/ui.py | 56 +------------------ src/blenderbim/blenderbim/core/style.py | 17 ------ 5 files changed, 5 insertions(+), 139 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/style/__init__.py b/src/blenderbim/blenderbim/bim/module/style/__init__.py index 6b404ccf70..6e02e61de1 100644 --- a/src/blenderbim/blenderbim/bim/module/style/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/style/__init__.py @@ -28,14 +28,11 @@ classes = ( operator.RemoveTextureMap, operator.ChooseTextureMapPath, operator.DisableAddingPresentationStyle, - operator.DisableEditingExternalStyle, operator.DisableEditingStyle, operator.DisableEditingStyles, - operator.EditExternalStyle, operator.EditStyle, operator.EditSurfaceStyle, operator.EnableAddingPresentationStyle, - operator.EnableEditingExternalStyle, operator.EnableEditingStyle, operator.EnableEditingSurfaceStyle, operator.LoadStyles, @@ -53,7 +50,6 @@ classes = ( ui.BIM_PT_styles, ui.BIM_PT_style, ui.BIM_PT_style_attributes, - ui.BIM_PT_external_style_attributes, ui.BIM_UL_styles, ) diff --git a/src/blenderbim/blenderbim/bim/module/style/data.py b/src/blenderbim/blenderbim/bim/module/style/data.py index 50447bec85..c873d5f9e4 100644 --- a/src/blenderbim/blenderbim/bim/module/style/data.py +++ b/src/blenderbim/blenderbim/bim/module/style/data.py @@ -79,9 +79,7 @@ class StyleAttributesData: cls.data = { "ifc_style_id": cls.ifc_style_id(), "attributes": cls.get_attributes(), - "style_elements": cls.get_style_elements(), } - cls.data["external_style_attributes"] = cls.get_external_style_attributes() cls.is_loaded = True @classmethod @@ -97,19 +95,3 @@ class StyleAttributesData: continue results.append({"name": name, "value": str(value)}) return results - - @classmethod - def get_style_elements(cls): - return tool.Style.get_style_elements(bpy.context.active_object.active_material) - - @classmethod - def get_external_style_attributes(cls): - external_style = cls.data["style_elements"].get("IfcExternallyDefinedSurfaceStyle", None) - if not external_style: - return None - results = [] - for name, value in external_style.get_info().items(): - if name in ["id", "type"]: - continue - results.append({"name": name, "value": str(value)}) - return results diff --git a/src/blenderbim/blenderbim/bim/module/style/operator.py b/src/blenderbim/blenderbim/bim/module/style/operator.py index dc4c2f7019..3e647ba718 100644 --- a/src/blenderbim/blenderbim/bim/module/style/operator.py +++ b/src/blenderbim/blenderbim/bim/module/style/operator.py @@ -24,7 +24,6 @@ import blenderbim.tool as tool import blenderbim.core.style as core import ifcopenshell.util.representation from pathlib import Path -from blenderbim.bim.module.style.data import StyleAttributesData from mathutils import Vector @@ -288,59 +287,19 @@ class BrowseExternalStyle(bpy.types.Operator): bpy.data.materials.remove(db["data_block"]) - if not StyleAttributesData.is_loaded: - StyleAttributesData.load() - external_style = StyleAttributesData.data["style_elements"].get("IfcExternallyDefinedSurfaceStyle", None) - if self.use_relative_path: filepath = os.path.relpath(self.filepath, tool.Ifc.get_path()) else: filepath = self.filepath filepath = Path(filepath).as_posix() - attributes = { - "Location": filepath, - "Identification": f"{self.data_block_type}/{self.data_block}", - "Name": self.data_block, - } - if not external_style: - core.add_external_style( - tool.Ifc, tool.Style, obj=context.active_object.active_material, attributes=attributes - ) - else: - core.update_external_style(tool.Ifc, tool.Style, external_style=external_style, attributes=attributes) - - StyleAttributesData.is_loaded = False + attributes = context.scene.BIMStylesProperties.external_style_attributes + attributes["Location"].string_value = filepath + attributes["Identification"].string_value = f"{self.data_block_type}/{self.data_block}" + attributes["Name"].string_value = self.data_block return {"FINISHED"} -class EnableEditingExternalStyle(bpy.types.Operator, tool.Ifc.Operator): - bl_idname = "bim.enable_editing_external_style" - bl_label = "Enable Editing External Style" - bl_options = {"REGISTER", "UNDO"} - - def _execute(self, context): - core.enable_editing_external_style(tool.Style, obj=context.active_object.active_material) - - -class DisableEditingExternalStyle(bpy.types.Operator, tool.Ifc.Operator): - bl_idname = "bim.disable_editing_external_style" - bl_options = {"REGISTER", "UNDO"} - bl_label = "Disable Editing External Style" - - def _execute(self, context): - core.disable_editing_external_style(tool.Style, obj=context.active_object.active_material) - - -class EditExternalStyle(bpy.types.Operator, tool.Ifc.Operator): - bl_idname = "bim.edit_external_style" - bl_label = "Edit External Style" - bl_options = {"REGISTER", "UNDO"} - - def _execute(self, context): - core.edit_external_style(tool.Ifc, tool.Style, obj=context.active_object.active_material) - - class ActivateExternalStyle(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.activate_external_style" bl_label = "Activate External Style" diff --git a/src/blenderbim/blenderbim/bim/module/style/ui.py b/src/blenderbim/blenderbim/bim/module/style/ui.py index d0ea70944b..8fce530f86 100644 --- a/src/blenderbim/blenderbim/bim/module/style/ui.py +++ b/src/blenderbim/blenderbim/bim/module/style/ui.py @@ -232,6 +232,7 @@ class BIM_PT_styles(Panel): row.operator("bim.disable_editing_style", text="", icon="CANCEL") def draw_externally_defined_surface_style(self): + self.layout.row().operator("bim.browse_external_style", icon="APPEND_BLEND", text="Append From Blend File") blenderbim.bim.helper.draw_attributes(self.props.external_style_attributes, self.layout) row = self.layout.row(align=True) row.operator("bim.edit_surface_style", text="Save External Style", icon="CHECKMARK") @@ -312,61 +313,6 @@ class BIM_PT_style_attributes(Panel): row.label(text=attribute["value"]) -class BIM_PT_external_style_attributes(Panel): - bl_label = "External Surface Style" - bl_idname = "BIM_PT_external_style_attributes" - bl_space_type = "PROPERTIES" - bl_region_type = "WINDOW" - bl_context = "material" - bl_parent_id = "BIM_PT_style" - - @classmethod - def poll(cls, context): - if not IfcStore.get_file(): - return False - try: - return bool(context.active_object.active_material.BIMMaterialProperties.ifc_style_id) - except: - return False - - def draw(self, context): - if not StyleAttributesData.is_loaded or ( - context.active_object.active_material.BIMMaterialProperties.ifc_style_id - != StyleAttributesData.data["ifc_style_id"] - ): - StyleAttributesData.load() - - mat = context.active_object.active_material - mprops = mat.BIMMaterialProperties - props = mat.BIMStyleProperties - - external_style = StyleAttributesData.data["style_elements"].get("IfcExternallyDefinedSurfaceStyle", None) - if not external_style: - row = self.layout.row(align=True) - row.operator("bim.browse_external_style", text="Add External Style", icon="ADD") - return - - row = self.layout.row(align=True) - row.label(text="Parameters:") - - if props.is_editing_external_style: - row.operator("bim.edit_external_style", icon="CHECKMARK", text="") - row.operator("bim.disable_editing_external_style", icon="CANCEL", text="") - blenderbim.bim.helper.draw_attributes(props.external_style_attributes, self.layout) - else: - row.operator("bim.browse_external_style", icon="APPEND_BLEND", text="") - row.operator("bim.enable_editing_external_style", icon="GREASEPENCIL", text="") - - row = self.layout.row(align=True) - row.label(text="STEP ID") - row.label(text=str(external_style.id())) - - for attribute in StyleAttributesData.data["external_style_attributes"]: - row = self.layout.row(align=True) - row.label(text=attribute["name"]) - row.label(text=attribute["value"]) - - class BIM_UL_styles(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname): if item: diff --git a/src/blenderbim/blenderbim/core/style.py b/src/blenderbim/blenderbim/core/style.py index 97ded3ef34..c700207894 100644 --- a/src/blenderbim/blenderbim/core/style.py +++ b/src/blenderbim/blenderbim/core/style.py @@ -120,33 +120,16 @@ def enable_editing_style(style, obj=None): style.import_surface_attributes(style.get_style(obj), obj) -def enable_editing_external_style(style, obj=None): - external_style = style.get_external_style(obj) - style.enable_editing_external_style(obj) - style.import_external_style_attributes(external_style, obj) - - def disable_editing_style(style, obj=None): style.disable_editing(obj) -def disable_editing_external_style(style, obj=None): - style.disable_editing_external_style(obj) - - def edit_style(ifc, style, obj=None): attributes = style.export_surface_attributes(obj) ifc.run("style.edit_presentation_style", style=style.get_style(obj), attributes=attributes) style.disable_editing(obj) -def edit_external_style(ifc, style, obj=None): - attributes = style.export_external_style_attributes(obj) - external_style = style.get_style_elements(obj)["IfcExternallyDefinedSurfaceStyle"] - update_external_style(ifc, style, external_style, attributes) - style.disable_editing_external_style(obj) - - def load_styles(style, style_type=None): style.import_presentation_styles(style_type) style.enable_editing_styles()