如何使用API从C#应用程序运行Simio模型

如何使用API从C#应用程序运行Simio模型,c#,api,simulation,C#,Api,Simulation,我想从C#应用程序运行一个Simio模型。我不想打开Simio并从那里运行模型。这可能吗?是的,这是可能的。看看SimioProjectFactory类。从那里,您可以加载现有的.spfx文件并运行附加的实验。您还可以看到结果等等 下面是如何加载项目并获取其中的第一个模型。从这里开始,一切都与编写外接程序类似: string[] warnings; ISimioProject project = SimioProjectFactory.LoadProject("Test.spfx", out w

我想从C#应用程序运行一个Simio模型。我不想打开Simio并从那里运行模型。这可能吗?

是的,这是可能的。看看SimioProjectFactory类。从那里,您可以加载现有的.spfx文件并运行附加的实验。您还可以看到结果等等

下面是如何加载项目并获取其中的第一个模型。从这里开始,一切都与编写外接程序类似:

string[] warnings;
ISimioProject project = SimioProjectFactory.LoadProject("Test.spfx", out warnings);    
IModel model= project.Models[1];
...
玩得开心!
Nicolas

您可以使用以下代码运行实验:

// Open project
string[] warnings;
ISimioProject project = SimioProjectFactory.LoadProject(getFile.FileName, out warnings);    
IModel model = project.Models[1];
然后你就可以访问模型的实验了。您可以添加新实验,或运行现有实验:

IExperiment experiment = model.Experiments.Create("MyExperiment");

// Setup the experiment (optional)
// Specify run times.
IRunSetup setup = experiment.RunSetup;
setup.StartingTime = new DateTime(2010, 10, 01);
setup.WarmupPeriod = TimeSpan.FromHours(0);
setup.EndingTime = experiment.RunSetup.StartingTime + TimeSpan.FromDays(runtime);
experiment.ConfidenceLevel = ExperimentConfidenceLevelType.Point90;
experiment.LowerPercentile = 5;
experiment.UpperPercentile = 95;

// Add event handler for events from experiment
experiment.ScenarioEnded += new EventHandler<ScenarioEndedEventArgs>(experiment_ScenarioEnded);
experiment.RunCompleted += new EventHandler<RunCompletedEventArgs>(experiment_RunCompleted);
experiment.RunProgressChanged += new EventHandler<RunProgressChangedEventArgs>(experiment_RunProgressChanged);
experiment.ReplicationEnded += new EventHandler<ReplicationEndedEventArgs>(experiment_ReplicationEnded);

// Run Experiment, will call event handler methods when finished etc.
experiment.RunAsync();
ieexperiment-experiment=model.Experiments.Create(“MyExperiment”);
//设置实验(可选)
//指定运行时间。
IRunSetup setup=experience.RunSetup;
setup.StartingTime=新日期时间(2010,10,01);
setup.warmupperoid=TimeSpan.FromHours(0);
setup.EndingTime=experience.RunSetup.StartingTime+TimeSpan.FromDays(运行时);
experience.ConfidenceLevel=ExperimentConfidenceLevelType.Point90;
实验。低百分位数=5;
实验。上百分位=95;
//为实验中的事件添加事件处理程序
experiment.ScenarioEnded+=新事件处理程序(experiment\u ScenarioEnded);
experiment.RunCompleted+=新的事件处理程序(experiment\u RunCompleted);
experiment.RunProgressChanged+=新的事件处理程序(experiment\u RunProgressChanged);
experiment.ReplicationEnded+=新事件处理程序(experimentReplicationEnded);
//运行实验,完成后将调用事件处理程序方法等。
RunAsync();
希望这能帮助你开始。请随便问更多的问题


尼古拉斯

这些职能的背景是什么?我该如何进行实际的实验?在API中找不到任何引用SimioProjectFactory的内容。是否有可能看到一个简单的脚本,它运行一个示例simio模型,就像打开程序并点击run一样?非常感谢!SimioProjectFactory位于SimioAPI命名空间中,包含在SimioDell中。您可以在Simio API论坛上找到更多信息,例如: