Skip to content
  • Home
  • Pricing
  • Support
  • Download
  • My account
auto rigger
  • Home
  • Pricing
  • Support
    • Documentation
    • Tutorials
    • Create A Ticket
    • Contact Us
    • Changelog
  • Download
MY ACCOUNT
auto rigger

Setup Arise

6
  • Introduction
  • System Requirements
  • Create Account / Login
  • Installation
  • License Activation Instructions
  • Troubleshooting

Getting Started Tutorial

8
  • Interfaces (UI)
  • How To Prepare The Model For Rigging?
  • What Are Nodes, Attachments, and Presets?
  • What Are Guides?
  • What is The Attribute Editor?
  • Let’s Start Rigging
  • How To Export Rigs?
  • Digging Deeper

Elements

29
  • Node
  • Attachment
  • Presets
  • Attribute Editor And Attributes Types
  • Workspace
  • Outliner
  • Guides
  • Connections
  • Loading/Saving
  • Placeholders
  • Dump_grp
  • Skinning Joints
  • Poses
  • Group Node
  • Rig Base Node
  • Helper Tools
  • Preferences
  • Scene Settings
  • Log Viewer
  • Model Validation Checks
  • Model Updater
  • AI Auto Guides Placement
  • Rig Mocap Tester
  • Rig Export
  • Batch Menu
  • Sticky Note
  • API Commands
  • Custom Ctrls Shapes
  • Ctrl Shapes Lookup

How To Create Your Own Node

6
  • The Basics On How To Create Your Own Node
  • Creating Attributes
  • Creating Guides
  • IoJoint
  • IoTransform
  • Example Node Module

How To Create Your Own Attachment

1
  • Creating Custom Attachments in Arise

Basic Nodes

8
  • Base Node
  • One Joint
  • FK Chain
  • IK Chain
  • Two Joints IK
  • Dynamic FK Chain
  • Eye
  • Path

CA Nodes

12
  • CA_Spine
  • CA Head
  • CA Leg
  • CA Arm
  • CA Fingers
  • CA_Mouth
  • CA Eye
  • CA Quadruped Back Leg
  • CA Quadruped Front Leg
  • CA Ribbon
  • CA Tentacle
  • CA Wing

Attachments

22
  • SpaceSwitch
  • CtrlsShape
  • CtrlsSettings
  • MakeDynamic
  • FollowSkeleton
  • PostScript
  • MovablePivot
  • HelperJoints
  • Rename
  • AttributesSettings
  • CustomDriver
  • CustomDriven
  • ManualConnections
  • AddJoints
  • AddGroupAbove
  • JointsSettings
  • Parent
  • AddAttribute
  • ConnnectAttribute
  • HumanIK
  • CtrlsLockHideAttributes
  • CtrlsLimitAttributes

Mechanical

2
  • Vehicle Body
  • Wheel
View Categories
  • Home
  • Arise Docs
  • How To Create Your Own Node
  • IoTransform

IoTransform

Back to ‘Basics On How To Create Your Own Node‘

IoTransform allows you to modify and manipulate Maya transform objects in much the same way as PyMel objects.
Arise returns an IoTransform object, or a subclass of it, in the rig_creation() method when the user access a ctrl or a joint.

The IoTransform __repr__ method has been reimplemented to return the long name of the Maya transform.
Which allows you to use it with the Maya’s cmds library which usually expects a string name of the Maya object as its first argument.
For example: cmds.xform(self.my_joint.pointer, q=True, matrix=True)

and you can use it as an object with the many methods listed below.


To create an IoTransform object yourself:

from arise.utils.io_nodes.io_transform import IoTransform

IoTransform(name, existing=False)
Arguments:

  • name {str} — Transform node name. Could be the name of an existing transform, based on the value of ‘existing’
  • existing {bool} — True means the transform exists already, False creates an empty transform (default: {False})

IoTransform properties/variables:

long_name — {str} Returns the long name/full path name of the transform
short_name — {str} Returns just the name of the transform
unique_name — {str} Return the shortest unique name of the transform
uuid — {str} Return the object UUID which is a str of number and letters giving the node a unique ID

IoTransform methods:

delete_history()
Simply delete history.

center_pivot()
Center pivot on boundingBox.

lock_attr(attr)
Lock an attribute on this transform.
Arguments:

  • attr {str} — name of attribute to lock


unlock_attr(attr)
Unlock an attribute on this transform.
Arguments:

  • attr {str} — name of attribute to unlock

hide_attr(attr)
Hide an attribute on this transform.
Arguments:

  • attr (str): name of an attribute on this transform

unhide_attr( attr)
Unhide an already hidden attribute on this transform.
Arguments:

  • attr (str): name of a hidden attribute on this transform

get_attr(attr, *args, **kwargs)
Return the value of an attribute. Takes any argument cmds.getAttr takes.
Arguments:

  • attr {str} — name of attribute

Returns: Any value or state of the attribute. The number and type of values returned is dependent on the attribute type.

set_attr(attr, value, **kwargs)
Set the value of an attribute on this transform to ‘value’. Takes any argument cmds.setAttr takes.
Arguments:

  • attr {str} — name of the attribute
  • value {any type the attribute supports} — the value to set the attribute to

list_attr(*args, **kwargs)
Return list of all attributes on this node. Takes any argument cmds.listAttr takes.
Returns: list — of string names of attributes on this transform

add_attr(attr_name, *args, **kwargs)
Add a new attribute to this node. No need to specify node name as first arg. Takes any argument cmds.addAttr takes.
Arguments:

  • attr_name {str} — name of new attribute

Returns: str — long name of the new attribute. ‘long_node_name.attr_name’

add_spacer_attr(char_min_length=6, if_needed=True)
Add a locked attribute as a spacer (only a visual attribute) using only underline characters.

Arguments:

  • char_min_length {int} — the spacer min characters length (default: {6})
  • if_needed {bool} — True skips creating spacer if the last attribute is already a spacer False creates
    it anyway (default: {True})

connect_attr(attr, driver_attr, **kwargs)
Connect driver attribute to drive an attribute on this node. Takes any argument cmds.connectAttr takes.
Arguments:

  • attr {str} — name of an attribute on this transform
  • driver_attr {str} — long name of driver attribute path. ‘driver_node.driver_attr’

disconnect_attr(attrs, incoming=True)
Disconnect incoming connection or out-going connections to an attribute or attributes on this node.
If there is nothing to disconnect does nothing.
Arguments:

  • attrs {str or list} — str name of an attribute or a list of str of attributes on this node
  • incoming {bool} — True to disconnect incoming connections, False for out-going connections

parent(parent_to)
Parent this node under another node. Keeping it’s position in place.
Arguments:

  • parent_to {str or None} — name of a transform to parent under or None to parent to world

parent_relative(parent_to)
Parent this node under another node. Moving this node to keep it’s local transformation values.
Arguments:

  • parent_to {None str} — name of a transform to parent under, or None to parent to world

get_parent(generation=1)
Retrieve the parent or a grandparent of this node.
If the object is parented to the world, an empty string will be returned.
Arguments:

  • generation {int} — the parent to return, 1=parent, 2=grandparent, and so on (default: {1})

Returns: str — name of parent or grandparent, if parented to world returns an empty string

add_group_above(name, maintain_local_values=True)
Adds an empty group above this transform node.
Arguments:

  • name {str} — how to name the new group node
  • maintain_local_values {bool} — If set to True, the new group will be positioned at the grandparent’s position.
    If False will position at this transform position transferring any local transformation values this transform might have. (default: {True})

Returns: IoTransform — the new transform group above as an IoTransform object

set_visibility(state=False)
Turn visibility on or off.
Keyword Arguments:

  • state {bool} — True will show, False will hide (default: {False})

freeze_transformations(**kwargs)
Simply freeze transformation on this node. Takes the same argument as cmds.makeIdentity().

set_translation(translation, space=”world”)
Set the translation values from list of 3 floats (XYZ). In world or object space.
Arguments:

  • translation {list} — of 3 floats representing XYZ values
  • space {str} — set the position in ‘world’ or ‘object’ space (default: {“world”})

get_translation(space=”world”)
Return the translation XYZ values in a list of 3 floats. In world or object space.
Arguments:

  • space {str} — get the position in ‘world’ or ‘object’ space (default: {“world”})

Returns: list — of 3 floats representing XYZ translation values

translate_by(values, space=”object”)
Relatively change translation values.
Arguments:

  • values {list} — of 3 floats representing XYZ values
  • space {str} — add to position in ‘world’ or ‘object’ space (default: {“object”})

set_rotation(rotation, space=”world”)
Set the rotation values from list of 3 floats (XYZ). In world or object space.
Arguments:

  • rotation {list} — of 3 floats representing XYZ
  • space {str} — set the rotation in ‘world’ or ‘object’ space (default: {“world”})

get_rotation(space=”world”)
Return the rotation XYZ values in a list of 3 floats. In world or object space.
Arguments:

  • space {str} — get the rotation in ‘world’ or ‘object’ space (default: {“world”})

Returns: list — of 3 floats representing rotation XYZ values

rotate_by(values, space=”object”)
Relatively change rotation values.
Arguments:

  • values {list} — of 3 floats representing XYZ
  • space {str} — add to rotation in ‘world’ or ‘object’ space (default: {“object”})

set_scale(scale, space=”world”)
Set the scale values from list of 3 floats (XYZ). In world or object space.
Arguments:

  • scale {list} — of 3 floats representing XYZ
  • space {str} — set the scale in ‘world’ or object’ space (default: {“world”})

get_scale(space=”world”)
Return the scale XYZ values in a list of 3 floats. In world or object space.
Arguments:

  • space {str} — get the scale in ‘world’ or ‘object’ space (default: {“world”})

Returns: list — of 3 floats representing XYZ scale values

scale_attrs_connect()
Connect this node scaleY and scaleZ to scaleX then lock and hide them, so it can only be scaled uniformly.

set_color(color)
If this transform has a shape under it, set the color of the shapes using color overrides.
Arguments:

  • color {list or str} — can take list of 3 floats RGB or str color name: values: ‘red’, ‘blue’, ‘purple’, ‘green’, ‘yellow’

set_line_width(line_width)
If this transform has a curve shape under it, modify the curve line thickness.

lock_translation(x=True, y=True, z=True)
Lock translation attributes on this transform.
Arguments:

  • x (bool, optional): lock translateX. Defaults to True
  • y (bool, optional): lock translateY. Defaults to True
  • z (bool, optional): lock translateZ. Defaults to True

lock_rotation(x=True, y=True, z=True)
Lock rotation attributes on this transform.
Arguments:

  • x (bool, optional): lock rotateX. Defaults to True
  • y (bool, optional): lock rotateY. Defaults to True
  • z (bool, optional): lock rotateZ. Defaults to True

lock_scale(x=True, y=True, z=True)
Lock scale attributes on this transform.
Arguments:

  • x (bool, optional): lock scaleX. Defaults to True
  • y (bool, optional): lock scaleY. Defaults to True
  • z (bool, optional): lock scaleZ. Defaults to True

hide_translation(x=True, y=True, z=True)
Hide translation attributes on this transform.
Arguments:

  • x (bool, optional): hide translateX. Defaults to True
  • y (bool, optional): hide translateY. Defaults to True
  • z (bool, optional): hide translateZ. Defaults to True

hide_rotation(x=True, y=True, z=True)
Hide rotation attributes on this transform.
Arguments:

  • x (bool, optional): hide rotateX. Defaults to True
  • y (bool, optional): hide rotateY. Defaults to True
  • z (bool, optional): hide rotateZ. Defaults to True

hide_scale(x=True, y=True, z=True)
Hide scale attributes on this transform.
Arguments:

  • x (bool, optional): hide scaleX. Defaults to True
  • y (bool, optional): hide scaleY. Defaults to True
  • z (bool, optional): hide scaleZ. Defaults to True

lock_and_hide_attr(attr)
Lock and hide an attribute on this transform.
Arguments:

  • attr (str): name of an attribute on this transform

lock_and_hide_translation(x=True, y=True, z=True)
Lock and hide translation attributes on this transform.
Arguments:

  • x (bool, optional): lock and hide translateX. Defaults to True
  • y (bool, optional): lock and hide translateY. Defaults to True
  • z (bool, optional): lock and hide translateZ. Defaults to True

lock_and_hide_rotation(x=True, y=True, z=True)
Lock and hide rotation attributes on this transform.
Arguments:

  • x (bool, optional): lock and hide rotateX. Defaults to True
  • y (bool, optional): lock and hide rotateY. Defaults to True
  • z (bool, optional): lock and hide rotateZ. Defaults to True

lock_and_hide_scale(x=True, y=True, z=True)
Lock and hide scale attributes on this transform.
Arguments:

  • x (bool, optional): lock and hide scaleX. Defaults to True
  • y (bool, optional): lock and hide scaleY. Defaults to True
  • z (bool, optional): lock and hide scaleZ. Defaults to True

lock_and_hide_vis()
Lock and hide the visibility attribute on this transform.

lock_and_hide_transformations(vis=True)
Lock and hide all transformation attributes.
Arguments:

  • vis {bool} — True to also lock and hide visibility attr (default: {True})

set_templated(state=True)
Set ‘display type’ to ‘Template’.
Arguments:

  • state (bool, optional): True to template False to return to normal. Defaults to True

set_referenced(state=True)
Set ‘display type’ to ‘Reference’.
Arguments:

  • state (bool, optional): True to reference False to return to normal. Defaults to True

reset_transformations()
Reset translation and rotation attributes to 0 and scale attributes to 1.

get_matrix(space=”world”)
Return this transform matrix as a list.
Arguments:

  • space {str} — ‘object’ or ‘world’. Get the matrix in object space or world space (default: {“world”})

Returns: list — list of 16 floats representing the matrix

set_matrix(matrix, space=”world”)
Set this transform matrix.
Arguments:

  • matrix {list} — list of 16 floats representing the matrix
  • space {str} — ‘object’ or ‘world’. Set the matrix in object space or world space (default: {“world”})

match_transformation_to(transform_name)
Match in world space, the translate, rotate and scale values to match the matrix of another transform node.
Arguments:

  • transform_name {str} — long name of a transform node to match it’s transformations

match_translation_to(transform_name)
Match in world space, the position of another transform node.
Arguments:

  • transform_name {str} — long name of a transform node to match it’s position

match_rotation_to(transform_name)
Match in world space, the rotation values of another transform node.
Arguments

  • transform_name {str} — long name of a transform node to match it’s rotation

match_scale_to(transform_name)
Match in world space, the scale values of another transform node.
Arguments:

  • transform_name {str} — long name of a transform node to match it’s scale

direct_connect(driver, translate=True, rotate=True, scale=True)
Direct connect a driver node to drive the transformation attributes on this node.
Arguments:

  • driver {str or IoTransform} — the driver node in this direct connection
  • translate {bool} — True to connect translate attributes (default: {True})
  • rotate {bool} — True to connect rotate attributes (default: {True})
  • scale {bool} — True to connect scale attributes (default: {True})

attr(attr)
A simple formatting method to return a str long name of this transform node + “.” + attr.
Arguments:

  • attr {str} — name of an attribute to return its full path

Returns: str — long name of this transform node + “.” + attr

aim_constraint_to(transforms, **kwargs)
Create an aim constraint in which this node is driven by other transform nodes.
Can take same arguments as cmds.aimConstraint().
Arguments:

  • transforms {list} — of str names of driver transforms driving this constraint

Returns: str — long name of the new constraint node

point_constraint_to(transforms, **kwargs)
Create a point constraint in which this node is driven by other transform nodes.
Can take same arguments as cmds.pointConstraint().
Arguments:

  • transforms {list} — of str long names of transforms drivers of constraint

Returns: str — long name of the new constraint node

orient_constraint_to(transforms, **kwargs)
Create an orient constraint in which this node is driven by other transform nodes.
Can take same arguments as cmds.orientConstraint().
Arguments:

  • transforms {list} — of str names of transforms to driver the constraint

Returns: str — long name of the new constraint node

scale_constraint_to(transforms, **kwargs)
Create a scale constraint in which this node is driven by other transform nodes.
Can take same arguments as cmds.scaleConstraint().
Arguments:

  • transforms {list} — of str names of transforms to driver the constraint

Returns: str — long name of the new constraint node

parent_constraint_to(transforms, **kwargs)
Create a parent constraint in which this node is driven by other transform nodes.
Can take same arguments as cmds.parentConstraint().
Arguments:

  • transforms {list} — of str names of transforms to driver the constraint

Returns: str — long name of the new constraint node

distance_from(dis_from)
Return, in Maya’s units, how far this transform is from an object or position.
Arguments:

  • dis_from {list or str} — list of XYZ global position or a name of a Maya Dag node.

Returns: float — distance from this node to ‘dis_from’

rename(new_name)
Rename this node.
Arguments:

  • new_name (str): new name for this node

Returns: str — the new short name (might not be same as new_name if new_name not unique)

local_axis(state=True)
Turn on or off display of local axis.
Arguments:

  • state {bool} — True to turn on False for off (default: {True})

get_shapes(skip_intermediate=False)
Return a list of long names of all the shapes under this transform, if any.
Arguments:

  • skip_intermediate {bool} — True to skip any shape set as intermediate (default: {False})

Returns: list — of str long names of all the shapes under this transform

set_rotation_order(rotation_order)
Set the rotation order on this transform.
Arguments:

  • rotation_order {str} —  rotation options: ‘xyz’, ‘yzx’, ‘zxy’, ‘xzy’, ‘yxz’, ‘zyx’

get_rotation_order()
Return rotation order of this transform.
Returns: str — rotation options: ‘xyz’, ‘yzx’, ‘zxy’, ‘xzy’, ‘yxz’, ‘zyx’

select(**kwargs)
Select this transform. Takes any arguments cmds.select takes.

is_exists()
Return True if node exists else return False.

hide(**kwargs)
Hide this node or selection or all objects based on flags. Takes same arguments cmds.hide() takes.

show(**kwargs)
Show this node or selection or all objects based on flags. Takes same arguments cmds.showHidden() takes.

_____________________________________________
Get Arise at: https://www.ariserigging.com

Updated on May 13, 2026

What are your Feelings

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
IoJointExample Node Module
  • Home
  • Pricing
  • Support
  • My account
  • Privacy Policy
  • EULA

Copyright © 2026 - Arise Rigging System

This website uses cookies to ensure you get the best experience. By using this site, you agree to our use of cookies.
Accept
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SAVE & ACCEPT