Init (Command)

Description

Fired the first time a command is invoked after the plug-in is loaded. Specifies the return value and arguments of the command.

Unlike other commands in Softimage (both custom and native), self-installing custom commands are added to the Softimage command map when Softimage loads and removed when Softimage terminates (or when explicitly uninstalled). For this reason, self-installing commands must be defined inside the Init callback.

Applies To

Custom Commands

Syntax

// C#
public class <command_name>
{
   public bool Init( Context in_ctxt )
   {
       ...
   }
}

 

// C++
CStatus <command_name>_Init( CRef& in_context )
{
   ...
}

// JScript
function <command_name>_Init( in_context )
{
   ...
}

# Python
def <command_name>_Init( in_context )
   ...

' VBScript
Function <command_name>_Init( in_context )
   ...
End Function

# PerlScript
sub <command_name>_Init 
{ 
   my $in_context = shift; 
}

<command_name> is the name specified in the call to PluginRegistrar.RegisterCommand, with any spaces removed.

Parameters

Parameter

Language

Type

Description

in_context

Scripting and C#

Context

Context.Source returns the Command.

C++

CRef &

A reference to the Context object.

Context::GetSource returns the Command .

Examples

JScript Example

// JScript code generated by the Command Wizard
function XSILoadPlugin( in_reg )
{
   in_reg.Author = "sblair";
   in_reg.Name = "My_JsCommandPlugin";
   in_reg.Email = "";
   in_reg.URL = "";
   in_reg.Major = 1;
   in_reg.Minor = 0;

   in_reg.RegisterCommand("My_JsCommand","My_JsCommand");
   //RegistrationInsertionPoint - do not remove this line

   return true;
}

function My_JsCommand_Init( ctxt )
{
   var oCmd;
   oCmd = ctxt.Source;
   oCmd.Description = "";
   oCmd.ReturnValue = true;

   var oArgs;
   oArgs = oCmd.Arguments;
   oArgs.AddWithHandler("Arg0","AnimatableParameters");
   oArgs.AddWithHandler("Arg1","Collection");
   oArgs.AddWithHandler("Arg2","SingleObj");
   oArgs.Add("Arg5",siArgumentInput);
   return true;
}

function My_JsCommand_Execute( Arg0,Arg1,Arg2,Arg5 )
{

   Application.LogMessage("My_JsCommand_Execute called");
   // 
   // TODO: Put your command implementation here.
   // 
   return true;
}

C++ Example

// C++ code generated by the Command Wizard
#include <xsi_application.h>
#include <xsi_context.h>
#include <xsi_pluginregistrar.h>
#include <xsi_status.h>
#include <xsi_argument.h>
#include <xsi_command.h>
using namespace XSI; 

XSIPLUGINCALLBACK CStatus XSILoadPlugin( PluginRegistrar& in_reg )
{
   in_reg.PutAuthor(L"sblair");
   in_reg.PutName(L"CmdCppExamplePlugin");
   in_reg.PutEmail(L"");
   in_reg.PutURL(L"");
   in_reg.PutVersion(1,0);
   in_reg.RegisterCommand(L"CmdCppExample",L"CmdCppExample");
   //RegistrationInsertionPoint - do not remove this line

   return CStatus::OK;
}

XSIPLUGINCALLBACK CStatus XSIUnloadPlugin( const PluginRegistrar& in_reg )
{
   CString strPluginName = in_reg.GetName();
   Application().LogMessage(strPluginName + L" has been unloaded.");
   return CStatus::OK;
}

XSIPLUGINCALLBACK CStatus CmdCppExample_Init( CRef& in_ctxt )
{
   Context ctxt( in_ctxt );
   Command oCmd;
   oCmd = ctxt.GetSource();
   oCmd.PutDescription(L"");
   oCmd.EnableReturnValue(true);

   ArgumentArray oArgs;
   oArgs = oCmd.GetArguments();
   oArgs.AddWithHandler(L"Arg0",L"AnimatableParameters");
   oArgs.AddWithHandler(L"Arg1",L"Collection");
   oArgs.AddWithHandler(L"Arg2",L"SingleObj");
   oArgs.AddWithHandler(L"Arg3",L"Frame");
   oArgs.AddWithHandler(L"Arg4",L"MarkedParameters");
   oArgs.Add(L"Arg5");
   return CStatus::OK;
}

XSIPLUGINCALLBACK CStatus CmdCppExample_Execute( CRef& in_ctxt )
{
   Context ctxt( in_ctxt );
   CValueArray args = ctxt.GetAttribute(L"Arguments");
   CValue Arg0 = args[0];
   CValue Arg1 = args[1];
   CValue Arg2 = args[2];
   CValue Arg3 = args[3];
   CValue Arg4 = args[4];
   CValue Arg5 = args[5];

   Application().LogMessage(L"CmdCppExample_Execute called");
   // 
   // TODO: Put your command implementation here.
   // 
   // Return a value by setting this attribute:
   ctxt.PutAttribute( L"ReturnValue", true );

   // Return CStatus::Fail if you want to raise a script error
   return CStatus::OK;
}

See Also

Command Callbacks

Execute (Command)

Redo

TermUndoRedo

Undo

Custom Command Examples



Autodesk Softimage v7.5