I was trying to find the right code to make maya select all the geometry objects in my scene. I tried to echo command while doing the operation and I get this:
SelectAllGeometry;
select -r `listTransforms -geometry`;
(Edit > Select All by Type > Geometry)
Could anyone translate this to Python?
What you're seeing is the procedure SelectAllGeometry
, and its contents:
select -r `listTransforms -geometry`;
That command is several parts. The part in the backquotes:
listTransforms -geometry
Is actually a MEL procedure. Run the command help listTransforms
to see the path to the .mel file. Reading that, the command is actually
listRelatives("-p", "-path", eval("ls", $flags));
The output of that is the argument to:
select -r the_list_of_geometry_transforms
So check out Maya's MEL and Python command reference for select
, listRelatives
, and ls
, to research how one command translates to the other:
Combining that all together, the equivalent MEL actually being called is:
select -r `listRelatives("-p", "-path", eval("ls", $flags))`
And as Python, that would be:
from maya import cmds
cmds.select(cmds.listRelatives(cmds.ls(geometry=True), p=True, path=True), r=True)
Expanded out to be just a tad more readable:
from maya import cmds
geometry = cmds.ls(geometry=True)
transforms = cmds.listRelatives(geometry, p=True, path=True)
cmds.select(transforms, r=True)