ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.

概要

isDirty( string... , [connection=boolean], [datablock=boolean])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

isDirty は、取り消し可能、照会不可能、および編集不可能です。

isDirty コマンドは、プラグがダーティかどうかのチェックに使用されます。ダーティでない場合は 0、ダーティな場合は 1 が返されます。複数のフラグが指定されている場合は、すべてのオブジェクトの論理積が返されます。つまり、ダーティなフラグが 1 つでもあれば、1 を返します。

戻り値

booleanプラグはダーティですか? 複数のプラグを指定した場合、ダーティ状態にあるすべての論理和が返されます。

関連

attributeQuery, getClassification, isConnected, nodeType, objExists, objectType

フラグ

connection, datablock
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
connection(c) boolean create
プラグの接続をチェックします(既定)。
datablock(d) boolean create
プラグのデータブロック エントリをチェックします。

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

import maya.cmds as cmds

# Create a plusMinusAverage node and a transform. We set 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.
import maya.cmds as cmds
cmds.createNode('plusMinusAverage', n='pma', skipSelect=True)
cmds.createNode('transform', n='t', skipSelect=True)

# Hide the transform so that Maya's draw won't force an evaluation which
# would clean its plugs.
cmds.hide('t')

# Connect the transform's 'tx' to one of the plusMinusAverage node's
# inputs.
cmds.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.
cmds.setAttr('t.tx', 13)
cmds.isDirty('pma.input1D[0]')
# Result: 1 #

# If we retrieve the value of the destination attribute
# then the connection becomes clean.
cmds.getAttr('pma.input1D[0]')
# Result: 13.0 #
cmds.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:
cmds.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:
cmds.isDirty('pma.output1D', d=True)
# Result: 1 #

# The output value will remain dirty until we
# force its evaluation by retrieving it.
cmds.getAttr('pma.output1D')
# Result: 13.0 #
cmds.isDirty('pma.output1D', d=True)
# Result: 0 #