Nodes and properties
The SDNode class enables users to get information about specific nodes, which properties can be accessed with the SDPropert y class. All of these can be either read of modified.
Available node information include:
definition;
identifier;
position;
properties (as a list);
resources that are being referenced;
Accessing node definitions and properties
import sd # Import the required classes. from sd.api.sdproperty import SDPropertyCategory from sd.api.sdvalueserializer import SDValueSerializer # Get and print information regarding the selected nodes. def printSelectedNodesInfo(nodes): for node in nodes: definition = node.getDefinition() nodeId = node.getIdentifier() print("node %s, id = %s" % (definition.getLabel(), nodeId)) # Create a list of each property category enumeration item. categories = [ SDPropertyCategory.Annotation, SDPropertyCategory.Input, SDPropertyCategory.Output ] # Get node properties for each property category. for category in categories: props = definition.getProperties(category) # Get the label and identifier of each property. for prop in props: label = prop.getLabel() propId = prop.getId() # Get the connection for the currently accessed property. if prop.isConnectable(): connections = node.getPropertyConnections(prop) if connections: print("Propery %s is connected!!!" % label) continue # Get the value for the currently accessed property. value = node.getPropertyValue(prop) if value: print("Property %s, id = %s, value = %s" % (label, propId, SDValueSerializer.sToString(value)))
Accessing node inputs identifiers and types
import sd # Import the required classes. from sd.api import sduimgr from sd.api.sdproperty import * # Access a node in the current graph, and its properties. graph = uiMgr.getCurrentGraph() node = graph.getNodeFromId('<Replace this text with the node ID>') nodeProps = node.getProperties(SDPropertyCategory.Input) # List node identifiers and types in console. for i in range(len(nodeProps)): print(nodeProps[i].getId()) print(nodeProps[i].getType())