Getting and Setting Parameters
The parameters of a node are organized in a tree inside the node. The tree allows better organization of nodes with many parameters, avoids parameter name collisions, and makes it simple to construct more complex re-usable parameter definitions.
The function getParameters()
returns the root parameter of a
node. The children of that root parameter are the top level entries you see in
the Parameters tab. For example, to get the children of the root
parameter on a node enter:
>>> node = NodegraphAPI.GetNode("PrimitiveCreate")
>>> for p in node.getParameters().getChildren():
... print(p)
<Parameter 'name'>
<Parameter 'type'>
<Parameter 'fileName'>
<Parameter 'previewTexture'>
<Parameter 'previewAlpha'>
<Parameter 'enableClippingPlane'>
<Parameter 'reverseClippingDirection'>
<Parameter 'transform'>
<Parameter 'makeInteractive'>
<Parameter 'includeBounds'>
<Parameter 'viewerPickable'>
You can get a complete text dump of all parameters on a node using
getXML()
. For example, to see the XML structure of all the
parameters on a node:
>>> print (node.getParameters().getXML())
<group_parameter name="PrimitiveCreate">
<string_parameter name="name" value="/root/world/geo/primitive"/>
<string_parameter name="type" value="sphere"/>
...
</group_parameter>
- Parameter.getType() str
Returns a string defining the type of this parameter. This string will be one of ‘number’, ‘numberArray’, ‘string’, ‘stringArray’, ‘curve’, ‘group’, ‘opaque’, ‘floatVector’ or ‘scenegraphAttr’.
- Parameter.getFullName(includeNodeName: bool = True) str
Returns the full string name of this parameter, where the parent hierarchy is separated by dots.
- Parameter.getName() str
Returns the string name of this parameter.
- Parameter.setName(newName: str) str
Sets the string name of this parameter. If a sibling parameter is already named
newName
, a numeric index will be added to the end and incremented until a unique name is generated. This unique name will be returned. This method only has an effect on parameters that are children of dynamic groups.
- Parameter.getParent() NodegraphAPI.Parameter
Returns the parent parameter of this parameter, or
None
if this is a top-level parameter.
- Parameter.getIndex() int
Returns the index of this parameter within its parent.
- Parameter.reparentAtomic(parent: NodegraphAPI.Parameter) str
Atomically reparents this parameter to the given
parent
. This should be used in place of sequential calls toremoveChild()
andaddChild()
to avoid excessive XML regeneration. Returns the new path of the child under the new parent.
Getting Values
To return the value of a parameter, use getParameter().getValue()
. For
example, to return the value of the name parameter at time 0, enter the
following:
>>> node.getParameter('name').getValue(0)
- Node3D.getParameter(name: str) Parameter
- Parameters:
name (
str
) – The (dot-delimited full) name of the (nested) parameter to return.- Returns:
A (nested) parameter by (dot-delimited full) name, or
None
if this node does not contain a parameter of the given name.
- Node3D.getParameters() GroupParameter
- Returns:
The top-level group parameter that contains all of this node’s parameters.
- Parameter.getValue(time: float) object
Returns the value of this parameter at the given
time
. This value may be a string, a float or anFCurve
.
Setting Values
Values on a node are set using getParameter().setValue()
. As node behavior
is set by parameters who’s values can change over time, you must specify a
value and a time, when setting a parameter.
For example, to change the type parameter of a PrimitiveCreate node to “teapot”, when time is 10, enter the following:
node.getParameter('type').setValue("teapot", 10)
- Parameter.setValue(value: object, time: float, final: bool = True, sendNotifyMessage: bool = True) None
Sets the value of this parameter at the given time. If this is an interactive value, set
final
toFalse
to avoid sending redundant nodegraph messages.
- Parameter.finalizeValue() None
Hardens the value of tihs parameter after it has been interactively modified. This simply calls through the
sendSignal_finalize
.