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
This commit is contained in:
Andrej730
2023-12-12 16:07:15 +05:00
parent 7246e75085
commit b310b5aaba
5 changed files with 5 additions and 139 deletions
@@ -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,
)
@@ -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
@@ -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"
@@ -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:
-17
View File
@@ -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()