Files
IfcOpenShell/src/ifcsverchok/nodes/ifc/select_blender_objects.py
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

59 lines
2.0 KiB
Python
Raw Normal View History

import bpy
import ifcopenshell
import ifcopenshell.util.selector
import ifcsverchok.helper
from bpy.props import StringProperty
from sverchok.node_tree import SverchCustomTreeNode
from sverchok.data_structure import updateNode
2020-10-10 10:21:17 +11:00
class SvIfcSelectBlenderObjectsRefresh(bpy.types.Operator):
bl_idname = "node.sv_ifc_select_blender_objects_refresh"
bl_label = "IFC Select Blender Objects Refresh"
bl_options = {"UNDO"}
idtree: StringProperty(default="")
idname: StringProperty(default="")
def execute(self, context):
node = bpy.data.node_groups[self.idtree].nodes[self.idname]
node.process()
return {"FINISHED"}
class SvIfcSelectBlenderObjects(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore):
bl_idname = "SvIfcSelectBlenderObjects"
bl_label = "IFC Select Blender Objects"
file: StringProperty(name="file", update=updateNode)
query: StringProperty(name="query", update=updateNode)
def sv_init(self, context):
self.inputs.new("SvStringsSocket", "entities").prop_name = "entities"
2020-10-10 10:21:17 +11:00
def draw_buttons(self, context, layout):
self.wrapper_tracked_ui_draw_op(
layout, "node.sv_ifc_select_blender_objects_refresh", icon="FILE_REFRESH", text="Refresh"
)
def process(self):
self.sv_input_names = ["entities"]
self.guids = []
super().process()
for obj in bpy.context.visible_objects:
index = obj.BIMObjectProperties.attributes.find("GlobalId")
if index != -1 and obj.BIMObjectProperties.attributes[index].string_value in self.guids:
obj.select_set(True)
def process_ifc(self, entities):
self.guids.append(entities.GlobalId)
def register():
2020-10-10 10:21:17 +11:00
bpy.utils.register_class(SvIfcSelectBlenderObjectsRefresh)
bpy.utils.register_class(SvIfcSelectBlenderObjects)
2020-11-01 19:24:01 +07:00
def unregister():
bpy.utils.unregister_class(SvIfcSelectBlenderObjects)
2020-10-10 10:21:17 +11:00
bpy.utils.unregister_class(SvIfcSelectBlenderObjectsRefresh)