addAttr is undoable, queryable, and editable.
      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 defaults to true for writable attributes and false
for non-writable attributes. A warning will be issued if
users attempt to force a writable attribute to be uncached as
this will make it impossible to set keyframes. |  | 
	
	  | -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. |  | 
	
	  | -usedAsFilename(-uaf) |  |    | 
	
	  | 
	      
		|  | Is the attribute to be treated as a filename definition?
This flag is only supported on attributes with data type "-dt" of "string". |  | 
	
	  | -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? |  | 
	
	  | -disconnectBehaviour(-dcb) | uint |    | 
	
	  | 
	      
		|  | defines the Disconnect Behaviour 2 Nothing, 1 Reset, 0 Delete |  | 
	
	  | -keyable(-k) | boolean |    | 
	
	  | 
	      
		|  | Is the attribute keyable by default? |  | 
	
	  | -fromPlugin(-fp) | boolean |    | 
	
	  | 
	      
		|  | Was the attribute originally created by a plugin? Normally set
automatically when the API call is made - only added here to support
storing it in a file independently from the creating plugin. |  | 
	
	  | -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. |  | 
	
	  | -category(-ct) | string |      | 
	
	  | 
	      
		|  | An attribute category is a string associated with the attribute to identify it.
(e.g. the name of a plugin that created the attribute, version information, etc.)
Any attribute can be associated with an arbitrary number of categories however
categories can not be removed once associated. |  | 
	
	  | -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. |  |