Go to: Synopsis. Return value. Related.
Flags. MEL
examples.
isDirty [-connection] [-datablock] string...
isDirty is undoable, NOT queryable, and NOT
editable.
The isDirty command is used to check if a plug is dirty. The
return value is 0 if it is not and 1 if it is. If more than one
plug is specified then the result is the logical "or" of all
objects (ie. returns 1 if *any* of the plugs are dirty).
boolean |
Is the plug dirty? If more than one plug is given then it
returns the logical "and" of all dirty states. |
attributeQuery, getClassification, isConnected, nodeType, objExists, objectType
connection, datablock
Long name (short name) |
Argument types |
Properties |
-datablock(-d) |
|
|
|
Check the datablock entry for the plug. |
|
-connection(-c) |
|
|
|
Check the connection of the plug (default). |
|
Flag can appear in Create mode of
command |
Flag can appear in Edit mode of command |
Flag can appear in Query mode of command |
Flag can be used more than once in a
command. |
// Create a plusMinusAverage node and a transform. We use the '-skipSelect'
// flag so that they are not displayed in the Attribute Editor because
// that would force an evaluation and cause the plugs to become clean.
createNode -n pma -skipSelect plusMinusAverage;
createNode -n t -skipSelect transform;
// Hide the transform so that Maya's draw won't force an evaluation which
// would clean its plugs.
hide t;
// Connect the transform's 'tx' to one of the plusMinusAverage node's
// inputs.
connectAttr t.tx pma.input1D[0];
// Set the value of the transform's 'tx' and check that the
// target of the connection has become dirty.
setAttr t.tx 13;
isDirty pma.input1D[0];
// Result: 1 //
// If we retrieve the value of the destination attribute
// then the connection becomes clean.
getAttr pma.input1D[0];
// Result: 13 //
isDirty pma.input1D[0];
// Result: 0 //
// A plusMinusAverage node's 'output1D' attribute depends
// upon the values in its 'input1D' array. Since we haven't
// retrieved its value yet, it should still be dirty. However,
// it seems to be clean:
isDirty pma.output1D;
// Result: 0 //
// The reason for this is that the 'isDirty' command
// by default only checks connections and 'output1D' has
// no connection to be dirty. If we instead check its
// value in the datablock, we get the expected result:
isDirty -d pma.output1D;
// Result: 1 //
// The output value will remain dirty until we
// force its evaluation by retrieving it.
getAttr pma.output1D;
// Result: 13 //
isDirty -d pma.output1D;
// Result: 0 //