Go to: Synopsis. Return value. Related.
Flags. Python
examples.
parent( [dagObject...] [dagObject] ,
[absolute=boolean], [addObject=boolean], [noConnections=boolean], [relative=boolean], [removeObject=boolean], [shape=boolean], [world=boolean])
Note: Strings representing object names and
arguments must be separated by commas. This is not depicted in the
synopsis.
parent is undoable, NOT queryable, and NOT
editable.
This command parents (moves) objects under a new group, removes
objects from an existing group, or adds/removes parents. If the -w
flag is specified all the selected or specified objects are
parented to the world (unparented first). If the -rm flag is
specified then all the selected or specified instances are removed.
If there are more than two objects specified all the objects are
parented to the last object specified. If the -add flag is
specified, the objects are not reparented but also become children
of the last object specified. If there is only a single object
specified then the selected objects are parented to that object. If
an object is parented under a different group and there is an
object in that group with the same name then this command will
rename the parented object.
string[] |
Names of the objects parented (possibly renamed) |
group, listRelatives
absolute, addObject, noConnections, relative, removeObject, shape, world
Long name (short name) |
Argument types |
Properties |
world(w) |
boolean |
|
|
unparent given object(s) (parent to world) |
|
relative(r) |
boolean |
|
|
preserve existing local object transformations (relative to the
parent node) |
|
absolute(a) |
boolean |
|
|
preserve existing world object transformations (overall object
transformation is preserved by modifying the objects local
transformation) If the object to parent is a joint, it will alter
the translation and joint orientation of the joint to preserve the
world object transformation if this suffices. Otherwise, a
transform will be inserted between the joint and the parent for
this purpose. In this case, the transformation inside the joint is
not altered. [default] |
|
addObject(add) |
boolean |
|
|
preserve existing local object transformations but don't
reparent, just add the object(s) under the parent. Use -world to
add the world as a parent of the given objects. |
|
removeObject(rm) |
boolean |
|
|
Remove the immediate parent of every object specified. To
remove only a single instance of a shape from a parent, the path to
the shape should be specified. Note: if there is a single parent
then the object is effectively deleted from the scene. Use -world
to remove the world as a parent of the given object. |
|
shape(s) |
boolean |
|
|
The parent command usually only operates on transforms. Using
this flags allows a shape that is specified to be directly parented
under the given transform. This is used to instance a shape node.
(ie. "parent -add -shape" is equivalent to the "instance" command).
This flag is primarily used by the file format. |
|
noConnections(nc) |
boolean |
|
|
The parent command will normally generate new instanced set
connections when adding instances. (ie. make a connection to the
shading engine for new instances) This flag supresses this
behaviour and is primarily used by the file format. |
|
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 have multiple arguments, passed
either as a tuple or a list. |
import maya.cmds as cmds
# Create some objects
cmds.circle( name='circle1' )
cmds.move( 5, 0, 0 )
cmds.group( n='group1' )
cmds.move( -5, 0, 0 )
cmds.group( em=True, n='group2' )
# Move the circle under group2.
# Note that the circle remains where it is.
cmds.parent( 'circle1', 'group2' )
# Let's try that again with the -relative flag. This time
# the circle will move.
cmds.undo()
cmds.parent( 'circle1', 'group2', relative=True )
# Create an instance of the circle using the parent command.
# This makes circle1 a child of group1 and group2.
cmds.undo()
cmds.parent( 'circle1', 'group2', add=True )
# Remove group1 as a parent of the circle
cmds.parent( 'group1|circle1', removeObject=True )
# Move the circle to the top of the hierarchy
cmds.parent( 'group2|circle1', world=True )
# Remove an instance of a shape from a parent
cmds.parent('nurbsSphere3|nurbsSphereShape1',shape=True,rm=True)