mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 19:12:31 +00:00
add feature to toggle wireframe visibility for linked models - no testcases
This commit is contained in:
@@ -28,6 +28,7 @@ classes = (
|
|||||||
operator.UnlinkIfc,
|
operator.UnlinkIfc,
|
||||||
operator.UnloadLink,
|
operator.UnloadLink,
|
||||||
operator.LoadLink,
|
operator.LoadLink,
|
||||||
|
operator.ToggleLinkVisibility,
|
||||||
operator.SelectLibraryFile,
|
operator.SelectLibraryFile,
|
||||||
operator.ChangeLibraryElement,
|
operator.ChangeLibraryElement,
|
||||||
operator.RefreshLibrary,
|
operator.RefreshLibrary,
|
||||||
|
|||||||
@@ -685,10 +685,31 @@ class LoadLink(bpy.types.Operator):
|
|||||||
continue
|
continue
|
||||||
bpy.data.scenes[0].collection.children.link(child)
|
bpy.data.scenes[0].collection.children.link(child)
|
||||||
link = context.scene.BIMProjectProperties.links.get(filepath)
|
link = context.scene.BIMProjectProperties.links.get(filepath)
|
||||||
|
link.collection_name = child.name
|
||||||
link.is_loaded = True
|
link.is_loaded = True
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleLinkVisibility(bpy.types.Operator):
|
||||||
|
bl_idname = "bim.toggle_link_visibility"
|
||||||
|
bl_label = "Toggle Link Visibility"
|
||||||
|
bl_options = {"REGISTER", "UNDO"}
|
||||||
|
bl_description = "Toggle visibility between SOLID and WIREFRAME"
|
||||||
|
collection_name: bpy.props.StringProperty()
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
collection_name = self.collection_name
|
||||||
|
objs = filter(lambda obj: "IfcOpeningElement" not in obj.name, bpy.data.collections[collection_name].all_objects)
|
||||||
|
for i,obj in enumerate(objs):
|
||||||
|
if i == 0:
|
||||||
|
if obj.display_type == "WIRE":
|
||||||
|
display_type = "TEXTURED"
|
||||||
|
else:
|
||||||
|
display_type = "WIRE"
|
||||||
|
obj.display_type = display_type
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
class ExportIFC(bpy.types.Operator):
|
class ExportIFC(bpy.types.Operator):
|
||||||
bl_idname = "export_ifc.bim"
|
bl_idname = "export_ifc.bim"
|
||||||
bl_label = "Export IFC"
|
bl_label = "Export IFC"
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ class FilterCategory(PropertyGroup):
|
|||||||
|
|
||||||
class Link(PropertyGroup):
|
class Link(PropertyGroup):
|
||||||
name: StringProperty(name="Name")
|
name: StringProperty(name="Name")
|
||||||
|
collection_name: StringProperty(name="Collection Name")
|
||||||
is_loaded: BoolProperty(name="Is Loaded", default=False)
|
is_loaded: BoolProperty(name="Is Loaded", default=False)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -286,6 +286,8 @@ class BIM_UL_links(UIList):
|
|||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
if item.is_loaded:
|
if item.is_loaded:
|
||||||
row.label(text=item.name)
|
row.label(text=item.name)
|
||||||
|
op = row.operator("bim.toggle_link_visibility", text="", icon="HIDE_OFF")
|
||||||
|
op.collection_name = item.collection_name
|
||||||
op = row.operator("bim.unload_link", text="", icon="UNLINKED")
|
op = row.operator("bim.unload_link", text="", icon="UNLINKED")
|
||||||
op.filepath = item.name
|
op.filepath = item.name
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user