You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

This article describes what needs to be done if you want to create an application that uses the OpenDAModelProvider interface of deltashell to work with DS models. I created a windows forms application using the 'zip' file from the nightly build. Use at least revision 12906. There was a bug in earlier build

Setup

1 Create a folder called D:\ODA
2 Download deltashell.zip and extract it to D:\ODA\shell. Now you should have a folder D:\ODA\shell\plugins and D:\ODA\shell\release

Creating the application

3 Create a windows forms application called 'Runner' in D:\ODA\Runner
3.1 Add references to the following assemblies :
Located in D:\ODA\shell\plugins\DeltaShell.Plugins.OpenDA
DeltaShell.Plugins.OpenDA
OpenDA.DotNet.AdditionalInterfaces
D:\ODA\shell\release
OpenMI.Standard2
DelftTools.Shell.Core
DelftTools.Units
DelftTools.Utils
DeltaShell.Core

So your references look like this

Add a button to the form and add the following code to click event handler:

                var provider = new DeltaShell.Plugins.OpenDA.DeltaShellOpenDAModelProvider();
                provider.Initialize(@"D:\ODA", "settings.xml");
                var instance = provider.CreateInstance();
                provider.SaveInstance(instance);

Creating the model.

1 Start the loader in D:\ODA\shell\release\DeltaShell.Loader.exe. Do not use a different version of DS to create the model. You might get versioning problems with the file
2 Add a demo flow model via menu development->'flow model 1d (demo network)'.
3 Rename the model to 'model'.
4 Save the project as model.dsproj in d:\ODA and close DeltaShell

The settings file

Create an xml named settings.xml in D:\ODA. These are the contents:

<?xml version="1.0"?>
<DeltaShellOpenDAModelProviderSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ProjectPath>D:\ODA\model.dsproj</ProjectPath>
  <FullyQualifiedModelWrapperType>DeltaShell.Plugins.DelftModels.WaterFlowModel.OpenMI2.OpenMI2WaterFlow1DWrapper, DeltaShell.Plugins.DelftModels.WaterFlowModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</FullyQualifiedModelWrapperType>
  <ModelName>model</ModelName>
  <DeltaShellLoaderFolder>D:\ODA\shell\release</DeltaShellLoaderFolder>
</DeltaShellOpenDAModelProviderSettings>

Start the application and click the button.

If all goes well your model.dsproj project will contain model named 'Calibrated model'. This is the model that was passed in to the SaveInstance call.

  • No labels