mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 21:42:19 +00:00
Explorer UI - add is_loaded toggle
This commit is contained in:
@@ -50,6 +50,23 @@ class ExplorerEntity(PropertyGroup):
|
|||||||
|
|
||||||
|
|
||||||
class BIMExplorerProperties(PropertyGroup):
|
class BIMExplorerProperties(PropertyGroup):
|
||||||
|
def update_is_loaded(self, context: object) -> None:
|
||||||
|
if self.is_loaded:
|
||||||
|
# Trigger refresh.
|
||||||
|
self.ifc_class = self.ifc_class
|
||||||
|
else:
|
||||||
|
self.property_unset("is_loaded")
|
||||||
|
self.property_unset("ifc_class")
|
||||||
|
self.entities.clear()
|
||||||
|
self.property_unset("active_entity_index")
|
||||||
|
self.property_unset("editing_entity_id")
|
||||||
|
self.entity_attributes.clear()
|
||||||
|
|
||||||
|
is_loaded: BoolProperty( # pyright: ignore[reportRedeclaration]
|
||||||
|
name="Toggle Explorer UI",
|
||||||
|
update=update_is_loaded,
|
||||||
|
)
|
||||||
|
|
||||||
def get_ifc_class(self, context: object) -> tool.Blender.BLENDER_ENUM_ITEMS:
|
def get_ifc_class(self, context: object) -> tool.Blender.BLENDER_ENUM_ITEMS:
|
||||||
# TODO: Add more entities.
|
# TODO: Add more entities.
|
||||||
classes = [
|
classes = [
|
||||||
@@ -72,6 +89,7 @@ class BIMExplorerProperties(PropertyGroup):
|
|||||||
entity_attributes: CollectionProperty(type=Attribute) # pyright: ignore[reportRedeclaration]
|
entity_attributes: CollectionProperty(type=Attribute) # pyright: ignore[reportRedeclaration]
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
is_loaded: bool
|
||||||
ifc_class: str
|
ifc_class: str
|
||||||
entities: bpy.types.bpy_prop_collection_idprop[ExplorerEntity]
|
entities: bpy.types.bpy_prop_collection_idprop[ExplorerEntity]
|
||||||
active_entity_index: int
|
active_entity_index: int
|
||||||
|
|||||||
@@ -85,11 +85,22 @@ class BIM_PT_explorer(Panel):
|
|||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
assert (layout := self.layout)
|
assert (layout := self.layout)
|
||||||
props = tool.Attribute.get_explorer_props()
|
props = tool.Attribute.get_explorer_props()
|
||||||
|
|
||||||
|
if not props.is_loaded:
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.label(text="Explorer UI is not Loaded.")
|
||||||
|
row.prop(props, "is_loaded", text="", icon="IMPORT")
|
||||||
|
return
|
||||||
|
|
||||||
active_entity = props.active_entity
|
active_entity = props.active_entity
|
||||||
|
|
||||||
layout.prop(props, "ifc_class", text="")
|
row = layout.row(align=True)
|
||||||
|
row.prop(props, "ifc_class", text="")
|
||||||
|
row.prop(props, "is_loaded", text="", icon="CANCEL")
|
||||||
|
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.label(text=f"{len(props.entities)} entities found")
|
row.label(text=f"{len(props.entities)} entities found")
|
||||||
|
row.operator("bim.explorer_add_entity", text="", icon="ADD")
|
||||||
|
|
||||||
if active_entity:
|
if active_entity:
|
||||||
if active_entity.ifc_definition_id == props.editing_entity_id:
|
if active_entity.ifc_definition_id == props.editing_entity_id:
|
||||||
|
|||||||
Reference in New Issue
Block a user