Go to: Synopsis. Return value. Related. Flags. MEL examples.


dagPose [-addToPose] [-atPose] [-bindPose] [-global] [-members] [-name string] [-remove] [-reset] [-restore] [-save] [-selection] [-worldParent] [objects]

dagPose is undoable, queryable, and editable.

This command is used to save and restore the matrix information for a dag hierarchy. Specifically, the data stored will restore the translate, rotate, scale, scale pivot, rotate pivot, rotation order, and (for joints) joint order for all the objects on the hierarchy. Data for other attributes is not stored by this command.

This command can also be used to store a bindPose for an object. When you skin an object, a dagPose is automatically created for the skin.

Return value

stringName of pose

In query mode, return type is based on queried flag.


bindSkin, retarget, skinCluster


addToPose, atPose, bindPose, global, members, name, remove, reset, restore, save, selection, worldParent
Long name (short name) Argument types Properties
-save(-s) create
Save a dagPose for the selected dag hierarchy. The name of the new pose will be returned.
-restore(-r) create
Restore the hierarchy to a saved pose. To specify the pose, select the pose node, or use the -bp/-bindPose or -n/-name flag.
-name(-n) string createquery
Specify the name of the pose. This can be used during create, restore, reset, remove, and query operations to specify the pose to be created or acted upon.
-bindPose(-bp) createquery
Used to specify the bindPose for the selected hierarchy. Each hierarchy can have only a single bindPose, which is saved automatically at the time of a skin bind. The bindPose is used when adding influence objects, binding new skins, or adding flexors. Take care when modifying the bindPose with the -rs/-reset or -rm/-remove flags, since if the bindPose is ill-defined it can cause problems with subsequent skinning operations.
-reset(-rs) create
Reset the pose on the selected joints. If you are resetting pose data for a bindPose, take care. It is appropriate to use the -rs/-reset flag if a joint has been reparented and/or appears to be exactly at the bindPose. However, a bindPose that is much different from the exact bindPose can cause problems with subsequent skinning operations.
-remove(-rm) create
Remove the selected joints from the specified pose.
-members(-m) query
Query the members of the specified pose. The pose should be specified using the selection list, the -bp/-bindPose or the -n/-name flag.
-atPose(-ap) query
Query whether the hierarchy is at same position as the pose. Names of hierarchy members that are not at the pose position will be returned. An empty return list indicates that the hierarchy is at the pose.
-global(-g) create
This flag can be used in conjunction with the restore flag to signal that the members of the pose should be restored to the global pose. The global pose means not only is each object locally oriented with respect to its parents, it is also in the same global position that it was at when the pose was saved. If a hierarchy's parenting has been changed since the time that the pose was saved, you may have trouble reaching the global pose.
-selection(-sl) createquery
Whether or not to store a pose for all items in the hierarchy, or for only the selected items.
-addToPose(-a) create
Allows adding the selected items to the dagPose.
-worldParent(-wp) create
Indicates that the selected pose member should be recalculated as if it is parented to the world. This is typically used when you plan to reparent the object to world as the next operation.

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can be used more than once in a command.

MEL examples

  // To create a pose for all objects parented above and below
  // the selected items.
  dagPose -save;

  // To create a dagPose named "mypose" for the selected items only and not
  // the dag objects parented below the selected items.
  dagPose -save -selection -name mypose;

  // To restore the local (rather than global) mypose pose
  dagPose -restore mypose;

  // To restore the mypose pose in global mode.
  dagPose -restore -global mypose;

  // To query the members of the mypose pose.
  dagPose -query -members mypose;

  // To return the name (if any) of the bindPose attached to the
  // selected items.
  dagPose -q -bindPose;

  // To reset the pose data on a joint named bigToe for "mypose"
  dagPose -reset -n mypose bigToe;

  // To remove a joint named pinky from "mypose"
  dagPose -remove -n mypose pinky;

// To restore the skeleton to its bindPose
dagPose -restore -global -bindPose;