addAttr is undoable, queryable, and editable.
This command is used to add a dynamic attribute to a node or nodes.
Either the longName or the shortName or both must be specified. If
neither a dataType nor an attributeType is specified, a double
attribute will be added. The dataType flag can be specified more
than once indicating that any of the supplied types will be
accepted (logical-or). To add a non-double attribute the following
criteria can be used to determine whether the dataType or the
attributeType flag is appropriate. Some types, such as
Type of attribute |
Flag and argument to use |
boolean |
-at bool |
32 bit integer |
-at long |
16 bit integer |
-at short |
8 bit integer |
-at byte |
char |
-at char |
enum |
-at enum (specify the enum names using the enumName flag) |
float |
-at "float" (use quotes since float is a mel keyword) |
double |
-at double |
angle value |
-at doubleAngle |
linear value |
-at doubleLinear |
string |
-dt "string" (use quotes since string is a mel keyword) |
array of strings |
-dt stringArray |
compound |
-at compound |
message (no data) |
-at message |
time |
-at time |
4x4 double matrix |
-dt "matrix" (use quotes since matrix is a mel keyword) |
4x4 float matrix |
-at fltMatrix |
reflectance |
-dt reflectanceRGB |
reflectance (compound) |
-at reflectance |
spectrum |
-dt spectrumRGB |
spectrum (compound) |
-at spectrum |
2 floats |
-dt float2 |
2 floats (compound) |
-at float2 |
3 floats |
-dt float3 |
3 floats (compound) |
-at float3 |
2 doubles |
-dt double2 |
2 doubles (compound) |
-at double2 |
3 doubles |
-dt double3 |
3 doubles (compound) |
-at double3 |
2 32-bit integers |
-dt long2 |
2 32-bit integers (compound) |
-at long2 |
3 32-bit integers |
-dt long3 |
3 32-bit integers (compound) |
-at long3 |
2 16-bit integers |
-dt short2 |
2 16-bit integers (compound) |
-at short2 |
3 16-bit integers |
-dt short3 |
3 16-bit integers (compound) |
-at short3 |
array of doubles |
-dt doubleArray |
array of 32-bit ints |
-dt Int32Array |
array of vectors |
-dt vectorArray |
nurbs curve |
-dt nurbsCurve |
nurbs surface |
-dt nurbsSurface |
polygonal mesh |
-dt mesh |
lattice |
-dt lattice |
array of double 4D points |
-dt pointArray |
In query mode, return type is based on queried flag.
Long name (short name) |
Argument types |
Properties |
-longName(-ln) |
string |
|
|
Sets the long name of the attribute. |
|
-shortName(-sn) |
string |
|
|
Sets the short name of the attribute. |
|
-niceName(-nn) |
string |
|
|
Sets the nice name of the attribute for display in the UI.
Setting the attribute's nice name to a non-empty string overrides
the default behaviour of looking up the nice name from Maya's
string catalog. (Use the MEL commands "attributeNiceName" and
"attributeQuery -niceName" to lookup an attribute's nice name in
the catalog.) |
|
-binaryTag(-bt) |
string |
|
|
This flag is obsolete and does not do anything any more |
|
-attributeType(-at) |
string |
|
|
Specifies the attribute type, see above table for more details.
Note that the attribute types "float", "matrix" and "string" are
also MEL keywords and must be enclosed in quotes. |
|
-dataType(-dt) |
string |
|
|
Specifies the data type. See "setAttr" for more information on
data type names. |
|
-defaultValue(-dv) |
float |
|
|
Specifies the default value for the attribute (can only be used
for numeric attributes). |
|
-multi(-m) |
|
|
|
Makes the new attribute a multi-attribute. |
|
-indexMatters(-im) |
boolean |
|
|
Sets whether an index must be used when connecting to this
multi-attribute. Setting indexMatters to false forces the attribute
to non-readable. |
|
-minValue(-min) |
float |
|
|
Specifies the minimum value for the attribute (can only be used
for numeric attributes). |
|
-hasMinValue(-hnv) |
boolean |
|
|
Flag indicating whether an attribute has a minimum value. (can
only be used for numeric attributes). |
|
-maxValue(-max) |
float |
|
|
Specifies the maximum value for the attribute (can only be used
for numeric attributes). |
|
-hasMaxValue(-hxv) |
boolean |
|
|
Flag indicating whether an attribute has a maximum value. (can
only be used for numeric attributes). |
|
-cachedInternally(-ci) |
boolean |
|
|
Whether or not attribute data is cached internally in the node.
This flag is currently not supported (it will always be set to a
default value of true). |
|
-internalSet(-is) |
boolean |
|
|
Whether or not the internal cached value is set when this
attribute value is changed. This is an internal flag used for
updating UI elements. |
|
-parent(-p) |
string |
|
|
Attribute that is to be the new attribute's parent. |
|
-numberOfChildren(-nc) |
uint |
|
|
How many children will the new attribute have? |
|
-usedAsColor(-uac) |
|
|
|
Is the attribute to be used as a color definition? Must have 3
DOUBLE or 3 FLOAT children to use this flag. The attribute type
"-at" should be "double3" or "float3" as appropriate. It can also
be used to less effect with data types "-dt" as "double3" or
"float3" as well but some parts of the code do not support this
alternative. The special attribute types/data "spectrum" and
"reflectance" also support the color flag and on them it is set by
default. |
|
-hidden(-h) |
boolean |
|
|
Will this attribute be hidden from the UI? |
|
-readable(-r) |
boolean |
|
|
Can outgoing connections be made from this attribute? |
|
-writable(-w) |
boolean |
|
|
Can incoming connections be made to this attribute? |
|
-storable(-s) |
boolean |
|
|
Can the attribute be stored out to a file? |
|
-keyable(-k) |
boolean |
|
|
Is the attribute keyable by default? |
|
-softMinValue(-smn) |
float |
|
|
Soft minimum, valid for numeric attributes only. Specifies the
upper default limit used in sliders for this attribute. |
|
-hasSoftMinValue(-hsn) |
boolean |
|
|
Flag indicating whether a numeric attribute has a soft
minimum. |
|
-softMaxValue(-smx) |
float |
|
|
Soft maximum, valid for numeric attributes only. Specifies the
upper default limit used in sliders for this attribute. |
|
-hasSoftMaxValue(-hsx) |
boolean |
|
|
Flag indicating whether a numeric attribute has a soft
maximum. |
|
-enumName(-en) |
string |
|
|
Flag used to specify the ui names corresponding to the enum
values. The specified string should contain a colon-separated list
of the names, with optional values. If values are not specified,
they will treated as sequential integers starting with 0. For
example: -enumName "A:B:C" would produce options: A,B,C with values
of 0,1,2; -enumName "zero:one:two:thousand=1000" would produce four
options with values 0,1,2,1000; and -enumName
"solo=1:triplet=3:quintet=5" would produce three options with
values 1,3,5. (Note that there is a current limitation of the
Channel Box that will sometimes incorrectly display an enumerated
attribute's pull-down menu. Extra menu items can appear that
represent the numbers inbetween non-sequential option values. To
avoid this limitation, specify sequential values for the options of
any enumerated attributes that will appear in the Channel Box. For
example: "solo=1:triplet=2:quintet=3".) |
|
-exists(-ex) |
|
|
|
Returns true if the attribute queried is a user-added, dynamic
attribute; false if not. |
|