mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-17 14:02:27 +00:00
bim.duplicate_style
This commit is contained in:
@@ -30,6 +30,7 @@ classes = (
|
|||||||
operator.DisableAddingPresentationStyle,
|
operator.DisableAddingPresentationStyle,
|
||||||
operator.DisableEditingStyle,
|
operator.DisableEditingStyle,
|
||||||
operator.DisableEditingStyles,
|
operator.DisableEditingStyles,
|
||||||
|
operator.DuplicateStyle,
|
||||||
operator.EditStyle,
|
operator.EditStyle,
|
||||||
operator.EditSurfaceStyle,
|
operator.EditSurfaceStyle,
|
||||||
operator.EnableAddingPresentationStyle,
|
operator.EnableAddingPresentationStyle,
|
||||||
|
|||||||
@@ -493,6 +493,22 @@ class EnableAddingPresentationStyle(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
props.is_adding = True
|
props.is_adding = True
|
||||||
|
|
||||||
|
|
||||||
|
class DuplicateStyle(bpy.types.Operator, tool.Ifc.Operator):
|
||||||
|
bl_idname = "bim.duplicate_style"
|
||||||
|
bl_label = "Duplicate Style"
|
||||||
|
bl_options = {"REGISTER", "UNDO"}
|
||||||
|
|
||||||
|
style: bpy.props.IntProperty(name="Style ID")
|
||||||
|
|
||||||
|
def _execute(self, context):
|
||||||
|
style_type = context.scene.BIMStylesProperties.style_type
|
||||||
|
ifc_file = tool.Ifc.get()
|
||||||
|
style = ifc_file.by_id(self.style)
|
||||||
|
tool.Style.duplicate_style(style)
|
||||||
|
bpy.ops.bim.disable_editing_styles()
|
||||||
|
bpy.ops.bim.load_styles(style_type=style_type)
|
||||||
|
|
||||||
|
|
||||||
class DisableAddingPresentationStyle(bpy.types.Operator, tool.Ifc.Operator):
|
class DisableAddingPresentationStyle(bpy.types.Operator, tool.Ifc.Operator):
|
||||||
bl_idname = "bim.disable_adding_presentation_style"
|
bl_idname = "bim.disable_adding_presentation_style"
|
||||||
bl_label = "Disable Add Presentation Style"
|
bl_label = "Disable Add Presentation Style"
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ class BIM_PT_styles(Panel):
|
|||||||
|
|
||||||
op = row.operator("bim.enable_editing_style", text="Edit Style", icon="GREASEPENCIL")
|
op = row.operator("bim.enable_editing_style", text="Edit Style", icon="GREASEPENCIL")
|
||||||
op.style = style.ifc_definition_id
|
op.style = style.ifc_definition_id
|
||||||
|
row.operator("bim.duplicate_style", text="", icon="DUPLICATE").style = style.ifc_definition_id
|
||||||
row.operator("bim.select_by_style", text="", icon="RESTRICT_SELECT_OFF").style = style.ifc_definition_id
|
row.operator("bim.select_by_style", text="", icon="RESTRICT_SELECT_OFF").style = style.ifc_definition_id
|
||||||
row.operator("bim.remove_style", text="", icon="X").style = style.ifc_definition_id
|
row.operator("bim.remove_style", text="", icon="X").style = style.ifc_definition_id
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
import bpy
|
import bpy
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
import ifcopenshell.util.element
|
||||||
import blenderbim.core.tool
|
import blenderbim.core.tool
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
import blenderbim.bim.helper
|
import blenderbim.bim.helper
|
||||||
@@ -59,6 +60,10 @@ class Style(blenderbim.core.tool.Style):
|
|||||||
def disable_editing_styles(cls):
|
def disable_editing_styles(cls):
|
||||||
bpy.context.scene.BIMStylesProperties.is_editing = False
|
bpy.context.scene.BIMStylesProperties.is_editing = False
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def duplicate_style(cls, style: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance:
|
||||||
|
return ifcopenshell.util.element.copy_deep(tool.Ifc.get(), style)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def enable_editing(cls, obj):
|
def enable_editing(cls, obj):
|
||||||
obj.BIMStyleProperties.is_editing = True
|
obj.BIMStyleProperties.is_editing = True
|
||||||
|
|||||||
Reference in New Issue
Block a user