mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 06:21:40 +00:00
Styles UI - support renaming styles by double click
Example - https://imgur.com/a/X7WBllz
This commit is contained in:
@@ -51,8 +51,13 @@ def get_reflectance_methods(self, context):
|
|||||||
return StylesData.data["reflectance_methods"]
|
return StylesData.data["reflectance_methods"]
|
||||||
|
|
||||||
|
|
||||||
|
def update_style_name(self: "Style", context: bpy.types.Context) -> None:
|
||||||
|
style = tool.Ifc.get().by_id(self.ifc_definition_id)
|
||||||
|
tool.Style.rename_style(style, self.name)
|
||||||
|
|
||||||
|
|
||||||
class Style(PropertyGroup):
|
class Style(PropertyGroup):
|
||||||
name: StringProperty(name="Name")
|
name: StringProperty(name="Name", update=update_style_name)
|
||||||
ifc_definition_id: IntProperty(name="IFC Definition ID")
|
ifc_definition_id: IntProperty(name="IFC Definition ID")
|
||||||
total_elements: IntProperty(name="Total Elements")
|
total_elements: IntProperty(name="Total Elements")
|
||||||
style_classes: CollectionProperty(name="Style Classes", type=StrProperty)
|
style_classes: CollectionProperty(name="Style Classes", type=StrProperty)
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ class BIM_UL_styles(UIList):
|
|||||||
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
||||||
if item:
|
if item:
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.label(text=item.name)
|
row.prop(item, "name", text="", emboss=False)
|
||||||
if item.has_surface_colour:
|
if item.has_surface_colour:
|
||||||
row = row.row(align=True)
|
row = row.row(align=True)
|
||||||
row.enabled = False
|
row.enabled = False
|
||||||
|
|||||||
@@ -663,3 +663,10 @@ class Style(blenderbim.core.tool.Style):
|
|||||||
tool.Loader.create_surface_style_with_textures(blender_material, rendering_style, texture_style)
|
tool.Loader.create_surface_style_with_textures(blender_material, rendering_style, texture_style)
|
||||||
else:
|
else:
|
||||||
assert_never(style_type)
|
assert_never(style_type)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def rename_style(cls, style: ifcopenshell.entity_instance, name: str) -> None:
|
||||||
|
"""Rename style and related blender material."""
|
||||||
|
blender_material = tool.Ifc.get_object(style)
|
||||||
|
# Will implicitly update the style name using handler.
|
||||||
|
blender_material.name = name
|
||||||
|
|||||||
Reference in New Issue
Block a user