mgear.core.attribute module
Attribute creation functions
- class mgear.core.attribute.FCurveParamDef(scriptName, keys=None, interpolation=0, extrapolation=0)
Bases:
ParamDef
Create an Fcurve parameter definition.
- Parameters:
scriptName (str) – Attribute fullName.
keys (list) – The keyframes to define the function curve.
interpolation (int) – the curve interpolation.
extrapolation (int) – the curve extrapolation.
- create(node)
Add a parameter to property using the parameter definition.
- Parameters:
node (dagNode) – The node to add the attribute
- get_as_dict()
- set_from_dict(param_dict)
- class mgear.core.attribute.ParamDef(read as Parameter Definition)
Bases:
object
Encapsulate the attribute creation arguments in a handy object. Also include a creation method.
Example
This can be use later to create attr or export the description to xml or json file
- Arguments:
scriptName (str): Attribute fullName paranDef (dic): The stored param definition
- create(node)
Add a parameter to property using the parameter definition.
- Parameters:
node (dagNode) – The node to add the attribute
- get_as_dict()
- set_from_dict(param_dict)
- class mgear.core.attribute.ParamDef2(scriptName, valueType, value, niceName=None, shortName=None, minimum=None, maximum=None, keyable=True, readable=True, storable=True, writable=True)
Bases:
ParamDef
ParamDef2 inherit from ParamDef
- Parameters:
scriptName (str) – Parameter scriptname.
valueType (str) – The Attribute Type. Exp: ‘string’, ‘bool’, ‘long’, etc..
value (float or int) – Default parameter value.
niceName (str) – Parameter niceName.
shortName (str) – Parameter shortName.
minimum (float or int) – mininum value.
maximum (float or int) – maximum value.
keyable (boo) – If true is keyable
readable (boo) – If true is readable
storable (boo) – If true is storable
writable (boo) – If true is writable
- Returns:
The stored parameter definition.
- Return type:
- mgear.core.attribute.addAttribute(node, longName, attributeType, value=None, niceName=None, shortName=None, minValue=None, maxValue=None, keyable=True, readable=True, storable=True, writable=True, channelBox=False, softMinValue=None, softMaxValue=None)
Add attribute to a node
- Parameters:
node (dagNode) – The object to add the new attribute.
longName (str) – The attribute name.
attributeType (str) – The Attribute Type. Exp: ‘string’, ‘bool’, ‘long’, etc..
value (float or int) – The default value.
niceName (str) – The attribute nice name. (optional)
shortName (str) – The attribute short name. (optional)
minValue (float or int) – minimum value. (optional)
maxValue (float or int) – maximum value. (optional)
keyable (bool) – Set if the attribute is keyable or not. (optional)
readable (bool) – Set if the attribute is readable or not. (optional)
storable (bool) – Set if the attribute is storable or not. (optional)
writable (bool) – Set if the attribute is writable or not. (optional)
channelBox (bool) – Set if the attribute is in the channelBox or not, when the attribute is not keyable. (optional)
- Returns:
The long name of the new attribute
- Return type:
str
- mgear.core.attribute.addColorAttribute(node, longName, value=False, keyable=True, readable=True, storable=True, writable=True, niceName=None, shortName=None)
Add a color attribute to a node
- Parameters:
node (dagNode) – The object to add the new attribute.
longName (str) – The attribute name.
value (list of flotat) – The default value in a list for RGB. exp [1.0, 0.99, 0.13].
keyable (bool) – Set if the attribute is keyable or not. (optional)
readable (bool) – Set if the attribute is readable or not. (optional)
storable (bool) – Set if the attribute is storable or not. (optional)
writable (bool) – Set if the attribute is writable or not. (optional)
niceName (str) – The attribute nice name. (optional)
shortName (str) – The attribute short name. (optional)
- Returns:
The long name of the new attribute
- Return type:
str
- mgear.core.attribute.addEnumAttribute(node, longName, value, enum, niceName=None, shortName=None, keyable=True, readable=True, storable=True, writable=True)
Add an enumerate attribute to a node
- Parameters:
node (dagNode) – The object to add the new attribute.
longName (str) – The attribute name.
value (int) – The default value.
enum (list of str) – The list of elements in the enumerate control
niceName (str) – The attribute nice name. (optional)
shortName (str) – The attribute short name. (optional)
keyable (bool) – Set if the attribute is keyable or not. (optional)
readable (bool) – Set if the attribute is readable or not. (optional)
storable (bool) – Set if the attribute is storable or not. (optional)
writable (bool) – Set if the attribute is writable or not. (optional)
- Returns:
The long name of the new attribute
- Return type:
str
- mgear.core.attribute.addFCurve(node, name='fcurve', keys=[])
FCurve attribute
Just a animCurveUU node connected to an attribute
Warning
This Method is deprecated.
- Parameters:
node (dagNode) – The object to add the new fcurve attribute
name (str) – The attribute name
key (list) – list of keyframes and values
- Returns:
Fcurve and attribute name
- mgear.core.attribute.addProxyAttribute(sourceAttrs, targets, duplicatedPolicy=None)
Add proxy paramenter to a list of target dagNode Duplicated channel policy, stablish the rule in case the channel already exist on the target.
Duplicate policy options
index
This policy will add an index to avoid clashing channel names
fullName
This policy will add the name of the source object to the channel
merge
This policy will merge the channels
- Parameters:
sourceAttrs (attr or list of attr) – The parameters to be connected as proxy
targets (dagNode or list of dagNode) – The list of dagNode to add the proxy paramenter
duplicatedPolicy (string, optional) – Set the duplicated channel policy
- mgear.core.attribute.addVector3Attribute(node, longName, value=False, keyable=True, readable=True, storable=True, writable=True, niceName=None, shortName=None, childLabels=['X', 'Y', 'Z'], usedAsColor=False, attributeType='float3')
Add a vector3 attribute to a node
- Parameters:
node (dagNode) – The object to add the new attribute.
longName (str) – The attribute name.
value (list of flotat) – The default value in a list for RGB. exp [1.0, 0.99, 0.13].
keyable (bool) – Set if the attribute is keyable or not. (optional)
readable (bool) – Set if the attribute is readable or not. (optional)
storable (bool) – Set if the attribute is storable or not. (optional)
writable (bool) – Set if the attribute is writable or not. (optional)
niceName (str) – The attribute nice name. (optional)
shortName (str) – The attribute short name. (optional)
- Returns:
The long name of the new attribute
- Return type:
str
- mgear.core.attribute.add_mirror_config_channels(ctl, conf=[0, 0, 0, 0, 0, 0, 0, 0, 0])
Add channels to configure the mirror posing
- Parameters:
ctl (dagNode) – Control Object
- mgear.core.attribute.change_default_value(attributes, defaultValue)
Change the default value of the attr
- Parameters:
attributes (list or str or pynode) – attributes to change the default val
defaultValue (numeric value) – defaul value. Only numeric values are valid
- mgear.core.attribute.collect_attrs(node, attrs, attrs_list, shapes=False)
Collect the channel full path in a list.
Checks that the channel is not repeated.
- Parameters:
node (PyNode) – Node that owns the channels
attrs (str) – the list to add the channels full path
attrs_list (list) – the list of channels names
shapes (bool, optional) – If True will search the attr only in shapes
- class mgear.core.attribute.colorParamDef(scriptName, value=False)
Bases:
ParamDef
Create a Color parameter definition.
- Parameters:
scriptName (str) – Attribute fullName
value (list of float) – The default value in a list for RGB. exp [1.0, 0.99, 0.13].
- create(node)
Add a parameter to property using the parameter definition.
- Parameters:
node (dagNode) – The node to add the attribute
- get_as_dict()
- set_from_dict(param_dict)
- mgear.core.attribute.connectSet(source, target, testInstance)
Connect or set attributes
Connects or set attributes depending if is instance of a instance check
- Parameters:
source (str or Attr) – Striname of the attribute or PyNode attribute
target (str or Attr) – Striname of the attribute or PyNode attribute
testInstance (tuple) – Tuple of types to check
- mgear.core.attribute.connect_add_dynamic_pivot(pivots, driven)
connect dynamic pivot with option to add offset channels on XYZ
- Parameters:
pivot (dagNode list) – pivot translation
driven (dagNode list) – Driven object
- mgear.core.attribute.connect_dynamic_pivot(pivot, driven)
connects translation of pivot dagNode to rotatePivot and scalePivot of the driven transform
- Parameters:
pivot (dagNode) – pivot translation
driven (dagNode) – Driven object
- mgear.core.attribute.connect_message(source, attr)
Connects the ‘message’ attribute of one or more source nodes to a destination attribute.
- Parameters:
source (str, pm.PyNode, list) – The source node(s) with a ‘message’ attribute.
attr (str, pm.PyNode) – The destination attribute to connect to.
- Raises:
TypeError – If the destination attribute is not a message attribute.
- mgear.core.attribute.disconnect_inputs(node, attributes=['scale', 'sx', 'sy', 'sz', 'translate', 'tx', 'ty', 'tz', 'rotate', 'rx', 'ry', 'rz'])
Disconnects only the input connections of the specified attributes of the provided node.
- Parameters:
node (PyNode) – The PyNode object for which to disconnect input
connections. –
attributes (list, optional) – A list of attributes to disconnect
translation, (input connections from. Defaults to disconnecting all) –
directions. (rotation, and scale attributes in all) –
- mgear.core.attribute.disconnect_outputs(node, attributes=['scale', 'sx', 'sy', 'sz', 'translate', 'tx', 'ty', 'tz', 'rotate', 'rx', 'ry', 'rz'])
Disconnects only the output connections of the specified attributes of the provided node.
- Parameters:
node (PyNode) – The PyNode object for which to disconnect output
connections. –
attributes (list, optional) – A list of attributes to disconnect
translation, (output connections from. Defaults to disconnecting all) –
directions. (rotation, and scale attributes in all) –
- class mgear.core.attribute.enumParamDef(scriptName, enum, value=False)
Bases:
ParamDef
Create an enumarator parameter definition.
- Parameters:
scriptName (str) – Attribute fullName
enum (list of str) – The list of elements in the enumerate control.
value (int) – The default value.
- create(node)
Add a parameter to property using the parameter definition.
- Parameters:
node (dagNode) – The node to add the attribute
- get_as_dict()
- set_from_dict(param_dict)
- mgear.core.attribute.getSelectedChannels(userDefine=False)
Get the selected channels on the channel box
- Parameters:
userDefine (bool, optional) – If True, will return only the user defined channels. Other channels will be skipped.
- Returns:
The list of selected channels names
- Return type:
list
- mgear.core.attribute.getSelectedObjectChannels(oSel=None, userDefine=False, animatable=False)
Get the selected object channels.
- Parameters:
oSel (None, optional) – The pynode with channels to get
userDefine (bool, optional) – If True, will return only the user defined channels. Other channels will be skipped.
animatable (bool, optional) – If True, only animatable parameters will be return
- Returns:
The list of the selected object channels names
- Return type:
list
- mgear.core.attribute.get_channelBox()
Get the channel box
- Returns:
channel box path
- Return type:
str
- mgear.core.attribute.get_default_value(node, attribute)
Get the default attribute value
- Parameters:
node (str, PyNode) – The object with the attribute
attribute (str) – The attribute to get the value
- Returns:
The attribute value
- Return type:
variant
- mgear.core.attribute.get_next_available_index(attr)
get the next available index from a multi attr This function is a workaround because the connect attr flag next available is not working.
- The connectAttr to the children attribute is giving error
- i.e: pm.connectAttr(ctt.attr(“parent”),
tpTagNode.attr(“children”), na=True)
if using the next available option flag I was expecting to use ctt.setParent(tagParent) but doest’t work as expected. After reading the documentation this method looks prety useless. Looks like is boolean and works based on selection :(
- Parameters:
attr (attr) – Attr multi
- Returns:
index
- Return type:
int
- mgear.core.attribute.get_selected_channels_full_path()
Get the selected channels full path from channel box This function will collect channels from any area of the channel box. This include, Main, shape, input and output
- Returns:
list of channels full path
- Return type:
list
- mgear.core.attribute.has_in_connections(node, attributes=['translate', 'tx', 'ty', 'tz', 'rotate', 'rx', 'ry', 'rz', 'scale', 'sx', 'sy', 'sz'])
Checks if the provided node has any input connections on the specified attributes.
- Parameters:
node (PyNode) – The PyNode object for which to check connections.
attributes (list, optional) – A list of attributes to check for connections. Defaults to checking all translation,
directions. (rotation, and scale attributes in all) –
- Returns:
True if any connections are found, False otherwise.
- Return type:
bool
Examples
>>> jnt = pm.PyNode('myJoint') >>> has_connections(jnt) Found some connections. >>> has_connections(jnt, ['visibility']) No connections found.
- mgear.core.attribute.lockAttribute(node, attributes=['tx', 'ty', 'tz', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz', 'v'])
Lock attributes of a node.
By defaul will lock the rotation, scale and translation.
- Parameters:
node (dagNode) – The node with the attributes to lock.
attributes (list of str) – The list of the attributes to lock.
Example
>>> att.lockAttribute(self.root_ctl, ["sx", "sy", "sz", "v"])
- mgear.core.attribute.moveChannel(attr, sourceNode, targetNode, duplicatedPolicy=None)
Move channels keeping the output connections. Duplicated channel policy, stablish the rule in case the channel already exist on the target.
NOTE: For the moment move channel only supports type double and enum
Duplicate policy options
index
This policy will add an index to avoid clashing channel names
fullName
This policy will add the name of the source object to the channel
merge
This policy will merge the channels
- Parameters:
attr (str) – Name of the channel to move
sourceNode (PyNoe or str) – The source node with the channel
targetNode (PyNoe or str) – The target node for the channel
duplicatedPolicy (None, str) – Set the duplicated channel policy
- mgear.core.attribute.move_input_connections(source, target, type_filter=None)
Move the input connections from source node to target node. The connections can be filtered by type of the incoming node
- exp: attribute.move_input_connections(
cns_obj, cns_off, type_filter=”parentConstraint”
)
- Parameters:
source (PyNode) – node with input connection
target (PyNode) – target to receive the input connections
type_filter (None, str) – node type to filter connections list
- mgear.core.attribute.move_output_connections(source, target, type_filter=None)
Move the output connections from source node to target node. The connections can be filtered by type of the outgoing node
- exp: attribute.move_output_connections(
cns_obj, cns_off, type_filter=”parentConstraint”
)
- Parameters:
source (PyNode) – node with output connection
target (PyNode) – target to receive the input connections
type_filter (None, str) – node type to filter connections list
- mgear.core.attribute.reset_SRT(objects=None, attributes=['tx', 'ty', 'tz', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz', 'v', 'ro'])
Reset Scale Rotation and translation attributes to default value
- Parameters:
objects (None, optional) – The objects to reset the channels
attribute (list) – The attribute to reset
- mgear.core.attribute.reset_selected_channels_value(objects=None, attributes=None)
Reset the the selected channels if not attribute is provided
- Parameters:
objects (None, optional) – The objects to reset the channels
attribute (list, optional) – The attribute to reset
- mgear.core.attribute.setInvertMirror(node, invList=None)
Set invert mirror pose values
- Parameters:
node (dagNode) – The object to set invert mirror Values
- mgear.core.attribute.setKeyableAttributes(nodes, params=['tx', 'ty', 'tz', 'ro', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'])
Set keyable attributes of a node.
By defaul will set keyable the rotation, scale and translation.
- Parameters:
node (dagNode) – The node with the attributes to set keyable.
attributes (list of str) –
The list of the attributes to set keyable. Attrs not in the list will be locked if None, [“tx”, “ty”, “tz”, “rorder”, “rx”, “ry”, “rz”, “sx”, “sy”,
”sz”] is used
- mgear.core.attribute.setNotKeyableAttributes(nodes, attributes=['tx', 'ty', 'tz', 'ro', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz', 'v'])
Set not keyable attributes of a node.
By defaul will set not keyable the rotation, scale and translation.
- Parameters:
node (dagNode) – The node with the attributes to set keyable.
attributes (list of str) – The list of the attributes to set not keyable
- mgear.core.attribute.setRotOrder(node, s='XYZ')
Set the rotorder of the object.
- Parameters:
node (dagNode) – The object to set the rot order on.
s (str) – Value of the rotorder. Possible values : (“XYZ”, “XZY”, “YXZ”, “YZX”, “ZXY”, “ZYX”)
- mgear.core.attribute.set_default_value(node, attribute)
Set the default value to the attribute
- Parameters:
node (str, PyNode) – The object with the attribute to reset
attribute (str) – The attribute to reset
- mgear.core.attribute.smart_reset(*args)
Reset the SRT or the selected channels
Checks first if we have channels selected. If not, will try to reset SRT
- Parameters:
*args – Dummy
- mgear.core.attribute.toggle_bool_attr(attr)
- mgear.core.attribute.unlockAttribute(node, attributes=['tx', 'ty', 'tz', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz', 'v'])
Unlock attributes of a node.
By defaul will unlock the rotation, scale and translation.
- Parameters:
node (dagNode) – The node with the attributes to unlock.
attributes (list of str) – The list of the attributes to unlock.
Example
>>> att.unlockAttribute(self.root_ctl, ["sx", "sy", "sz", "v"])