mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-20 15:08:51 +00:00
set previous active style and context values editing material's style
This commit is contained in:
@@ -728,6 +728,20 @@ class EnableEditingMaterialStyle(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
props.active_material_id = self.material
|
props.active_material_id = self.material
|
||||||
props.editing_material_type = "STYLE"
|
props.editing_material_type = "STYLE"
|
||||||
|
|
||||||
|
# set already applied style and context if possible
|
||||||
|
if not 0 <= props.active_material_index < len(props.materials):
|
||||||
|
return
|
||||||
|
|
||||||
|
material = tool.Ifc.get().by_id(props.materials[props.active_material_index].ifc_definition_id)
|
||||||
|
if not material.HasRepresentation:
|
||||||
|
return
|
||||||
|
|
||||||
|
rep = material.HasRepresentation[0].Representations[0] # IfcStyledRepresentation
|
||||||
|
props.contexts = str(rep.ContextOfItems.id())
|
||||||
|
style = rep.Items[0].Styles[0]
|
||||||
|
if style.Name: # props.styles only has named styles
|
||||||
|
props.styles = str(rep.Items[0].Styles[0].id())
|
||||||
|
|
||||||
|
|
||||||
class EditMaterialStyle(bpy.types.Operator, tool.Ifc.Operator):
|
class EditMaterialStyle(bpy.types.Operator, tool.Ifc.Operator):
|
||||||
bl_idname = "bim.edit_material_style"
|
bl_idname = "bim.edit_material_style"
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ class BIM_PT_materials(Panel):
|
|||||||
|
|
||||||
self.layout.template_list("BIM_UL_materials", "", self.props, "materials", self.props, "active_material_index")
|
self.layout.template_list("BIM_UL_materials", "", self.props, "materials", self.props, "active_material_index")
|
||||||
|
|
||||||
|
# TODO: data.py is not updated on changing active_material_index
|
||||||
|
# so the active material styles go out of sync with the active material
|
||||||
for style in MaterialsData.data["active_styles"]:
|
for style in MaterialsData.data["active_styles"]:
|
||||||
row = self.layout.row(align=True)
|
row = self.layout.row(align=True)
|
||||||
row.label(text="", icon="SHADING_RENDERED")
|
row.label(text="", icon="SHADING_RENDERED")
|
||||||
|
|||||||
Reference in New Issue
Block a user