Index: DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs
===================================================================
diff -u -r3701 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 3701)
+++ DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 3766)
@@ -687,7 +687,7 @@
var layer = soilProfile1D.Layers[i];
var inputLayer = new SoilProfile1DLayer1D
{
- Name = layer.Id,
+ Name = "L" + i,
SoilName = layer.Soil.Name,
TopLevel = layer.TopLevel,
IsAquifer = layer.IsAquifer,
Index: DamClients/DamUI/branches/DamUI 19.3/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs
===================================================================
diff -u -r3701 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 3701)
+++ DamClients/DamUI/branches/DamUI 19.3/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 3766)
@@ -470,7 +470,7 @@
{
var layer = new SoilLayer1D
{
- Id = "Layer" + (j + 1).ToString(),
+ Id = "L" + j,
Soil = dike.SoilList.Soils[j],
TopLevel = 1 * -j
};
Index: DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/Scenario.cs
===================================================================
diff -u -r3701 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/Scenario.cs (.../Scenario.cs) (revision 3701)
+++ DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/Scenario.cs (.../Scenario.cs) (revision 3766)
@@ -605,43 +605,42 @@
///
/// default value if not available
/// uplift criterion for this scenario
- public double GetUpliftCriterionStability(double? defaultUpliftCriterionStability)
+ public double GetUpliftCriterionStability(double defaultUpliftCriterionStability)
{
- if ((defaultUpliftCriterionStability == null) && (ModelFactors.UpliftCriterionStability == null))
+ if ((defaultUpliftCriterionStability < 0) && (ModelFactors.UpliftCriterionStability < 0))
{
throw new ScenarioException(String.Format(LocalizationManager.GetTranslatedText(this, "NoUpliftCriterionForStability"), Location.Name, ToString()));
}
- return (ModelFactors.UpliftCriterionStability == null ? defaultUpliftCriterionStability.Value
- : ModelFactors.UpliftCriterionStability);
+ return (ModelFactors.UpliftCriterionStability < 0 ? defaultUpliftCriterionStability : ModelFactors.UpliftCriterionStability);
}
///
/// Get uplift criterion for this scenario; return default value if not available
///
/// default value if not available
/// uplift criterion for this scenario
- public double GetUpliftCriterionPiping(double? defaultUpliftCriterionPiping)
+ public double GetUpliftCriterionPiping(double defaultUpliftCriterionPiping)
{
- if ((defaultUpliftCriterionPiping == null) && (ModelFactors.UpliftCriterionPiping == null))
+ if ((defaultUpliftCriterionPiping < 0) && (ModelFactors.UpliftCriterionPiping < 0))
{
throw new ScenarioException(String.Format(LocalizationManager.GetTranslatedText(this, "NoUpliftCriterionForPiping"), Location.Name, ToString()));
}
- return (ModelFactors.UpliftCriterionPiping == null ? defaultUpliftCriterionPiping.Value : ModelFactors.UpliftCriterionPiping);
+ return (ModelFactors.UpliftCriterionPiping < 0 ? defaultUpliftCriterionPiping : ModelFactors.UpliftCriterionPiping);
}
///
/// Get required safety factor for this scenario; return default value if not available
///
/// default value if not available
/// uplift criterion for this scenario
- public double GetRequiredSafetyFactorPiping(double? defaultRequiredSafetyFactorPiping)
+ public double GetRequiredSafetyFactorPiping(double defaultRequiredSafetyFactorPiping)
{
- if ((defaultRequiredSafetyFactorPiping == null) && (ModelFactors.RequiredSafetyFactorPiping == null))
+ if ((defaultRequiredSafetyFactorPiping < 0) && (ModelFactors.RequiredSafetyFactorPiping < 0))
{
throw new ScenarioException(String.Format(LocalizationManager.GetTranslatedText(this, "NoRequiredSafetyFactorPiping"), Location.Name, ToString()));
}
- return (ModelFactors.RequiredSafetyFactorPiping == null ? defaultRequiredSafetyFactorPiping.Value : ModelFactors.RequiredSafetyFactorPiping);
+ return (ModelFactors.RequiredSafetyFactorPiping < 0 ? defaultRequiredSafetyFactorPiping : ModelFactors.RequiredSafetyFactorPiping);
}
///
Index: DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs
===================================================================
diff -u -r3701 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs (.../DataPluginImporter.cs) (revision 3701)
+++ DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs (.../DataPluginImporter.cs) (revision 3766)
@@ -85,8 +85,7 @@
private readonly List importLogMessages = new List();
private List attributes;
private DamProjectType damProjectType;
- private bool csvDataAdded = false;
-
+
private string damProjectFolder;
///
@@ -1263,7 +1262,6 @@
importLogMessages.AddRange(combineImportedData.ErrorMessages);
Debug.Assert(ReferenceEquals(waterBoard, combineImportedData.WaterBoard));
waterBoard = combineImportedData.WaterBoard;
- csvDataAdded = true;
}
}
Index: DamClients/DamUI/branches/DamUI 19.3/src/Dam/Forms/DamSpatialEditorDecorator.cs
===================================================================
diff -u -r3701 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/Dam/Forms/DamSpatialEditorDecorator.cs (.../DamSpatialEditorDecorator.cs) (revision 3701)
+++ DamClients/DamUI/branches/DamUI 19.3/src/Dam/Forms/DamSpatialEditorDecorator.cs (.../DamSpatialEditorDecorator.cs) (revision 3766)
@@ -92,12 +92,18 @@
{
get
{
- var profileName = GeometryProbabilitiesCount > 0 ? GeometryProbabilities[index].SoilGeometryName : "";
- if (!String.IsNullOrEmpty(profileName))
+ if (index < GeometryProbabilitiesCount)
{
- var translatedPrefix = LocalizationManager.GetTranslatedText(this, "ProfileNamePrefix");
- return String.Concat(translatedPrefix, ": ", profileName);
+ var profileName = GeometryProbabilitiesCount > 0
+ ? GeometryProbabilities[index].SoilGeometryName
+ : "";
+ if (!String.IsNullOrEmpty(profileName))
+ {
+ var translatedPrefix = LocalizationManager.GetTranslatedText(this, "ProfileNamePrefix");
+ return String.Concat(translatedPrefix, ": ", profileName);
+ }
}
+
return "";
}
}
Index: DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/Location.cs
===================================================================
diff -u -r3701 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/Location.cs (.../Location.cs) (revision 3701)
+++ DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/Location.cs (.../Location.cs) (revision 3766)
@@ -1200,7 +1200,7 @@
{
foreach (var scenario in scenarios)
{
- if (scenario.RequiredSafetyFactorStabilityInnerSlope == null)
+ if (scenario.RequiredSafetyFactorStabilityInnerSlope < 0)
return new[]
{
new ValidationResult(ValidationResultType.Error,
Index: DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardPostProcessRelativeProfiles.cs
===================================================================
diff -u -r3751 -r3766
--- DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardPostProcessRelativeProfiles.cs (.../WaterBoardPostProcessRelativeProfiles.cs) (revision 3751)
+++ DamClients/DamUI/branches/DamUI 19.3/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardPostProcessRelativeProfiles.cs (.../WaterBoardPostProcessRelativeProfiles.cs) (revision 3766)
@@ -55,6 +55,9 @@
var orgSegment = location.Segment;
if (orgSegment != null)
{
+ var topSurfaceline = location.SurfaceLine2.CharacteristicPoints.Geometry.GetMaxZ();
+ var characteristicGeometryPoint = location.SurfaceLine2.CharacteristicPoints.GetGeometryPoint(characteristicPointType);
+ bool errorFound = false;
var newSegment = new Segment();
newSegment.Name = String.Format("Segment {0}-{1}", orgSegment.Name, location.Name);
int soilProbabilityIndex = 0;
@@ -63,7 +66,6 @@
soilProbabilityIndex++;
try
{
- var characteristicGeometryPoint = location.SurfaceLine2.CharacteristicPoints.GetGeometryPoint(characteristicPointType);
if (characteristicGeometryPoint == null)
{
throw new WaterBoardPostProcessRelativeProfilesException(String.Format("Characteristic point {0} is not defined", characteristicPointType));
@@ -95,21 +97,41 @@
{
soilProfile1D.BottomLevel += deltaZ;
}
-
+ var profileTopLevel = soilProfile1D.TopLevel;
+ // If the top of the profile is moved below the top of the surface level, a gap appears which will be filled in later in the UI
+ // to the combined 2D. However, for Piping calculation the 1D profile itself needs to start at least at the top of the surface line
+ // too in order to perform a correct calculation. So extend the 1D profile here too!
+ if (profileTopLevel < topSurfaceline)
+ {
+ var newTopLayer = new SoilLayer1D
+ {
+ SoilProfile = soilProfile1D,
+ MaintainLayerOrder = true,
+ TopLevel = topSurfaceline,
+ IsAquifer = false,
+ Soil = dike.SoilList.GetSoilByName(location.DikeEmbankmentMaterial)
+ };
+ soilProfile1D.Layers.Insert(0, newTopLayer);
+ }
+
// Add new SoilGeometryProbability to new segment and assign new segment to location
newSegment.SoilProfileProbabilities.Add(newSoilGeometryProbability);
- location.Segment = newSegment;
- waterBoard.Segments.Add(newSegment);
// Add new soil profile to existing list.
dike.SoilProfiles.Add(soilProfile1D);
}
catch (Exception e)
{
+ errorFound = true;
LogManager.Messages.Add(new LogMessage(LogMessageType.Error, location,
String.Format("Error in location '{0}' applying relative height for soilprofile '{1}': {2} ",
location.Name, orgSoilGeometryProbability.SoilGeometryName, e.Message)));
}
}
+ if (!errorFound)
+ {
+ location.Segment = newSegment;
+ waterBoard.Segments.Add(newSegment);
+ }
}
}
}