Common Operations

Node Graphs

Create a node

import GafferScene
node = GafferScene.Sphere()
root.addChild( node )

Rename a node

node.setName( "newName" )

Get a plug value

value = node["plugName"].getValue()

Set a plug value

node["plugName"].setValue( value )

Make a connection

destinationNode["destinationPlugName"].setInput( sourceNode["sourceNode"] )

Break a connection

node["plugName"].setInput( None )

Get a node by name

node = root["nodeName"]

Loop over all nodes

for node in root.children( Gaffer.Node ) :
    ...

Get the current filename

root["fileName"].getValue()

Serialize the node graph to file

root.serialiseToFile( "/path/to/file.gfr" )

Query a script variable

root.context()["project:rootDirectory"]

Select a node

root.selection().clear()
root.selection().add( root["nodeName"] )

Get the frame range

start = root['frameRange']['start'].getValue()
end = root['frameRange']['end'].getValue()

Set the current frame

root.context().setFrame( frame )

Metadata

Register a value for a plug/node

Gaffer.Metadata.registerValue( plug, "name", value )
Gaffer.Metadata.registerValue( node, "name", value )

Query a value for a plug/node

Gaffer.Metadata.value( plug, "name" )
Gaffer.Metadata.value( node, "name" )

Scenes

Get an option

g = node["out"]["globals"].getValue()
o = g["option:render:camera"].value

Get an object at a location

o = node["out"].object( "/path/to/location" )

Get the local transform at a location

matrix = node["out"].transform( "/path/to/location" )

Get the full (world) transform at a location

node["out"].fullTransform( "/path/to/location" )

Get the local bounding box of a location

bound = node["out"].bound( "/path/to/location" )

Get the local attributes of a location

attributes = node["out"].attributes( "/path/to/location" )
attribute = attributes["name"].value

Get the full (inherited + local) attributes of a location

attributes = node["out"].fullAttributes( "/path/to/location" )
attribute = attributes["name"].value

Recurse through the scene hierarchy

def visit( scene, path ) :

    for childName in scene.childNames( path ) :
        visit( scene, os.path.join( path, str( childName )  ) )

visit( node["out"], "/" )