-
Notifications
You must be signed in to change notification settings - Fork 34
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Reproduce
Error Message: TypeError: bpy_struct: item.attr = val: enum "A" not found in ()
I think it will need a socket test for linking
Generate codes
import bpy, mathutils
#initialize geometry_nodes node group
def geometry_nodes_node_group():
geometry_nodes = bpy.data.node_groups.new(type = 'GeometryNodeTree', name = "Geometry Nodes")
geometry_nodes.color_tag = 'NONE'
geometry_nodes.description = ""
geometry_nodes.is_modifier = True
#geometry_nodes interface
#Socket Geometry
geometry_socket = geometry_nodes.interface.new_socket(name = "Geometry", in_out='OUTPUT', socket_type = 'NodeSocketGeometry')
geometry_socket.attribute_domain = 'POINT'
#Socket Geometry
geometry_socket_1 = geometry_nodes.interface.new_socket(name = "Geometry", in_out='INPUT', socket_type = 'NodeSocketGeometry')
geometry_socket_1.attribute_domain = 'POINT'
#Socket Menu
menu_socket = geometry_nodes.interface.new_socket(name = "Menu", in_out='INPUT', socket_type = 'NodeSocketMenu')
menu_socket.default_value = "A"
menu_socket.attribute_domain = 'POINT'
#initialize geometry_nodes nodes
#node Group Input
group_input = geometry_nodes.nodes.new("NodeGroupInput")
group_input.name = "Group Input"
#node Group Output
group_output = geometry_nodes.nodes.new("NodeGroupOutput")
group_output.name = "Group Output"
group_output.is_active_output = True
#node Menu Switch
menu_switch = geometry_nodes.nodes.new("GeometryNodeMenuSwitch")
menu_switch.name = "Menu Switch"
menu_switch.active_index = 1
menu_switch.data_type = 'GEOMETRY'
menu_switch.enum_items.clear()
menu_switch.enum_items.new("A")
menu_switch.enum_items[0].description = ""
menu_switch.enum_items.new("B")
menu_switch.enum_items[1].description = ""
#node Transform Geometry
transform_geometry = geometry_nodes.nodes.new("GeometryNodeTransform")
transform_geometry.name = "Transform Geometry"
transform_geometry.mode = 'COMPONENTS'
#Translation
transform_geometry.inputs[1].default_value = (0.0, 0.0, 0.0)
#Rotation
transform_geometry.inputs[2].default_value = (0.0, 0.0, 0.0)
#Scale
transform_geometry.inputs[3].default_value = (1.0, 1.0, 1.0)
#Set locations
group_input.location = (-348.4444580078125, -20.017568588256836)
group_output.location = (284.4449768066406, -14.679553031921387)
menu_switch.location = (51.776405334472656, -25.382600784301758)
transform_geometry.location = (-119.3329086303711, -149.3565216064453)
#Set dimensions
group_input.width, group_input.height = 140.0, 100.0
group_output.width, group_output.height = 140.0, 100.0
menu_switch.width, menu_switch.height = 140.0, 100.0
transform_geometry.width, transform_geometry.height = 140.0, 100.0
#initialize geometry_nodes links
#group_input.Geometry -> transform_geometry.Geometry
geometry_nodes.links.new(group_input.outputs[0], transform_geometry.inputs[0])
#transform_geometry.Geometry -> menu_switch.B
geometry_nodes.links.new(transform_geometry.outputs[0], menu_switch.inputs[2])
#group_input.Geometry -> menu_switch.A
geometry_nodes.links.new(group_input.outputs[0], menu_switch.inputs[1])
#menu_switch.Output -> group_output.Geometry
geometry_nodes.links.new(menu_switch.outputs[0], group_output.inputs[0])
#group_input.Menu -> menu_switch.Menu
geometry_nodes.links.new(group_input.outputs[1], menu_switch.inputs[0])
return geometry_nodes
geometry_nodes = geometry_nodes_node_group()
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working