mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-10 06:00:51 +00:00
Replace grids/space elements visibility two toggles with one
See - https://i.imgur.com/5GssIDp.png (same for grids)
This commit is contained in:
@@ -127,6 +127,14 @@ def update_spatial_is_locked(self, context):
|
|||||||
tool.Geometry.unlock_object(obj)
|
tool.Geometry.unlock_object(obj)
|
||||||
|
|
||||||
|
|
||||||
|
def update_spatial_is_visible(self: "BIMSpatialDecompositionProperties", context: bpy.types.Context) -> None:
|
||||||
|
bpy.ops.bim.toggle_spatial_elements(is_visible=self.is_visible)
|
||||||
|
|
||||||
|
|
||||||
|
def update_grid_is_visible(self: "BIMGridProperties", context: bpy.types.Context) -> None:
|
||||||
|
bpy.ops.bim.toggle_grids(is_visible=self.is_visible)
|
||||||
|
|
||||||
|
|
||||||
def poll_container_obj(self, obj):
|
def poll_container_obj(self, obj):
|
||||||
return obj is None or tool.Ifc.get_entity(obj)
|
return obj is None or tool.Ifc.get_entity(obj)
|
||||||
|
|
||||||
@@ -174,7 +182,18 @@ class Element(PropertyGroup):
|
|||||||
|
|
||||||
|
|
||||||
class BIMSpatialDecompositionProperties(PropertyGroup):
|
class BIMSpatialDecompositionProperties(PropertyGroup):
|
||||||
is_locked: BoolProperty(name="Is Locked", default=True, update=update_spatial_is_locked)
|
is_locked: BoolProperty(
|
||||||
|
name="Is Locked",
|
||||||
|
description="Prevent all spatial elements from being edited, removed, duplicated",
|
||||||
|
default=True,
|
||||||
|
update=update_spatial_is_locked,
|
||||||
|
)
|
||||||
|
is_visible: BoolProperty(
|
||||||
|
name="Is Visible",
|
||||||
|
description="Show or hide spatial elements, such as buildings, sites, etc",
|
||||||
|
default=True,
|
||||||
|
update=update_spatial_is_visible,
|
||||||
|
)
|
||||||
container_filter: StringProperty(name="Container Filter", default="", options={"TEXTEDIT_UPDATE"})
|
container_filter: StringProperty(name="Container Filter", default="", options={"TEXTEDIT_UPDATE"})
|
||||||
containers: CollectionProperty(name="Containers", type=BIMContainer)
|
containers: CollectionProperty(name="Containers", type=BIMContainer)
|
||||||
contracted_containers: StringProperty(name="Contracted containers", default="[]")
|
contracted_containers: StringProperty(name="Contracted containers", default="[]")
|
||||||
@@ -211,5 +230,16 @@ class BIMSpatialDecompositionProperties(PropertyGroup):
|
|||||||
|
|
||||||
|
|
||||||
class BIMGridProperties(PropertyGroup):
|
class BIMGridProperties(PropertyGroup):
|
||||||
is_locked: BoolProperty(name="Is Locked", default=True, update=update_grid_is_locked)
|
is_locked: BoolProperty(
|
||||||
|
name="Is Locked",
|
||||||
|
description="Prevent all grids and grid axes from being edited, removed, duplicated",
|
||||||
|
default=True,
|
||||||
|
update=update_grid_is_locked,
|
||||||
|
)
|
||||||
|
is_visible: BoolProperty(
|
||||||
|
name="Is Visible",
|
||||||
|
description="Show or hide grids and grid axes",
|
||||||
|
default=True,
|
||||||
|
update=update_grid_is_visible,
|
||||||
|
)
|
||||||
grid_axes: CollectionProperty(name="Grid Axes", type=ObjProperty)
|
grid_axes: CollectionProperty(name="Grid Axes", type=ObjProperty)
|
||||||
|
|||||||
@@ -103,12 +103,13 @@ class BIM_PT_spatial_decomposition(Panel):
|
|||||||
return tool.Ifc.get()
|
return tool.Ifc.get()
|
||||||
|
|
||||||
def draw_header(self, context):
|
def draw_header(self, context):
|
||||||
|
props = context.scene.BIMSpatialDecompositionProperties
|
||||||
row = self.layout.row(align=True)
|
row = self.layout.row(align=True)
|
||||||
row.label(text="") # empty text occupies the left of the row
|
row.label(text="") # empty text occupies the left of the row
|
||||||
row.operator("bim.toggle_spatial_elements", text="", icon="HIDE_OFF").is_visible = True
|
icon = "HIDE_OFF" if props.is_visible else "HIDE_ON"
|
||||||
row.operator("bim.toggle_spatial_elements", text="", icon="HIDE_ON").is_visible = False
|
row.prop(props, "is_visible", text="", icon=icon)
|
||||||
icon = "VIEW_LOCKED" if context.scene.BIMSpatialDecompositionProperties.is_locked else "VIEW_UNLOCKED"
|
icon = "VIEW_LOCKED" if props.is_locked else "VIEW_UNLOCKED"
|
||||||
row.prop(context.scene.BIMSpatialDecompositionProperties, "is_locked", text="", icon=icon)
|
row.prop(props, "is_locked", text="", icon=icon)
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
if not SpatialDecompositionData.is_loaded:
|
if not SpatialDecompositionData.is_loaded:
|
||||||
@@ -218,12 +219,13 @@ class BIM_PT_grids(Panel):
|
|||||||
self.layout.row().operator("mesh.add_grid", icon="ADD", text="Add Grids")
|
self.layout.row().operator("mesh.add_grid", icon="ADD", text="Add Grids")
|
||||||
|
|
||||||
def draw_header(self, context):
|
def draw_header(self, context):
|
||||||
|
props = context.scene.BIMGridProperties
|
||||||
row = self.layout.row(align=True)
|
row = self.layout.row(align=True)
|
||||||
row.label(text="") # empty text occupies the left of the row
|
row.label(text="") # empty text occupies the left of the row
|
||||||
row.operator("bim.toggle_grids", text="", icon="HIDE_OFF").is_visible = True
|
icon = "HIDE_OFF" if props.is_visible else "HIDE_ON"
|
||||||
row.operator("bim.toggle_grids", text="", icon="HIDE_ON").is_visible = False
|
row.prop(props, "is_visible", text="", icon=icon)
|
||||||
icon = "VIEW_LOCKED" if context.scene.BIMGridProperties.is_locked else "VIEW_UNLOCKED"
|
icon = "VIEW_LOCKED" if props.is_locked else "VIEW_UNLOCKED"
|
||||||
row.prop(context.scene.BIMGridProperties, "is_locked", text="", icon=icon)
|
row.prop(props, "is_locked", text="", icon=icon)
|
||||||
|
|
||||||
|
|
||||||
class BIM_UL_containers_manager(UIList):
|
class BIM_UL_containers_manager(UIList):
|
||||||
|
|||||||
Reference in New Issue
Block a user