Skip to main content

Execute a script

Execute script code

You can execute a C# script using the ExecuteScriptCode method of the IApplication object.

public void ExecuteScriptCode(ICommandContext c, ICommandParams p) 
{
var script = @"
var currentProject = CurrentProject;
if ( currentProject == null ) return;
App.Output.WriteLine(""sample"",currentProject.Name);";

//Execute the script
c.App.ExecuteScriptCode(script,"cs");
}

The return value of the script returns the result object of the script's return statement. If the script does not have a return statement, it returns null.

public void ExecuteScriptCode(ICommandContext c, ICommandParams p) 
{
var script = @"return CurrentProject.?Name";

//Execute the script
var result = c.App.ExecuteScriptCode(script, "cs");
if (result == null) result = "(null)";

c.App.Output.WriteLine("sample", result.ToString());
}

Execute a script file

Loads and executes the script file specified by the ExecuteScript method of the IApplication object.

public void ExecuteScript(ICommandContext c, ICommandParams p) 
{
//Absolute path of the script file
var scriptFilePath = "c:/data/myscript.cs";

//Execute the script
c.App.ExecuteScript(scriptFilePath);
}

Pass parameters to the script

You can pass parameters to the script.

public void ExecuteScript(ICommandContext c, ICommandParams p) 
{
IScriptParams scriptParams = c.App.CreateScriptParams();
scriptParams.AddParamWithName("modelName", "ABC");
scriptParams.AddParamWithName("close", true);

//Execute the script
c.App.ExecuteScript("c:/data/myscript.cs", scriptParams);
}

You can handle parameters in the script with the Params object like this:

var modelName = Params["modelName"]; 
var close = (bool)Params["close"];

//...