## XSIApplication.ExecuteScriptCommand

### Description

Executes a Softimage Command. This method can be used to execute any built-in or custom command. The name of the method is misleading, because compiled custom commands can also be executed via this method. For this reason the equivalent method in the C++ API has been renamed to Application::ExecuteCommand.
Typically this method is not necessary from scripting because Softimage commands can be invoked directly. So the main purpose of this method is to enable C++ applications written with COM to be able to call Softimage commands. With the advent of the C++ API it is rarely necessary to use this method.
This method, in scripting, can only return arguments via the return value. In C++ the arguments are supplied to the command via a variant containing a SafeArray. Output arguments must be passed by reference; this is done by setting the variant's argument type to VT_VARIANT | VT_BYREF.

### C# Syntax

    Object XSIApplication.ExecuteScriptCommand( String in_bzScriptName, Object in_vsa );

### Scripting Syntax

    oVariant = XSIApplication.ExecuteScriptCommand( Name, [Arguments] );

### Return Value

Variant (return value from script command)

### Parameters

Parameter | Type | Description
--- | --- | ---
Name | String | Command's script name
Arguments | Array of Variants | Array of all required script command arguments, including output arguments passed by reference. In C++ the argument is implemented as a variant containing a SafeArray of variants.

### Examples

#### 1. VBScript Example

    '

    '	This example illustrates how to create a image clip and inspect it using

    '	a modal property page.

    '

    Dim clip, args

    args = Array(Application.InstallationPath( siFactoryPath ) & "\Data\XSI_SAMPLES\Pictures\A_Green_Suit.JPG")

    set clip = ExecuteScriptCommand( "CreateImageClip", args )

    On Error Resume Next

    ExecuteScriptCommand "InspectObj", Array( clip,,,siModal)

    if Err.Number = siErrCancelled then

    	Application.LogMessage "command cancelled"

    end if

    On Error Goto 0

#### 2. VBScript Example

    '

    '	This example shows different ways to

    '	call a Softimage command from vbscript

    '

    ' Normal method.  This method will not work

    ' on Netview

    GetPrim "Null"

    ' This method will not work on Netview

    ' (because there is no global Application object)

    Application.GetPrim "Null"

    ' This is the method that works in a Netview

    ' script.  The oXsi object can be cached.

    set oXsi = CreateObject( "XSI.Application" )

    set oXsi = oXsi.Application

    oXsi.GetPrim "Null"

    ' Because of the convenience of the previous methods,

    ' this mechanism is not recommended from vbscript.

    ' it is most useful for COM C++ plug-ins

    Application.ExecuteScriptCommand "GetPrim", Array( "Null" )

#### 3. Python Example

    #

    # Python Example

    #

    args = ["Cone","MeshSurface","",""]

    retval = Application.ExecuteScriptCommand( "CreatePrim", args )

    args = [retval,"","", 4]	# siModal=4

    try:

    	Application.ExecuteScriptCommand( "InspectObj", args )

    except:

    	Application.LogMessage("command cancelled")

#### 4. JScript Example

    /*

    	JScript Example

    */

    var obj,i=0;

    var aArgs1 = new Array();

    i=0;

    aArgs1[i++] = "Cone";

    aArgs1[i++] = "MeshSurface";

    aArgs1[i++] = null;

    aArgs1[i++] = null;

    obj = ExecuteScriptCommand("CreatePrim", aArgs1 );

    var aArgs2 = new Array();

    i=0;

    aArgs2[i++] = obj

    aArgs2[i++] = null;

    aArgs2[i++] = null;

    aArgs2[i++] = siModal;

    try {

    	ExecuteScriptCommand("InspectObj", aArgs2 );

    }

    catch (e) {

    	LogMessage("command cancelled");

    }

### See Also

Application.ExecuteScript Command