Prompts the user to pick an object.

Tip: You can use "PickElement [object_name]" to set output parameters.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:

For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.

For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

Scripting Syntax

PickObject( LeftMessage, MiddleMessage, [PickedElement], [ButtonPressed], [ModifierPressed] );


Parameter Type Description
LeftMessage String Status bar message for the left mouse button.
MiddleMessage String Status bar message for the middle mouse button.
PickedElement CollectionItem Returns the picked object.
ButtonPressed Long Returns the mouse button clicked by the user.

Possible Values:


0 Right mouse button (or the Esc key), which means the user aborted the picking session
1 Left mouse button
2 Middle mouse button
ModifierPressed Long Returns the modifier key pressed by the user.

Possible Values:


0 None
1 Shift modifier key
2 Ctrl modifier key
3 Shift-Ctrl modifier key


VBScript Example

' The following example will use "PickObject" to pick two objects 
' consecutively and will make the first object parent of the second one.
dim parent, child, button, modifier
CreatePrim "Cone", "MeshSurface"
CreatePrim "Cylinder", "MeshSurface"
Translate , -0.118156772275078, -5.87851913444323, 0.587851913444323, _
                siRelative, siView, siObj, siXYZ
PickObject "Select parent", "Select parent", parent, button
if button <> 0 then
        PickObject "Select child", "Select child", child, button, modifier
        if button <> 0 then
                if modifier = 0 then
                        ParentObj parent, child
                        logMessage "object " & parent & " is now parent of object " & child
                        ParentObj child, parent
                        logMessage "object " & child & " is now parent of object " & parent
                end if
        end if
end if