v6.0
Executes a Softimage Command
identified by its scripting name. This method can be used to
execute any built-in or custom command. This method is similar to
XSIApplication.ExecuteScriptCommand,
but unlike ExecuteScriptCommand, the method doesn't pack output
arguments in an ISIVTCollection object but rather in a standard
Array.
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 applications written with C# to be able to
call Softimage commands.
oVariant = XSIApplication.ExecuteCommand( Name, [Arguments] ); |
Returns a C# System.Object or a Variant in scripting, containing the value returned from the command. If the command has no return value explicitly defined, ExecuteCommand returns all output arguments in an Array object. However, if the command defines a return value, you cannot extract any output arguments from it. This is because the command is not returning an output argument array, but a specific value. You can check the Return Value section in the Softimage reference documentation to see whether it uses an explicit return value and what that value is.
Parameter | Type | Description |
---|---|---|
Name | String | Command's script name |
Arguments | Array of Variants in scripting or array of System.Objects in C#. | Array of all required command arguments, including output arguments. |
// // This example illustrates how to use Softimage commands from C#. // CXSIApplication xsi = new CXSIApplication(); try { // Create a cube to add the new property Object[] args = new Object[4] { "Cube", "MeshSurface", null, null }; xsi.ExecuteCommand("CreatePrim", args); // Add an Annotation property to the new cube args = new Object[5] { "Annotation", null, null, "Annotation", null }; Array retVal = (Array)xsi.ExecuteCommand("SIAddProp", args); // Inspect the Annotation Property args = new Object[5]; args[0] = retVal; xsi.ExecuteCommand("InspectObj", args); } catch (Exception e) { xsi.LogMessage("Exception raised: " + e.ToString(), siSeverity.siError); } |