diff --git a/src/ifcsverchok/__init__.py b/src/ifcsverchok/__init__.py index 22514f885c..5f44c58ec2 100644 --- a/src/ifcsverchok/__init__.py +++ b/src/ifcsverchok/__init__.py @@ -31,6 +31,7 @@ def nodes_index(): ("ifc.by_guid", "SvIfcByGuid"), ("ifc.by_type", "SvIfcByType"), ("ifc.by_query", "SvIfcByQuery"), + ("ifc.add", "SvIfcAdd"), ("ifc.select_blender_objects", "SvIfcSelectBlenderObjects"), ])] diff --git a/src/ifcsverchok/nodes/ifc/add.py b/src/ifcsverchok/nodes/ifc/add.py new file mode 100644 index 0000000000..fd681cf4f0 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/add.py @@ -0,0 +1,37 @@ +import bpy +import ifcopenshell +import ifcsverchok.helper +from bpy.props import StringProperty +from sverchok.node_tree import SverchCustomTreeNode +from sverchok.data_structure import updateNode + + +class SvIfcAdd(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): + bl_idname = 'SvIfcAdd' + bl_label = 'IFC Add' + file: StringProperty(name='file', update=updateNode) + entity: StringProperty(name='entity', update=updateNode) + + def sv_init(self, context): + self.inputs.new('SvStringsSocket', 'file').prop_name = 'file' + self.inputs.new('SvStringsSocket', 'entity').prop_name = 'entity' + self.outputs.new('SvStringsSocket', 'file') + self.outputs.new('SvStringsSocket', 'entity') + + def process(self): + self.sv_input_names = ['file', 'entity'] + self.file_out = [] + self.entity_out = [] + super().process() + self.outputs['file'].sv_set([self.file_out]) + self.outputs['entity'].sv_set([self.entity_out]) + + def process_ifc(self, file, entity): + self.entity_out.append(file.add(entity)) + self.file_out.append(file) + +def register(): + bpy.utils.register_class(SvIfcAdd) + +def unregister(): + bpy.utils.unregister_class(SvIfcAdd)