Attribute class
see pymel docs for details on usage
Returns the array (multi) attribute of the current element:
>>> n = Attribute(u'initialShadingGroup.groupNodes[0]')
>>> n.isElement()
True
>>> n.array()
Attribute(u'initialShadingGroup.groupNodes')
This method will raise an error for attributes which are not elements of an array:
>>> m = Attribute(u'initialShadingGroup.groupNodes')
>>> m.isElement()
False
>>> m.array()
Traceback (most recent call last):
...
TypeError: initialShadingGroup.groupNodes is not an array (multi) attribute
Return type: | Attribute |
---|
Just the name of the attribute for this plug
This will have no indices, no parent attributes, etc... This is suitable for use with cmds.attributeQuery
>>> at = SCENE.persp.instObjGroups.objectGroups
>>> at.name()
u'persp.instObjGroups[-1].objectGroups'
>>> at.attrName()
u'og'
>>> at.attrName(longName=True)
u'objectGroups'
Connect the attributes of two dependency nodes and return the names of the two connected attributes. The connected attributes must be be of compatible types. First argument is the source attribute, second one is the destination. Refer to dependency node documentation.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
force (f) | bool | ||
|
|||
lock (l) | bool | ||
If the argument is true, the destination attribute is locked after making the connection. If the argument is false, the connection is unlocked before making the connection. |
|||
nextAvailable (na) | bool | ||
If the destination multi-attribute has set the indexMatters to be false with this flag specified, a connection is made to the next available index. No index need be specified. |
|||
referenceDest (rd) | unicode | ||
This flag is used for file io only. The flag indicates that the connection replaces a connection made in a referenced file, and the flag argument indicates the original destination from the referenced file. This flag is used so that if the reference file is modified, maya can still attempt to make the appropriate connections in the main scene to the referenced object.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
Derived from mel command maya.cmds.connectAttr
Example:
import pymel.core as pm
import maya.cmds as cmds
pm.createNode( 'transform', n='firstGuy' )
# Result: nt.Transform(u'firstGuy') #
pm.createNode( 'transform', n='secondGuy' )
# Result: nt.Transform(u'secondGuy') #
# Connect the translation of two nodes together
pm.connectAttr( 'firstGuy.t', 'secondGuy.translate' )
# Connect the rotation of one node to the override colour
# of a second node.
pm.connectAttr( 'firstGuy.rotate', 'secondGuy.overrideColor' )
deleteAttr
Disconnects two connected attributes. First argument is the source attribute, second is the destination.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
nextAvailable (na) | bool | ||
If the destination multi-attribute has set the indexMatters to be false, the command will disconnect the first matching connection. No index needs to be specified.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
Derived from mel command maya.cmds.disconnectAttr
Example:
import pymel.core as pm
import maya.cmds as cmds
# Create a sphere and cone and connect their rotate attribute.
#
sph = pm.sphere()
con = pm.cone()
sphereR = '%s.r' % sph[0]
coneR = '%s.r' % con[0]
pm.connectAttr(sphereR, coneR)
# Break the connection between the rotate attributes.
#
pm.disconnectAttr(sphereR, coneR)
This method will find and return a plug with the given logical index. The logical index is the sparse array index used in MEL scripts. If a plug does not exist at the given Index, Maya will create a plug at that index. This is not the case with elementByPhysicalIndex() . If needed, elementByLogicalIndex can be used to expand an array plug on a node. It is important to note that Maya assumes that all such plugs serve a purpose and it will not free non-networked plugs that result from such an array expansion.
Parameters : |
|
---|---|
Return type: |
Derived from api method maya.OpenMaya.MPlug.elementByLogicalIndex
This method will find and return a plug with the given physical index. The index can range from 0 to numElements() - 1. This function is particularly useful for iteration through the element plugs of an array plug. It is equivalent to operator [] (int) This method is only valid for array plugs.
Parameters : |
|
---|---|
Return type: |
Derived from api method maya.OpenMaya.MPlug.elementByPhysicalIndex
listAttr -multi
Return a list of strings representing all the attributes in the array.
If you don’t need actual strings, it is recommended that you simply iterate through the elements in the array. See Attribute.__iter__.
Return the total number of elements in the datablock of this array plug. The return count will include both connected and non-connected elements, and will perform an evaluate in order to make sure that the datablock is as up-to-date as possible since some nodes do not place array elements into the datablock until the attribute is evaluated.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.evaluateNumElements
Whether the attribute actually exists.
In spirit, similar to ‘attributeQuery -exists’... ...however, also handles multi (array) attribute elements, such as plusMinusAverage.input1D[2]
Return type: | bool |
---|
The function ‘pymel.core.general.Attribute.firstParent’ is deprecated and will become unavailable in future pymel versions. use Attribute.getParent instead
deprecated: use getParent instead
This command returns the value of the named object’s attribute. UI units are used where applicable. Currently, the types of attributes that can be displayed are: numeric attributesstring attributesmatrix attributesnumeric compound attributes (whose children are all numeric)vector array attributesdouble array attributesint32 array attributespoint array attributesdata component list attributesOther data types cannot be retrieved. No result is returned if the attribute contains no data.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
asString (asString) | bool | ||
This flag is only valid for enum attributes. It allows you to get the attribute values as strings instead of integer values. Note that the returned string value is dependent on the UI language Maya is running in (about -uiLanguage). |
|||
asURI (au) | bool | ||
|
|||
caching (ca) | bool | ||
|
|||
channelBox (cb) | bool | ||
|
|
|||
keyable (k) | bool | ||
|
|||
lock (l) | bool | ||
|
|||
multiIndices (mi) | bool | ||
If the attribute is a multi, this will return a list containing all of the valid indices for the attribute.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
|||
settable (se) | bool | ||
Returns 1 if this attribute is currently settable by setAttr, 0 otherwise. An attribute is settable if it’s not locked and either not connected, or has only keyframed animation. |
|||
silent (sl) | bool | ||
When evaluating an attribute that is not a numeric or string value, suppress the error message saying that the data cannot be displayed. The attribute will be evaluated even though its data cannot be displayed. This flag does not suppress all error messages, only those that are benign. |
|||
size (s) | bool | ||
|
|||
time (t) | time | ||
|
|||
type (typ) | bool | ||
|
Derived from mel command maya.cmds.getAttr
Example:
import pymel.core as pm
import maya.cmds as cmds
pm.createNode( 'revolve', n='gravityWell' )
# Result: nt.Revolve(u'gravityWell') #
pm.sphere( n='loxTank' )
# Result: [nt.Transform(u'loxTank'), nt.MakeNurbSphere(u'makeNurbSphere1')] #
pm.cone( n='noseCone' )
# Result: [nt.Transform(u'noseCone'), nt.MakeNurbCone(u'makeNurbCone1')] #
pm.cone( n='fin' )
# Result: [nt.Transform(u'fin'), nt.MakeNurbCone(u'makeNurbCone2')] #
pm.pointConstraint( 'fin', 'noseCone', n='weld' )
# Result: nt.PointConstraint(u'weld') #
angle = pm.getAttr('gravityWell.esw')
type = pm.getAttr('loxTank.translate',type=True)
lock = pm.getAttr('noseCone.translateX',lock=True)
finZ = pm.getAttr('fin.translateZ',time=12)
size = pm.getAttr('weld.target',size=True)
size = pm.getAttr('weld.target',settable=True)
matrix = pm.getAttr('loxTank.matrix')
pm.createNode('file',n='file1')
# Result: nt.File(u'file1') #
pm.setAttr( 'file1.ftn', '$TMPDIR/smile.gif',type='string' )
s = pm.getAttr('file1.ftn')
s = pm.getAttr('file1.ftn',x=True)
s = pm.getAttr('file1.ftn',x=True,asURI=True)
# Get the list of all used indices on a multi attribute
pm.getAttr('initialShadingGroup.dagSetMembers', multiIndices=True)
# Result: [0, 1, 2] #
Returns the alias for this attribute, or None.
The alias of the attribute is set through Attribute.setAlias, or the aliasAttr command.
Return a list of all parents above this.
Starts from the parent immediately above, going up.
Return type: | Attribute list |
---|
Get all set or connected array indices. Raises an error if this is not an array Attribute
Return type: | int list |
---|
Return type: | util.enum.EnumDict |
---|
>>> addAttr( "persp", ln='numbers', at='enum', enumName="zero:one:two:thousand=1000:three")
>>> numbers = Attribute('persp.numbers').getEnums()
>>> sorted(numbers.items())
[(u'one', 1), (u'thousand', 1000), (u'three', 1001), (u'two', 2), (u'zero', 0)]
>>> numbers[1]
u'one'
>>> numbers['thousand']
1000
attributeQuery -max Returns None if max does not exist.
Return type: | float |
---|
attributeQuery -min Returns None if min does not exist.
Return type: | float |
---|
Return the total number of elements in the datablock of this array plug. The return count will include all existing non-connected elements plus connected elements if they have been evaluated. It will not include connected elements that have not yet been placed into the datablock. The method MPlug::evaluateNumElements can be used in the sitution where you want an accurate count that includes all connected elements.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.numElements
added optional generations keyword arg, which gives the number of levels up that you wish to go for the parent
Negative values will traverse from the top.
A value of 0 will return the same node. The default value is 1.
If generations is None, it will be interpreted as ‘return all parents’, and a list will be returned.
Since the original command returned None if there is no parent, to sync with this behavior, None will be returned if generations is out of bounds (no IndexError will be thrown).
added optional arrays keyword arg, which if True, will also traverse from an array element to an array plug
Return type: | Attribute |
---|
attributeQuery -range returns a two-element list containing min and max. if the attribute does not have
a softMin or softMax the corresponding element will be set to None.
Return type: | float |
---|
attributeQuery -softMax Returns None if softMax does not exist.
Return type: | float |
---|
attributeQuery -softMin Returns None if softMin does not exist.
Return type: | float |
---|
attributeQuery -softRange returns a two-element list containing softMin and softMax. if the attribute does not have
a softMin or softMax the corresponding element in the list will be set to None.
Return type: | [float, float] |
---|
Returns the logical index of the element this plug refers to. The logical index is a sparse index, equivalent to the array index used in MEL.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.logicalIndex
This method returns a string containing the name of the node this plug belongs to and the attributes that the plug refers to. The string is of the form dependNode:atr1.atr2[].attr3 ...
Return type: | unicode |
---|
Derived from api method maya.OpenMaya.MPlug.info
listConnections -source 1 -destination 0
see Attribute.connections for the full ist of flags.
Return type: | PyNode list |
---|
connect the passed node.outAttr to this attribute and reconnect any pre-existing connection into node.inAttr. if there is no pre-existing connection, this method works just like connectAttr.
for example, for two nodes with the connection:
a.out-->b.in
running this command:
b.insertInput( 'c', 'out', 'in' )
causes the new connection order (assuming ‘c’ is a node with ‘in’ and ‘out’ attributes):
a.out-->c.in
c.out-->b.in
This method determines if the plug is an array plug. Array plugs refer to array attributes and contain element plugs.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isArray
Returns true if this plug or its attribute has its caching flag set.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isCachingFlagSet
This method determines if the plug is a child plug. A child plug’s parent is always a compound plug.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isChild
This method determines if the plug is a compound plug. Compound plugs refer to compound attributes and have child plugs.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isCompound
attributeQuery -connectable
Return type: | bool |
---|
Determines if this plug is connected to one or more plugs.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isConnected
Determine if the attribute is connected to the passed attribute.
If checkLocalArray is True and the current attribute is a multi/array, the current attribute’s elements will also be tested.
If checkOtherArray is True and the passed attribute is a multi/array, the passed attribute’s elements will also be tested.
If checkLocalArray and checkOtherArray are used together then all element combinations will be tested.
Determines if this plug is connected as a destination.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isDestination
Return type: | bool |
---|
Determines whether the attribute is of dynamic type or not.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isDynamic
This method determines if the plug is an element plug. Element plugs refer to array attributes and are members of array plugs.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isElement
Returns true if the plug’s value is allowed to be set directly. A plug isFreeToChange if it is not locked, and it is not a destination or if it is a destination, then it must be a special case (such as connected to an anim curve).
Parameters : |
|
---|---|
Return type: |
Derived from api method maya.OpenMaya.MPlug.isFreeToChange
This method determines whether this plug came from a referenced file. A plug is considered to have come from a referenced file if it is connected and that connection was made within a referenced file.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isFromReferencedFile
attributeQuery -hidden
Return type: | bool |
---|
Determines whether a connection to the attribute should be ignored during rendering.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isIgnoredWhenRendering
Returns true if this plug or its attribute has its channel box flag set. Attributes will appear in the channel box if their channel box flag is set or if they are keyable.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isChannelBoxFlagSet
Determines if this plug is keyable. The default keyability of a plug is determined by its attribute, and can be retrieved using MFnAttribute::isKeyable . Keyable plugs will be keyed by AutoKey and the Set Keyframe UI. Non-keyable plugs prevent the user from setting keys via the obvious UI provided for keying. Being non-keyable is not a hard block against adding keys to an attribute.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isKeyable
Determines the locked state of this plug’s value. A plug’s locked state determines whether or not the plug’s value can be changed.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isLocked
This method determines if the plug is an array plug. Array plugs refer to array attributes and contain element plugs.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isArray
This method determines if the plug is networked or non-networked.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isNetworked
This method determines whether this plug is valid. A plug is valid if it refers to an attribute.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isNull
This method determines if the plug is a procedural plug. A procedural plug is one which is created by Maya’s internal procedures or by the nodes themselves and which should not be saved to or restored from files.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isProcedural
getAttr -settable
Return type: | bool |
---|
Determines if this plug is connected as a source.
Return type: | bool |
---|
Derived from api method maya.OpenMaya.MPlug.isSource
attributeQuery -usedAsColor
Returns the logical index of the element this plug refers to. The logical index is a sparse index, equivalent to the array index used in MEL.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.logicalIndex
>>> from pymel.core import *
>>> at = SCENE.persp.t.tx
>>> at.lastPlugAttr(longName=False)
u'tx'
>>> at.lastPlugAttr(longName=True)
u'translateX'
Return type: | unicode |
---|
setAttr -locked 1
Returns the logical index of the element this plug refers to. The logical index is a sparse index, equivalent to the array index used in MEL.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.logicalIndex
>>> from pymel.core import *
>>> at = SCENE.persp.t.tx
>>> at.longName(fullPath=False)
u'translateX'
>>> at.longName(fullPath=True)
u'translate.translateX'
Return type: | unicode |
---|
Returns the name of the attribute (plug)
>>> tx = SCENE.persp.t.tx
>>> tx.name()
u'persp.translateX'
>>> tx.name(includeNode=False)
u'translateX'
>>> tx.name(longName=False)
u'persp.tx'
>>> tx.name(fullAttrPath=True, includeNode=False)
u'translate.translateX'
>>> vis = SCENE.perspShape.visibility
>>> vis.name()
u'perspShape.visibility'
>>> vis.name(fullDagPath=True)
u'perspShape.visibility'
>>> og = SCENE.persp.instObjGroups.objectGroups
>>> og.name()
u'persp.instObjGroups[-1].objectGroups'
>>> og.name(placeHolderIndices=False)
u'persp.instObjGroups.objectGroups'
Return type: | unicode |
---|
plugNode
Return type: | DependNode |
---|
The node part of this plug as a string
Return type: | unicode |
---|
Return the total number of children of this compound plug.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.numChildren
Return the number of children of this plug that are connected in the dependency graph.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.numConnectedChildren
Return the total number of connected element plugs belonging to this array plug.
Return type: | int |
---|
Derived from api method maya.OpenMaya.MPlug.numConnectedElements
The number of elements in an array attribute. Raises an error if this is not an array Attribute
Be aware that getAttr(..., size=1) does not always produce the expected value. It is recommend that you use Attribute.numElements instead. This is a maya bug, not a pymel bug.
>>> from pymel.core import *
>>> f=newFile(f=1) #start clean
>>>
>>> dls = SCENE.defaultLightSet
>>> dls.dagSetMembers.numElements()
0
>>> nt.SpotLight() # create a light, which adds to the lightSet
nt.SpotLight(u'spotLightShape1')
>>> dls.dagSetMembers.numElements()
1
>>> nt.SpotLight() # create another light, which adds to the lightSet
nt.SpotLight(u'spotLightShape2')
>>> dls.dagSetMembers.numElements()
2
Return type: | int |
---|
listConnections -source 0 -destination 1
see Attribute.connections for the full ist of flags.
Return type: | PyNode list |
---|
added optional generations keyword arg, which gives the number of levels up that you wish to go for the parent
Negative values will traverse from the top.
A value of 0 will return the same node. The default value is 1.
If generations is None, it will be interpreted as ‘return all parents’, and a list will be returned.
Since the original command returned None if there is no parent, to sync with this behavior, None will be returned if generations is out of bounds (no IndexError will be thrown).
added optional arrays keyword arg, which if True, will also traverse from an array element to an array plug
Return type: | Attribute |
---|
>>> from pymel.core import *
>>> at = SCENE.persp.t.tx
>>> at.plugAttr(longName=False, fullPath=False)
u'tx'
>>> at.plugAttr(longName=False, fullPath=True)
u't.tx'
>>> at.plugAttr(longName=True, fullPath=True)
u'translate.translateX'
Return type: | unicode |
---|
Return type: | DependNode |
---|
removeMultiInstance
Sets the value of a dependency node attribute. No value for the the attribute is needed when the -l/-k/-s flags are used. The -type flag is only required when setting a non-numeric attribute. The following chart outlines the syntax of setAttr for non-numeric data types: TYPEbelow means any number of values of type TYPE, separated by a space[TYPE]means that the value of type TYPEis optionalA|Bmeans that either of Aor Bmay appearIn order to run its examples, first execute these commands to create the sample attribute types:sphere -n node; addAttr -ln short2Attr -at short2; addAttr -ln short2a -p short2Attr -at short; addAttr -ln short2b -p short2Attr -at short; addAttr -ln short3Attr -at short3; addAttr -ln short3a -p short3Attr -at short; addAttr -ln short3b -p short3Attr -at short; addAttr -ln short3c -p short3Attr -at short; addAttr -ln long2Attr -at long2; addAttr -ln long2a -p long2Attr -at long; addAttr -ln long2b -p long2Attr -at long; addAttr -ln long3Attr -at long3; addAttr -ln long3a -p long3Attr -at long; addAttr -ln long3b -p long3Attr -at long; addAttr -ln long3c -p long3Attr -at long; addAttr -ln float2Attr -at float2; addAttr -ln float2a -p float2Attr -at “float”; addAttr -ln float2b -p float2Attr -at “float”; addAttr -ln float3Attr -at float3; addAttr -ln float3a -p float3Attr -at “float”; addAttr -ln float3b -p float3Attr -at “float”; addAttr -ln float3c -p float3Attr -at “float”; addAttr -ln double2Attr -at double2; addAttr -ln double2a -p double2Attr -at double; addAttr -ln double2b -p double2Attr -at double; addAttr -ln double3Attr -at double3; addAttr -ln double3a -p double3Attr -at double; addAttr -ln double3b -p double3Attr -at double; addAttr -ln double3c -p double3Attr -at double; addAttr -ln int32ArrayAttr -dt Int32Array; addAttr -ln doubleArrayAttr -dt doubleArray; addAttr -ln pointArrayAttr -dt pointArray; addAttr -ln vectorArrayAttr -dt vectorArray; addAttr -ln stringArrayAttr -dt stringArray; addAttr -ln stringAttr -dt “string”; addAttr -ln matrixAttr -dt “matrix”; addAttr -ln sphereAttr -dt sphere; addAttr -ln coneAttr -dt cone; addAttr -ln meshAttr -dt mesh; addAttr -ln latticeAttr -dt lattice; addAttr -ln spectrumRGBAttr -dt spectrumRGB; addAttr -ln reflectanceRGBAttr -dt reflectanceRGB; addAttr -ln componentListAttr -dt componentList; addAttr -ln attrAliasAttr -dt attributeAlias; addAttr -ln curveAttr -dt nurbsCurve; addAttr -ln surfaceAttr -dt nurbsSurface; addAttr -ln trimFaceAttr -dt nurbsTrimface; addAttr -ln polyFaceAttr -dt polyFaces; -type short2Array of two short integersValue Syntaxshort shortValue Meaningvalue1 value2Mel ExamplesetAttr node.short2Attr -type short2 1 2;Python Examplecmds.setAttr(‘node.short2Attr’,1,2,type=’short2’)-type short3Array of three short integersValue Syntaxshort short shortValue Meaningvalue1 value2 value3Mel ExamplesetAttr node.short3Attr -type short3 1 2 3;Python Examplecmds.setAttr(‘node.short3Attr’,1,2,3,type=’short3’)-type long2Array of two long integersValue Syntaxlong longValue Meaningvalue1 value2Mel ExamplesetAttr node.long2Attr -type long2 1000000 2000000;Python Examplecmds.setAttr(‘node.long2Attr’,1000000,2000000,type=’long2’)-type long3Array of three long integersValue Syntaxlong long longValue Meaningvalue1 value2 value3Mel ExamplesetAttr node.long3Attr -type long3 1000000 2000000 3000000;Python Examplecmds.setAttr(‘node.long3Attr’,1000000,2000000,3000000,type=’long3’)-type Int32ArrayVariable length array of long integersValue SyntaxValue MeaningMel ExamplesetAttr node.int32ArrayAttr -type Int32Array 2 12 75;Python Examplecmds.setAttr(‘node.int32ArrayAttr’,[2,12,75],type=’Int32Array’)-type float2Array of two floatsValue Syntaxfloat floatValue Meaningvalue1 value2Mel ExamplesetAttr node.float2Attr -type float2 1.1 2.2;Python Examplecmds.setAttr(‘node.float2Attr’,1.1,2.2,type=’float2’)-type float3Array of three floatsValue Syntaxfloat float floatValue Meaningvalue1 value2 value3Mel ExamplesetAttr node.float3Attr -type float3 1.1 2.2 3.3;Python Examplecmds.setAttr(‘node.float3Attr’,1.1,2.2,3.3,type=’float3’)-type double2Array of two doublesValue Syntaxdouble doubleValue Meaningvalue1 value2Mel ExamplesetAttr node.double2Attr -type double2 1.1 2.2;Python Examplecmds.setAttr(‘node.double2Attr’,1.1,2.2,type=’double2’)-type double3Array of three doublesValue Syntaxdouble double doubleValue Meaningvalue1 value2 value3Mel ExamplesetAttr node.double3Attr -type double3 1.1 2.2 3.3;Python Examplecmds.setAttr(‘node.double3Attr’,1.1,2.2,3.3,type=’double3’)-type doubleArrayVariable length array of doublesValue SyntaxValue MeaningMel ExamplesetAttr node.doubleArrayAttr -type doubleArray 2 3.14159 2.782;Python Examplecmds.setAttr( “node.doubleArrayAttr”, (2, 3.14159, 2.782,), type=”doubleArray”)-type matrix4x4 matrix of doublesValue Syntaxdouble double double doubledouble double double doubledouble double double doubledouble double double doubleValue Meaningrow1col1 row1col2 row1col3 row1col4row2col1 row2col2 row2col3 row2col4row3col1 row3col2 row3col3 row3col4row4col1 row4col2 row4col3 row4col4Alternate Syntaxstring double double doubledouble double doubleintegerdouble double doubledouble double doubledouble double doubledouble double doubledouble double doubledouble double doubledouble double double doubledouble double double doubledouble double doublebooleanAlternate Meaning”xform” scaleX scaleY scaleZrotateX rotateY rotateZrotationOrder (0=XYZ, 1=YZX, 2=ZXY, 3=XZY, 4=YXZ, 5=ZYX)translateX translateY translateZshearXY shearXZ shearYZscalePivotX scalePivotY scalePivotZscaleTranslationX scaleTranslationY scaleTranslationZrotatePivotX rotatePivotY rotatePivotZrotateTranslationX rotateTranslationY rotateTranslationZrotateOrientW rotateOrientX rotateOrientY rotateOrientZjointOrientW jointOrientX jointOrientY jointOrientZinverseParentScaleX inverseParentScaleY inverseParentScaleZcompensateForParentScaleMel ExamplesetAttr node.matrixAttr -type “matrix” 1 0 0 0 0 1 0 0 0 0 1 0 2 3 4 1;setAttr node.matrixAttr -type “matrix” “xform” 1 1 1 0 0 0 0 2 3 4 0 0 00 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 false;Python Examplecmds.setAttr(‘node.matrixAttr’,(1,0,0,0,0,1,0,0,0,0,1,0,2,3,4,1),type=’matrix’)cmds.setAttr(‘node. matrixAttr’,’xform’,(1,1,1),(0,0,0),0,(2,3,4),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(0,1,1),(0,0,1,0),(1,0,1,0),(1,2,3),False, type=”matrix”)-type pointArrayVariable length array of pointsValue SyntaxValue MeaningMel ExamplesetAttr node.pointArrayAttr -type pointArray 2 1 1 1 1 2 2 2 1;Python Examplecmds.setAttr(‘node.pointArrayAttr’,2,(1,1,1,1),(2,2,2,1),type=’pointArray’)-type vectorArrayVariable length array of vectorsValue SyntaxValue MeaningMel ExamplesetAttr node.vectorArrayAttr -type vectorArray 2 1 1 1 2 2 2;Python Examplecmds.setAttr(‘node.vectorArrayAttr’,2,(1,1,1),(2,2,2),type=’vectorArray’)-type “string”Character stringValue SyntaxstringValue MeaningcharacterStringValueMel ExamplesetAttr node.stringAttr -type “string” “blarg”;Python Examplecmds.setAttr(‘node.stringAttr’,”blarg”,type=”string”)-type stringArrayVariable length array of stringsValue SyntaxValue MeaningMel ExamplesetAttr node.stringArrayAttr -type stringArray 3 “a” “b” “c”;Python Examplecmds.setAttr(‘node.stringArrayAttr’,3,”a”,”b”,”c”,type=’stringArray’)-type sphereSphere dataValue SyntaxdoubleValue MeaningsphereRadiusExamplesetAttr node.sphereAttr -type sphere 5.0;-type coneCone dataValue Syntaxdouble doubleValue MeaningconeAngle coneCapMel ExamplesetAttr node.coneAttr -type cone 45.0 5.0;Python Examplecmds.setAttr(‘node.coneAttr’,45.0,5.0,type=’cone’)-type reflectanceRGBReflectance dataValue Syntaxdouble double doubleValue MeaningredReflect greenReflect blueReflectMel ExamplesetAttr node.reflectanceRGBAttr -type reflectanceRGB 0.5 0.5 0.1;Python Examplecmds.setAttr(‘node.reflectanceRGBAttr’,0.5,0.5,0.1,type=’reflectanceRGB’)-type spectrumRGBSpectrum dataValue Syntaxdouble double doubleValue MeaningredSpectrum greenSpectrum blueSpectrumMel ExamplesetAttr node.spectrumRGBAttr -type spectrumRGB 0.5 0.5 0.1;Python Examplecmds.setAttr(‘node.spectrumRGBAttr’,0.5,0.5,0.1,type=’spectrumRGB’)-type componentListVariable length array of componentsValue SyntaxValue MeaningMel ExamplesetAttr node.componentListAttr -type componentList 3 cv[1] cv[12] cv[3];Python Examplecmds.setAttr(‘node.componentListAttr’,3,’cv[1]’,’cv[12]’,’cv[3]’,type=’componentList’)-type attributeAliasString alias dataValue Syntaxstring stringValue MeaningnewAlias currentNameMel ExamplesetAttr node.attrAliasAttr -type attributeAliasPython Examplecmds.setAttr(‘node.attrAliasAttr’,(“GoUp”, “translateY”,”GoLeft”, “translateX”),type=’attributeAlias’)-type nurbsCurveNURBS curve dataValue SyntaxValue MeaningMel Example// degree is the degree of the curve(range 1-7)// spans is the number of spans// form is open (0), closed (1), periodic (2)// dimension is 2 or 3, depending on the dimension of the curve// isRational is true if the curve CVs contain a rational component// knotCount is the size of the knot list// knotValue is a single entry in the knot list// cvCount is the number of CVs in the curve// xCVValue,yCVValue,[zCVValue] [wCVValue] is a single CV.// zCVValue is only present when dimension is 3.// wCVValue is only present when isRational is true.//setAttr node.curveAttr -type nurbsCurve 3 1 0 no 36 0 0 0 1 1 14 -2 3 0 -2 1 0 -2 -1 0 -2 -3 0;-type nurbsSurfaceNURBS surface dataValue Syntaxint int int int boolValue MeaninguDegree vDegree uForm vForm isRationalExample// uDegree is degree of the surface in U direction (range 1-7)// vDegree is degree of the surface in V direction (range 1-7)// uForm is open (0), closed (1), periodic (2) in U direction// vForm is open (0), closed (1), periodic (2) in V direction// isRational is true if the surface CVs contain a rational component// uKnotCount is the size of the U knot list// uKnotValue is a single entry in the U knot list// vKnotCount is the size of the V knot list// vKnotValue is a single entry in the V knot list// If “TRIM” is specified then additional trim information is expected// If “NOTRIM” is specified then the surface is not trimmed// cvCount is the number of CVs in the surface// xCVValue,yCVValue,zCVValue [wCVValue]is a single CV.// zCVValue is only present when dimension is 3.// wCVValue is only present when isRational is true//setAttr node.surfaceAttr -type nurbsSurface 3 3 0 0 no6 0 0 0 1 1 16 0 0 0 1 1 116 -2 3 0 -2 1 0 -2 -1 0 -2 -3 0-1 3 0 -1 1 0 -1 -1 0 -1 -3 01 3 0 1 1 0 1 -1 0 1 -3 03 3 0 3 1 0 3 -1 0 3 -3 0;-type nurbsTrimfaceNURBS trim face dataValue SyntaxValue MeaningExample// flipNormal if true turns the surface inside out// boundaryCount: number of boundaries// boundaryType:// tedgeCountOnBoundary : number of edges in a boundary// splineCountOnEdge : number of splines in an edge in// edgeTolerance : tolerance used to build the 3d edge// isEdgeReversed : if true, the edge is backwards// geometricContinuity : if true, the edge is tangent continuous// splineCountOnPedge : number of splines in a 2d edge// isMonotone : if true, curvature is monotone// pedgeTolerance : tolerance for the 2d edge//-type polyFacePolygon face dataValue SyntaxValue MeaningExample// This data type (polyFace) is meant to be used in file I/O// after setAttrs have been written out for vertex position// arrays, edge connectivity arrays (with corresponding start// and end vertex descriptions), texture coordinate arrays and// color arrays. The reason is that this data type references// all of its data through ids created by the former types.//// “f”specifies the ids of the edges making up a face -// negative value if the edge is reversed in the face// “h”specifies the ids of the edges making up a hole -// negative value if the edge is reversed in the face// “mf”specifies the ids of texture coordinates (uvs) for a face.// This data type is obsolete as of version 3.0. It is replaced by “mu”.// “mh”specifies the ids of texture coordinates (uvs) for a hole// This data type is obsolete as of version 3.0. It is replaced by “mu”.// “mu”The first argument refers to the uv set. This is a zero-based// integer number. The second argument refers to the number of vertices (n)// on the face which have valid uv values. The last n values are the uv// ids of the texture coordinates (uvs) for the face. These indices// are what used to be represented by the “mf” and “mh” specification.// There may be more than one “mu” specification, one for each unique uv set.// “fc”specifies the color index values for a face//setAttr node.polyFaceAttr -type polyFaces “f” 3 1 2 3 “fc” 3 4 4 6;-type meshPolygonal meshValue SyntaxValue MeaningExample// “v”specifies the vertices of the polygonal mesh// “vn”specifies the normal of each vertex// “vt”is optional and specifies a U,V texture coordinate for each vertex// “e”specifies the edge connectivity information between vertices//setAttr node.meshAttr -type mesh “v” 3 0 0 0 0 1 0 0 0 1”vn” 3 1 0 0 1 0 0 1 0 0”vt” 3 0 0 0 1 1 0”e” 3 0 1 “hard” 1 2 “hard” 2 0 “hard”;-type latticeLattice dataValue SyntaxValue MeaningsDivisionCount tDivisionCount uDivisionCountExample// sDivisionCount is the horizontal lattice division count// tDivisionCount is the vertical lattice division count// uDivisionCount is the depth lattice division count// pointCount is the total number of lattice points// pointX,pointY,pointZ is one lattice point. The list is// specified varying first in S, then in T, last in U so the// first two entries are (S=0,T=0,U=0) (s=1,T=0,U=0)//setAttr node.latticeAttr -type lattice 2 5 2 20-2 -2 -2 2 -2 -2 -2 -1 -2 2 -1 -2 -2 0 -22 0 -2 -2 1 -2 2 1 -2 -2 2 -2 2 2 -2-2 -2 2 2 -2 2 -2 -1 2 2 -1 2 -2 0 22 0 2 -2 1 2 2 1 2 -2 2 2 2 2 2;In query mode, return type is based on queried flag.
No need to set type, this will automatically be determined
Adds support for passing a list or tuple as the second argument for datatypes such as double3.
When setting stringArray datatype, you no longer need to prefix the list with the number of elements - just pass a list or tuple as with other arrays
if no type flag is passed, the attribute type is based on type of value being set (if you want a float, be sure to format it as a float, e.g. 3.0 not 3)
currently does not support compound attributes
currently supported python-to-maya mappings:
python type maya type ============ =========== float double ———— ———– int long ———— ———– str string ———— ———– bool bool ———— ———– Vector double3 ———— ———– Matrix matrix ———— ———– [str] stringArray ============ ===========
>>> addAttr( 'persp', longName= 'testDoubleArray', dataType='doubleArray')
>>> setAttr( 'persp.testDoubleArray', [0,1,2])
>>> setAttr( 'defaultRenderGlobals.preMel', 'sfff')
Added ability to set enum attributes using the string values; this may be done either by setting the ‘asString’ kwarg to True, or simply supplying a string value for an enum attribute.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
alteredValue (av) | bool | ||
The value is only the current value, which may change in the next evalution (if the attribute has an incoming connection). This flag is only used during file I/O, so that attributes with incoming connections do not have their data overwritten during the first evaluation after a file is opened. |
|||
caching (ca) | bool | ||
Sets the attribute’s internal caching on or off. Not all attributes can be defined as caching. Only those attributes that are not defined by default to be cached can be made caching. As well, multi attribute elements cannot be made caching. Caching also affects child attributes for compound attributes. |
|||
capacityHint (ch) | int | ||
Used to provide a memory allocation hint to attributes where the -size flag cannot provide enough information. This flag is optional and is primarily intended to be used during file I/O. Only certain attributes make use of this flag, and the interpretation of the flag value varies per attribute. This flag is currently used by (node.attribute): mesh.face - hints the total number of elements in the face edge listsFlag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
|||
channelBox (cb) | bool | ||
|
|||
clamp (c) | bool | ||
|
|||
keyable (k) | bool | ||
|
|||
lock (l) | bool | ||
|
|||
size (s) | int | ||
|
|||
type (typ) | unicode | ||
|
Derived from mel command maya.cmds.setAttr
Example:
import pymel.core as pm
import maya.cmds as cmds
pm.sphere( n="sphere" )
# Result: [nt.Transform(u'sphere'), nt.MakeNurbSphere(u'makeNurbSphere1')] #
# Set a simple numeric value
pm.setAttr( 'sphere.translateX', 5 )
# Lock an attribute to prevent further modification
pm.setAttr( 'sphere.translateX', lock=True )
# Make an attribute unkeyable
pm.setAttr( 'sphere.translateZ', keyable=False )
# Set an entire list of multi-attribute values in one command
pm.setAttr( 'sphereShape.weights[0:6]',1, 1, 2, 1, 1, 1, 2,size=7)
# Set an attribute with a compound numeric type
pm.setAttr('sphere.rotate', 0, 45, 90, type="double3")
# Clamp the value of the attribute to the min/max
# Useful floating point math leaves the value just
# a little out of range - here the min is .01
pm.setAttr( 'anisotropic1.roughness', 0.0099978, clamp=True )
# Set a multi-attribute with a compound numeric type
pm.setAttr( 'sphereShape.controlPoints[0:2]', 0, 0, 0, 1, 1, 1, 2, 2, 2,type="double3" )
Sets the alias for this attribute (similar to aliasAttr).
Sets whether this plug is cached internally. Note: turning caching on for a plug will force the plug to become networked. Network plugs take longer to look up in the DG; therefore you should only make a plug cached only if you are certain that the network plug look-up will take less than the saved evaluation cost.
Parameters : |
|
---|
Derived from api method maya.OpenMaya.MPlug.setCaching
This command creates keyframes for the specified objects, or the active objects if none are specified on the command line. The default time for the new keyframes is the current time. Override this behavior with the “-t” flag on the command line. The default value for the keyframe is the current value of the attribute for which a keyframe is set. Override this behavior with the “-v” flag on the command line. When setting keyframes on animation curves that do not have “time” as an input attribute (ie, they are unitless animation curves), use “-f/-float” to specify the unitless value at which to set a keyframe. The -time and -float flags may be combined in one command. This command sets up Dependency Graph relationships for proper evaluation of a given attribute at a given time.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
animLayer (al) | unicode | ||
Specifies that the new key should be placed in the specified animation layer. Note that if the objects being keyframed are not already part of the layer, this flag will be ignored. |
|||
attribute (at) | unicode | ||
|
|||
breakdown (bd) | bool | ||
|
|||
clip (c) | unicode | ||
Specifies that the new key should be placed in the specified clip. Note that if the objects being keyframed are not already part of the clip, this flag will be ignored. |
|||
controlPoints (cp) | bool | ||
|
|||
dirtyDG (dd) | bool | ||
float (f) | float | ||
|
|||
hierarchy (hi) | unicode | ||
Controls the objects this command acts on, relative to the specified (or active) target objects. Valid values are “above,” “below,” “both,” and “none.” Default is “hierarchy -query” |
|||
identity (id) | bool | ||
Sets an identity key on an animation layer. An identity key is one that nullifies the effect of the anim layer. This flag has effect only when the attribute being keyed is being driven by animation layers. |
|||
inTangentType (itt) | unicode | ||
The in tangent type for keyframes set by this command. Valid values are “spline”, “linear”, “fast”, “slow”, “flat”, “stepped”, “step next”, “fixed”, “clamped” and “plateau”. Default is “keyTangent -q -g -inTangentType” |
|||
insert (i) | bool | ||
Insert keys at the given time(s) and preserve the shape of the animation curve(s). Note: the tangent type on inserted keys will be fixed so that the curve shape can be preserved. |
|||
insertBlend (ib) | bool | ||
If true, a pairBlend node will be inserted for channels that have nodes other than animCurves driving them, so that such channels can have blended animation. If false, these channels will not have keys inserted. If the flag is not specified, the blend will be inserted based on the global preference for blending animation. |
|||
minimizeRotation (mr) | bool | ||
|
|||
noResolve (nr) | bool | ||
When used with the -value flag, causes the specified value to be set directly onto the animation curve, without attempting to resolve the value across animation layers. |
|||
outTangentType (ott) | unicode | ||
The out tangent type for keyframes set by this command. Valid values are “spline”, “linear”, “fast”, “slow”, “flat”, “stepped”, “step next”, “fixed”, “clamped” and “plateau”. Default is “keyTangent -q -g -outTangentType” |
|||
shape (s) | bool | ||
|
|||
time (t) | time | ||
|
If we are setting a key over an existing key, use that key tangent’s locked weight value for the new locked weight value. Default is falseFlag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
|||
value (v) | float | ||
Value at which to set the keyframe. Using the value flag will not cause the keyed attribute to change to the specified value until the scene re-evaluates. Therefore, if you want the attribute to update to the new value immediately, use the setAttr command in addition to setting the key. |
Derived from mel command maya.cmds.setKeyframe
Example:
import pymel.core as pm
import maya.cmds as cmds
# Set a keyframe at the current time on all "keyable"
# attributes of the selected objects.
#
pm.setKeyframe()
# Set a keyframe so that translateX has a value of 10
# at the current time, regardless of its current position
#
pm.setKeyframe( v=10, at='translateX' )
# Set keyframes for translateX on two objects at t=0 and
# t=10 seconds. (Note that if mysteryObject has no
# attribute named translateX, no keyframe is set for mysteryObject.)
#
pm.setKeyframe( 'nurbsSphere1', 'mysteryObject', attribute='translateX', t=['0sec','10sec'] )
This overrides the default keyability of a plug set with MFnAttribute::setKeyable . Keyable plugs will be keyed by AutoKey and the Set Keyframe UI. Non-keyable plugs prevent the user from setting keys via the obvious UI provided for keying. Being non-keyable is not a hard block against adding keys to an attribute.
Parameters : |
|
---|
Derived from api method maya.OpenMaya.MPlug.setKeyable
Sets the locked state for this plug’s value. A plug’s locked state determines whether or not the plug’s value can be changed.
Parameters : |
|
---|
Derived from api method maya.OpenMaya.MPlug.setLocked
The method is used to pre-allocate the number of elements that an array plug will contain. The plug passed to this method must be an array plug and there must be no elements already allocated.
Parameters : |
|
---|
Derived from api method maya.OpenMaya.MPlug.setNumElements
provide a min and max value as a two-element tuple or list, or as two arguments to the method. To remove a limit, provide a None value. for example:
>>> from pymel.core import *
>>> s = polyCube()[0]
>>> s.addAttr( 'new' )
>>> s.new.setRange( -2, None ) #sets just the min to -2 and removes the max limit
>>> s.new.setMax( 3 ) # sets just the max value and leaves the min at its previous default
>>> s.new.getRange()
[-2.0, 3.0]
>>> from pymel.core import *
>>> at = SCENE.persp.t.tx
>>> at.shortName(fullPath=False)
u'tx'
>>> at.shortName(fullPath=True)
u't.tx'
Return type: | unicode |
---|
Sets whether this plug is displayed in the channel box. This overrides the default display of a plug set with MFnAttribute::setChannelBox . Keyable attributes are always shown in the channel box so this flag is ignored on keyable plugs.
Parameters : |
|
---|
Derived from api method maya.OpenMaya.MPlug.setChannelBox
getAttr -type
Return type: | unicode |
---|
setAttr -locked 0