This command prints information about the DG in a text-oriented manner. The scope of the information printed is the entire graph if the -all flag is used, the nodes/plugs on the command line if they were specified, and the selection list, in that order. Each plug on a connection will have two pieces of state information displayed together at the end of the line on which they are printed. CLEAN PROPis the normal state for a graph that has been successfully evaluated. It indicates that the plug value in the node’s datablock is correct and that any successive changes to it (or values upstream from it) are propagated to all plugs depending on it (e.g. downstream connections or “affected” outputs).DIRTY BLOCKis the normal state for a plug whose upstream values have changed but no evaluation request has come through for that plug’s value. The DIRTYpart indicates that the current value of the plug held in the datablock may or may not be correct, depending on how the upstream values affect it. Requesting it directly via a getAttrcommand or indirectly via a request for values downstream of it will trigger a DG evaluation of all upstream plugs. The BLOCKpart is an optimization that prevents excessive dirty flag propagation when many values are changing e.g. a frame change in an animated sequece. It means that any changes to values upstream from this plug will not send any further dirty messages to downstream/affected plugs.DIRTY PROPis a less common but still valid state for a plug whose upstream values have changed but no evaluation request has come through for that plug’s value. Like the DIRTY BLOCKstate it will trigger an evaluaton when it’s value is requested. Where it differs is that when another change comes through from an upstream plug this plug will (again) propagate the dirty message to all downstream/affected plugs. You will only see this state when the DG was not certain that all downstream plugs were notified of their dirty status the last time this plug was marked dirty itself (e.g. if the dirty propagation was intercepted by a node or the graph connections changed since the last dirty message).CLEAN BLOCKshould never be seen in a valid DG. This indicates that while the value of the plug is clean (i.e. valid) it will not propagate a dirty state when its value changes. That means downstream nodes will not be notified that the graph is changing and they will not evaluate properly. Recovering from this invalid state requires entering the command dgdirty -ato mark everything dirty and restart proper evaluation. (Think of this command as the CTL-ALT-DELof the DG world.)
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
allNodes (all) | bool | ||
|
|||
connections (c) | bool | ||
|
|||
dirty (d) | bool | ||
|
|||
island (island) | bool | ||
Print detailed debug information about the island for each node. Note that this flag will typically generate a large amount of debug information, so it is recommended that the list of nodes passed to the command be brief when using the islandDetail flag. The information includes the full list of nodes in the island, as well as all islands connected to the island. |
|||
nodes (n) | bool | ||
|
|||
nonDeletable (nd) | bool | ||
|
|||
outputFile (of) | unicode | ||
|
|||
propagation (p) | bool | ||
|
|||
short (s) | bool | ||
|
|||
size (sz) | bool | ||
|
|||
subgraph (sub) | bool | ||
|
|||
type (nt) | unicode | ||
|
Derived from mel command maya.cmds.dgInfo
Example:
import pymel.core as pm
# create a node
pm.createNode('transform',name='NODE')
# Result: nt.Transform(u'NODE') #
pm.setKeyframe('NODE.translate')
# Result: 3 #
# Print all things connected to node NODE
pm.dgInfo( 'NODE', c=True )
# Print all connections currently in the graph
pm.dgInfo( c=True, all=True )
# Print the datablock size of all nodes currently in the graph
pm.dgInfo( sz=True, all=True )
# Result: [281, 281, 38264] #
# Return: [12, 12, 12314]
# Print all connections to attribute tx on node NODE
pm.dgInfo('NODE.tx',c=True)
# Print all dirty connections in the entire graph
pm.dgInfo( c=True, all=True, d=True )