Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r1122 -r1156 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1122) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1156) @@ -260,7 +260,17 @@ location.PlLineOffsetBelowDikeToeAtPolder = 1.0 * i + 0.23; location.HeadPl2 = 1.0 * i + 0.24; location.HeadPl3 = 1.0 * i + 0.25; - location.HeadPl4 = 1.0 * i + 0.21; + location.HeadPl4 = 1.0 * i + 0.26; + // Used for regional assessment + location.DikeTableHeight = 1.0 * i + 0.27; + location.BoezemLevelHbp = 1.0 * i + 0.28; + location.BoezemLevelLbp = 1.0 * i + 0.29; + location.BoezemLevelTp = 1.0 * i + 0.30; + location.RwBankProtectionBottomLevel = 1.0 * i + 0.31; + location.DredgingDepth = 1.0 * i + 0.32; + location.DetrimentFactor = 1.0 * i + 0.33; + location.DikeMaterialType = SoilType.Loam; + location.SurfaceLine = dike.SurfaceLines2[i]; location.Segment = segments[i % 2]; // alternate between the 2 available segments for (int j = 0; j < 3; j++) Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs =================================================================== diff -u -r1117 -r1156 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 1117) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 1156) @@ -1045,16 +1045,41 @@ /// /// Converts to output RegionalResult Type. /// - /// The RegionalResultType. + /// The RegionalResultType. /// - public static int ConvertToOutputRegionalResultType(RegionalResultType RegionalResultType) + public static int ConvertToOutputRegionalResultType(RegionalResultType regionalResultType) { var translationTable = new Dictionary() { {RegionalResultType.ProbabilityOfFailure, 0}, {RegionalResultType.SafetyFactor, 1} }; - return translationTable[RegionalResultType]; + return translationTable[regionalResultType]; } + + public static SoilType ConvertToSoilType(LocationAssesmentRegionalOptionsDikeMaterialType dikeMaterialType) + { + var translationTable = new Dictionary() + { + {LocationAssesmentRegionalOptionsDikeMaterialType.Clay, SoilType.Clay}, + {LocationAssesmentRegionalOptionsDikeMaterialType.Gravel, SoilType.Gravel}, + {LocationAssesmentRegionalOptionsDikeMaterialType.Loam, SoilType.Loam}, + {LocationAssesmentRegionalOptionsDikeMaterialType.Peat, SoilType.Peat}, + {LocationAssesmentRegionalOptionsDikeMaterialType.Sand, SoilType.Sand} + }; + return translationTable[dikeMaterialType]; + } + public static LocationAssesmentRegionalOptionsDikeMaterialType ConvertToInputSoilType(SoilType soilType) + { + var translationTable = new Dictionary() + { + {SoilType.Clay, LocationAssesmentRegionalOptionsDikeMaterialType.Clay}, + {SoilType.Gravel, LocationAssesmentRegionalOptionsDikeMaterialType.Gravel}, + {SoilType.Loam, LocationAssesmentRegionalOptionsDikeMaterialType.Loam}, + {SoilType.Peat, LocationAssesmentRegionalOptionsDikeMaterialType.Peat}, + {SoilType.Sand, LocationAssesmentRegionalOptionsDikeMaterialType.Sand} + }; + return translationTable[soilType]; + } } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs =================================================================== diff -u -r1089 -r1156 --- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1089) +++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1156) @@ -307,6 +307,8 @@ private bool xSoilGeometry2DOriginFieldSpecified; + private double dikeTableHeightField; + /// public LocationAssesmentRegionalOptions AssesmentRegionalOptions { get { @@ -463,6 +465,17 @@ this.xSoilGeometry2DOriginFieldSpecified = value; } } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public double DikeTableHeight { + get { + return this.dikeTableHeightField; + } + set { + this.dikeTableHeightField = value; + } + } } /// @@ -475,19 +488,20 @@ private LocationAssesmentRegionalOptionsDikeMaterialType dikeMaterialTypeField; - private double dredgingDepthField; + private double boezemLevelLbpField; - private bool dredgingDepthFieldSpecified; + private double boezemLevelTpField; + private double boezemLevelHbpField; + private double detrimentFactorField; - private double dikeTableHeightField; + private double dredgingDepthField; - private bool dikeTableHeightFieldSpecified; + private double regionalBankProtectionBottomLevelField; public LocationAssesmentRegionalOptions() { this.dikeMaterialTypeField = LocationAssesmentRegionalOptionsDikeMaterialType.Clay; - this.detrimentFactorField = 0.95D; } /// @@ -504,29 +518,39 @@ /// [System.Xml.Serialization.XmlAttributeAttribute()] - public double DredgingDepth { + public double BoezemLevelLbp { get { - return this.dredgingDepthField; + return this.boezemLevelLbpField; } set { - this.dredgingDepthField = value; + this.boezemLevelLbpField = value; } } /// - [System.Xml.Serialization.XmlIgnoreAttribute()] - public bool DredgingDepthSpecified { + [System.Xml.Serialization.XmlAttributeAttribute()] + public double BoezemLevelTp { get { - return this.dredgingDepthFieldSpecified; + return this.boezemLevelTpField; } set { - this.dredgingDepthFieldSpecified = value; + this.boezemLevelTpField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] - [System.ComponentModel.DefaultValueAttribute(0.95D)] + public double BoezemLevelHbp { + get { + return this.boezemLevelHbpField; + } + set { + this.boezemLevelHbpField = value; + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] public double DetrimentFactor { get { return this.detrimentFactorField; @@ -538,23 +562,23 @@ /// [System.Xml.Serialization.XmlAttributeAttribute()] - public double DikeTableHeight { + public double DredgingDepth { get { - return this.dikeTableHeightField; + return this.dredgingDepthField; } set { - this.dikeTableHeightField = value; + this.dredgingDepthField = value; } } /// - [System.Xml.Serialization.XmlIgnoreAttribute()] - public bool DikeTableHeightSpecified { + [System.Xml.Serialization.XmlAttributeAttribute()] + public double RegionalBankProtectionBottomLevel { get { - return this.dikeTableHeightFieldSpecified; + return this.regionalBankProtectionBottomLevelField; } set { - this.dikeTableHeightFieldSpecified = value; + this.regionalBankProtectionBottomLevelField = value; } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs =================================================================== diff -u -r1122 -r1156 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1122) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1156) @@ -320,6 +320,17 @@ waternetOptions.Pl1BelowToeDikePolderside = location.PlLineOffsetBelowDikeToeAtPolder; inputLocation.WaternetOptions = waternetOptions; + var assesmentRegionalOptions = new LocationAssesmentRegionalOptions(); + inputLocation.DikeTableHeight = location.DikeTableHeight; + assesmentRegionalOptions.BoezemLevelHbp = location.BoezemLevelHbp; + assesmentRegionalOptions.BoezemLevelLbp = location.BoezemLevelLbp; + assesmentRegionalOptions.BoezemLevelTp = location.BoezemLevelTp; + assesmentRegionalOptions.RegionalBankProtectionBottomLevel = location.RwBankProtectionBottomLevel; + assesmentRegionalOptions.DredgingDepth = location.DredgingDepth; + assesmentRegionalOptions.DetrimentFactor = location.DetrimentFactor; + assesmentRegionalOptions.DikeMaterialType = ConversionHelper.ConvertToInputSoilType(location.DikeMaterialType); + inputLocation.AssesmentRegionalOptions = assesmentRegionalOptions; + // Design options var designOptions = new LocationDesignOptions(); if (designOptions != null) Index: DamEngine/trunk/xsd/DamLocation.xsd =================================================================== diff -u -r972 -r1156 --- DamEngine/trunk/xsd/DamLocation.xsd (.../DamLocation.xsd) (revision 972) +++ DamEngine/trunk/xsd/DamLocation.xsd (.../DamLocation.xsd) (revision 1156) @@ -5,7 +5,7 @@ - + @@ -16,9 +16,12 @@ - - - + + + + + + @@ -193,5 +196,6 @@ + \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs =================================================================== diff -u -r1117 -r1156 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 1117) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 1156) @@ -554,5 +554,27 @@ { Assert.AreEqual(regionalResultType, ConversionHelper.ConvertToRegionalResultType(outputRegionalResultType)); } + + [Test] + [TestCase(SoilType.Clay, LocationAssesmentRegionalOptionsDikeMaterialType.Clay)] + [TestCase(SoilType.Gravel, LocationAssesmentRegionalOptionsDikeMaterialType.Gravel)] + [TestCase(SoilType.Loam, LocationAssesmentRegionalOptionsDikeMaterialType.Loam)] + [TestCase(SoilType.Peat, LocationAssesmentRegionalOptionsDikeMaterialType.Peat)] + [TestCase(SoilType.Sand, LocationAssesmentRegionalOptionsDikeMaterialType.Sand)] + public void CanConvertToSoilType(LocationAssesmentRegionalOptionsDikeMaterialType dikeMaterialType, SoilType soilType) + { + Assert.AreEqual(soilType, ConversionHelper.ConvertToSoilType(dikeMaterialType)); + } + + [Test] + [TestCase(LocationAssesmentRegionalOptionsDikeMaterialType.Clay, SoilType.Clay)] + [TestCase(LocationAssesmentRegionalOptionsDikeMaterialType.Gravel, SoilType.Gravel)] + [TestCase(LocationAssesmentRegionalOptionsDikeMaterialType.Loam, SoilType.Loam)] + [TestCase(LocationAssesmentRegionalOptionsDikeMaterialType.Peat, SoilType.Peat)] + [TestCase(LocationAssesmentRegionalOptionsDikeMaterialType.Sand, SoilType.Sand)] + public void CanConvertToDikeMaterialType(SoilType soilType, LocationAssesmentRegionalOptionsDikeMaterialType dikeMaterialType) + { + Assert.AreEqual(dikeMaterialType, ConversionHelper.ConvertToInputSoilType(soilType)); + } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r1122 -r1156 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1122) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1156) @@ -360,6 +360,17 @@ location.PlLineOffsetBelowDikeTopAtPolder = waternetOptions.Pl1BelowCrestPolderside; location.PlLineOffsetBelowShoulderBaseInside = waternetOptions.Pl1BelowShoulderCrestPolderside; location.PlLineOffsetBelowDikeToeAtPolder = waternetOptions.Pl1BelowToeDikePolderside; + // Regional settings + location.DikeTableHeight = inputLocation.DikeTableHeight; + var assesmentRegionalOptions = inputLocation.AssesmentRegionalOptions; + location.BoezemLevelHbp = assesmentRegionalOptions.BoezemLevelHbp; + location.BoezemLevelLbp = assesmentRegionalOptions.BoezemLevelLbp; + location.BoezemLevelTp = assesmentRegionalOptions.BoezemLevelTp; + location.RwBankProtectionBottomLevel = assesmentRegionalOptions.RegionalBankProtectionBottomLevel; + location.DredgingDepth = assesmentRegionalOptions.DredgingDepth; + location.DetrimentFactor = assesmentRegionalOptions.DetrimentFactor; + location.DikeMaterialType = ConversionHelper.ConvertToSoilType(assesmentRegionalOptions.DikeMaterialType); + // Design options var designOptions = inputLocation.DesignOptions; if (designOptions != null)