IntroductionModel customization is performed whenever a model is run. When an Isight job is created, a copy of the not-yet-customized model is sent to the Isight runtime system (either the local runtime engine or the SIMULIA Execution Engine), along with an “initial context” that provides new initial values for the input parameters of the model’s root component. This copy is processed by the model customizer, with alterations being made in response to configuration data provided by the initial context. The resulting post-customized model is then validated. If it passes validation, the requested job is created around it and dispatched for execution. Finally, the post-customized model is returned to the client application that created the job, for use as the client requires. For example, if the job was created by the Runtime Gateway, the customized model will be displayed, with the History tab, graphs, and tables, etc., all configured to match that model. Note: For jobs run in the SIMULIA Execution Engine environment, model customization scripts are executed on the SIMULIA Execution Engine computer, not on the stations that run the individual components. Therefore, for models that you intend to run in the SIMULIA Execution Engine environment, it is strongly recommended that you do not write customization scripts that depend on external resources (e.g., files, other programs, etc.). If this is unavoidable, you must ensure that those resources are accessible on the SIMULIA Execution Engine computer and consider the security implications and multi-user scenarios. Customization Script EvaluationThe customization process is a complete traversal of the model hierarchy, during which each customization script that is not disabled is evaluated as follows:
Scripting LanguagesEach customization script is written in one scripting language and is evaluated in an “interpreter” object specific to that language. The “interpreter” implementation for each supported scripting language allows Java objects to be created in, or added to, the scripting environment and manipulated within that environment. The supported languages are Jython and DynamicJava. Initial Global VariablesEach script is interpreted within an environment that initially contains no global variables, except for the following Java objects:
Classes/Interfaces ImportedEach scripting language includes at least one “import” command (not necessarily of that name), which can be used to make external code packages available within an interpreter, including Java class and interface definitions provided by Isight or other sources. For convenience, each of the following classes or interfaces is imported before each script is interpreted: java.lang.Boolean java.lang.Double java.lang.Integer java.io.File com.engineous.common.i18n.IString com.engineous.sdk.designdriver.parameters.DesignVariable com.engineous.sdk.designdriver.parameters.Factor com.engineous.sdk.designdriver.parameters.Objective com.engineous.sdk.designdriver.parameters.OutputConstraint com.engineous.sdk.designdriver.parameters.RandomVariable com.engineous.sdk.designdriver.parameters.Response com.engineous.sdk.designdriver.parameters.TaguchiResponse com.engineous.sdk.designdriver.plan.DOEPlan com.engineous.sdk.designdriver.plan.MonteCarloPlan com.engineous.sdk.designdriver.plan.OptimizationPlan com.engineous.sdk.designdriver.plan.ReliabilityPlan com.engineous.sdk.designdriver.plan.SDIPlan com.engineous.sdk.designdriver.plan.SixSigmaPlan com.engineous.sdk.designdriver.plan.TaguchiPlan com.engineous.sdk.designdriver.plan.TargetSolverPlan com.engineous.sdk.log.Log com.engineous.sdk.model.DtComponent com.engineous.sdk.model.DtDesignPlan com.engineous.sdk.model.DtModelManager com.engineous.sdk.model.DtUtils com.engineous.sdk.model.exceptions.DtModelException com.engineous.sdk.vars.EsiTypes com.engineous.sdk.vars.Variable com.engineous.sdk.vars.VariableException com.engineous.sdk.vars.VariableReference com.engineous.sdk.vars.VariableUtil |