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 (this is the revision I used). 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 :
from D:\ODA\shell\plugins\DeltaShell.Plugins.OpenDA
DeltaShell.Plugins.OpenDA
OpenDA.DotNet.AdditionalInterfaces
from 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:
Code Block |
---|
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 a text file named settings.xml in D:\ODA. These are the contents:
Code Block |
---|
<?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> |
Running it.
Start the runner application and click the button. If all goes well your model.dsproj project will contain a model called Calibrated model. This is the model that was passed in to the SaveInstance method of the provider.