Index: DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportSoilProfileWithSurfaceLine.cs =================================================================== diff -u -r3571 -r3580 --- DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportSoilProfileWithSurfaceLine.cs (.../CsvExportSoilProfileWithSurfaceLine.cs) (revision 3571) +++ DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportSoilProfileWithSurfaceLine.cs (.../CsvExportSoilProfileWithSurfaceLine.cs) (revision 3580) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; +using Deltares.Geotechnics.Soils; using SoilProfile = Deltares.Geotechnics.Soils.SoilProfile; using SurfaceLine2 = Deltares.Geotechnics.SurfaceLines.SurfaceLine2; @@ -36,15 +37,19 @@ /// /// The soil profile. /// - public SoilProfile SoilProfile { get; set; } + public SoilProfile1D SoilProfile { get; set; } /// /// Gets or sets the surface line. /// /// /// The surface line. /// - public SurfaceLine2 SurfaceLine { get; set; } + public SurfaceLine2 SurfaceLine + { + get; + set; + } } } Index: DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportData.cs =================================================================== diff -u -r3572 -r3580 --- DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportData.cs (.../CsvExportData.cs) (revision 3572) +++ DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportData.cs (.../CsvExportData.cs) (revision 3580) @@ -29,11 +29,9 @@ using Deltares.Standard.EventPublisher; using Deltares.Standard.Units; using System; -using Deltares.DamEngine.Data.Geotechnics; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard.Attributes; using Deltares.Standard.IO; -using Deltares.Standard.IO.Xml; using CharacteristicPointType = Deltares.Geotechnics.SurfaceLines.CharacteristicPointType; using SoilProfile1D = Deltares.Geotechnics.Soils.SoilProfile1D; using SurfaceLine2 = Deltares.Geotechnics.SurfaceLines.SurfaceLine2; @@ -112,14 +110,56 @@ private string notes = ""; private StabilityKernelType selectedStabilityKernelType = StabilityKernelType.DamClassicStability; + // redesigned LOCAL surfaceline (initialized with original local surfaceline) private SurfaceLine2 redesignedSurfaceLine; + // redesigned Global surfaceline in use for this result (either piping or stability) private SurfaceLine2 redesignedSurfaceLineGlobal; + private CsvExportSoilProfileWithSurfaceLine soilProfileWithSurfaceLine; + + private double? stabilityToeAtPolderX; + private double? stabilityToeAtPolderY; + private double? stabilityShoulderHeight; + private double? zone1EntryPointX; + private double? zone1EntryPointY; + private double? zone1ExitPointX; + private double? zone1ExitPointY; + private double? zone2EntryPointX; + private double? zone2EntryPointY; + private double? zone2ExitPointX; + private double? zone2ExitPointY; + private double? dikeLength; + private double? dikeToeAtRiverXrd; + private double? dikeToeAtRiverYrd; + private double? dikeToeAtRiverZrd; + private double? dikeTopAtRiverXrd; + private double? dikeTopAtRiverYrd; + private double? dikeTopAtRiverZrd; + private double? dikeTopAtPolderXrd; + private double? dikeTopAtPolderYrd; + private double? dikeTopAtPolderZrd; + private double? dikeToeAtPolderXrd; + private double? dikeToeAtPolderYrd; + private double? dikeToeAtPolderZrd; + + private double? pipingToeAtPolderX; + private double? pipingToeAtPolderZ; + private double? pipingShoulderHeight; + private double? pl3LocationXMinUplift; + private double? pl3LocationYMinUplift; + private double? pl4LocationXMinUplift; + private double? pl4LocationYMinUplift; + private double? pipingEntryPointX; + private double? pipingEntryPointY; + private double? pipingExitPointX; + private double? pipingExitPointY; + public CsvExportData() { // this constructor is needed for the UI table even though is seems not to be referenced. + redesignedSurfaceLine = null; } /// @@ -139,7 +179,8 @@ /// The local point. /// The global surface line. /// - private GeometryPoint DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine(GeometryPoint localPoint, SurfaceLine2 globalSurfaceLine) + private GeometryPoint DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine(GeometryPoint localPoint, + SurfaceLine2 globalSurfaceLine) { CoordinateSystemConverter coordinateSystemConverter = new CoordinateSystemConverter(); coordinateSystemConverter.DefineGlobalXYZBasedOnLine(globalSurfaceLine.Geometry); @@ -151,7 +192,7 @@ [Browsable(false)] public StabilityKernelType SelectedStabilityKernelType { - get { return selectedStabilityKernelType; } + get { return selectedStabilityKernelType; } set { selectedStabilityKernelType = value; } } @@ -164,10 +205,7 @@ [ReadOnly(true)] public int NumberOfIterations { - get - { - return numberOfIterations; - } + get { return numberOfIterations; } set { numberOfIterations = value; } } @@ -186,22 +224,26 @@ { const string wmfExtension = ".wmf"; string fullBaseFilename = DamProject.ProjectWorkingPath; - if (CalculationSubDir != "") + if (CalculationSubDir != "") { fullBaseFilename = Path.Combine(fullBaseFilename, CalculationSubDir); } + fullBaseFilename = fullBaseFilename + Path.DirectorySeparatorChar + BaseFileName; string fullFilename = fullBaseFilename + wmfExtension; if (!File.Exists(fullFilename)) { fullFilename = fullBaseFilename + "z1" + wmfExtension; } + if (!File.Exists(fullFilename)) { fullFilename = fullBaseFilename + "z2" + wmfExtension; } + return fullFilename; } + return ""; } } @@ -224,15 +266,18 @@ { fileExtension = ".dsx"; } + string fullBaseFilename = DamProject.ProjectWorkingPath; if (CalculationSubDir != "") { fullBaseFilename = Path.Combine(fullBaseFilename, CalculationSubDir); } + fullBaseFilename = fullBaseFilename + Path.DirectorySeparatorChar + BaseFileName; string fullFilename = fullBaseFilename + fileExtension; return fullFilename; } + return ""; } } @@ -260,10 +305,12 @@ fullFilename = Path.Combine(fullFilename, PipingModel.ToString()); calculationSubDir = fullFilename; } + fullFilename = fullFilename + Path.DirectorySeparatorChar + BaseFileName; fullFilename = fullFilename + txtExtension; return fullFilename; } + return ""; } } @@ -284,81 +331,73 @@ { // Clone the specification to ensure a non-changeable version. damFailureMechanismeCalculationSpecification = value.Clone(); + if (damFailureMechanismeCalculationSpecification.FailureMechanismSystemType == FailureMechanismSystemType.Piping) + { + redesignedSurfaceLine = RedesignedSurfaceLine2; + } } } [CsvExportColumn("DikeName", 2)] [Browsable(false)] public string DikeName { - get - { - return dikeName; - } - set - { - dikeName = value; - } + get { return dikeName; } + set { dikeName = value; } } [CsvExportColumn("Calculation", 3)] [Browsable(false)] public string Calculation { - get { return damFailureMechanismeCalculationSpecification != null ? damFailureMechanismeCalculationSpecification.ToString() : ""; } + get + { + return damFailureMechanismeCalculationSpecification != null + ? damFailureMechanismeCalculationSpecification.ToString() + : ""; + } } [CsvExportColumn("Scenario", 4)] [Browsable(false)] public string ScenarioName { - get - { - return scenarioName; - } - set - { - scenarioName = value; - } + get { return scenarioName; } + set { scenarioName = value; } } [CsvExportColumn("LocationName", 5)] [PropertyOrder(0, 1)] [ReadOnly(true)] public string LocationName { - get - { - return locationName; - } - set - { - locationName = value; - } + get { return locationName; } + set { locationName = value; } } [PropertyOrder(0, 2)] [ReadOnly(true)] public string ScenarioDefinitionName { - get { return scenarioName + " of " + locationScenarioCount.ToString(); } + get { return scenarioName + " of " + LocationScenarioCount.ToString(); } } + [Browsable(false)] + public int LocationScenarioCount + { + get { return locationScenarioCount; } + set { locationScenarioCount = value; } + } + [PropertyOrder(0, 3)] [ReadOnly(true)] public CalculationResult CalculationResult { - get - { - return calculationResult; - } - set - { - calculationResult = value; - } + get { return calculationResult; } + set { calculationResult = value; } } - [PropertyOrder(8,1)] + [PropertyOrder(8, 1)] [ReadOnly(true)] public string ResultMessage { @@ -391,14 +430,8 @@ [ReadOnly(true)] public double X { - get - { - return xRd; - } - set - { - xRd = value; - } + get { return xRd; } + set { xRd = value; } } [CsvExportColumn("Y", 7)] @@ -409,14 +442,8 @@ [ReadOnly(true)] public double Y { - get - { - return yRd; - } - set - { - yRd = value; - } + get { return yRd; } + set { yRd = value; } } [CsvExportColumn("LocationScenarioId", 8)] @@ -517,10 +544,11 @@ private double? GetSoilProfileProbability(FailureMechanismSystemType? failureMechanismType) { - if (soilProfile != null) + if (SoilProfile != null) { return scenario.Location.GetSoilProfileProbability(soilProfile, failureMechanismType); } + return scenario.Location.GetSoilGeometry2DProbability(soilGeometry2DName, failureMechanismType); } @@ -577,14 +605,14 @@ { get { - if (redesignedSurfaceLineGlobal == null) - return null; - - GeometryPoint point = redesignedSurfaceLineGlobal.GetDikeToeInward(); + GeometryPoint point = redesignedSurfaceLineGlobal?.GetDikeToeInward(); if (point != null) - return point.X; - return null; + { + stabilityToeAtPolderX = point.X; + } + return stabilityToeAtPolderX; } + set => stabilityToeAtPolderX = value; } [CsvExportColumn("StabilityToeAtPolderZ", 22)] @@ -595,14 +623,14 @@ { get { - if (redesignedSurfaceLineGlobal == null) - return null; - - GeometryPoint point = redesignedSurfaceLineGlobal.GetDikeToeInward(); + GeometryPoint point = redesignedSurfaceLineGlobal?.GetDikeToeInward(); if (point != null) - return point.Z; - return null; + { + stabilityToeAtPolderY = point.Z; + } + return stabilityToeAtPolderY; } + set => stabilityToeAtPolderY = value; } [CsvExportColumn("StabilityShoulderHeight", 23)] @@ -613,14 +641,15 @@ { get { - if (redesignedSurfaceLineGlobal == null) - return null; - - GeometryPoint point = redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside); + GeometryPoint point = redesignedSurfaceLineGlobal?.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside); if (point != null) - return point.Z; - return null; + { + stabilityShoulderHeight = point.Z; + } + + return stabilityShoulderHeight; } + set => stabilityShoulderHeight = value; } [CsvExportColumn("StabilitySafetyFactor", 24)] @@ -641,7 +670,7 @@ [Browsable(false)] public double? RequiredSafetyFactorStabilityInnerSlope { - get { return scenario.RequiredSafetyFactorStabilityInnerSlope;} + get { return scenario.RequiredSafetyFactorStabilityInnerSlope; } } [CsvExportColumn("RequiredSafetyFactorStabilityOuterSlope", 27)] @@ -672,14 +701,14 @@ { get { - if (redesignedSurfaceLineGlobal == null) - return null; - - GeometryPoint point = redesignedSurfaceLineGlobal.GetDikeToeInward(); + GeometryPoint point = redesignedSurfaceLineGlobal?.GetDikeToeInward(); if (point != null) - return point.X; - return null; + { + pipingToeAtPolderX = point.X; + } + return pipingToeAtPolderX; } + set => pipingToeAtPolderX = value; } [CsvExportColumn("PipingToeAtPolderZ", 30)] @@ -690,14 +719,14 @@ { get { - if (redesignedSurfaceLineGlobal == null) - return null; - - GeometryPoint point = redesignedSurfaceLineGlobal.GetDikeToeInward(); + GeometryPoint point = redesignedSurfaceLineGlobal?.GetDikeToeInward(); if (point != null) - return point.Z; - return null; + { + pipingToeAtPolderZ = point.Z; + } + return pipingToeAtPolderZ; } + set => pipingToeAtPolderZ = value; } [CsvExportColumn("PipingShoulderHeight", 31)] @@ -708,14 +737,15 @@ { get { - if (redesignedSurfaceLineGlobal == null) - return null; - - GeometryPoint point = redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside); + GeometryPoint point = redesignedSurfaceLineGlobal?.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside); if (point != null) - return point.Z; - return null; + { + pipingShoulderHeight = point.Z; + } + + return pipingShoulderHeight; } + set => pipingShoulderHeight = value; } [CsvExportColumn("DikeLength", 33)] @@ -729,10 +759,11 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.GetDikeLength(); + dikeLength = redesignedSurfaceLineGlobal.GetDikeLength(); } - return null; + return dikeLength; } + set => dikeLength = value; } [CsvExportColumn("Zone1SafetyFactorStability", 34)] @@ -761,54 +792,63 @@ [PropertyOrder(3, 3)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Zone1EntryPointX { get { - if (localZone1EntryPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone1EntryPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone1EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone1EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone1EntryPointX = point.X; + } + } + return zone1EntryPointX; } + set => zone1EntryPointX = value; } [CsvExportColumn("Zone1EntryPointY", 37)] [Format("F3")] [PropertyOrder(3, 4)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Zone1EntryPointY { get { - if (localZone1EntryPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone1EntryPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone1EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone1EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone1EntryPointY = point.Y; + } + } + return zone1EntryPointY; } + set => zone1EntryPointY = value; } [CsvExportColumn("Zone1EntryPointZ", 38)] [Format("F3")] [PropertyOrder(3, 5)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Zone1EntryPointZ { get { if (localZone1EntryPointX == null) return null; - if (redesignedSurfaceLine == null) + if (RedesignedSurfaceLine2 == null) return null; return redesignedSurfaceLine.Geometry.GetZAtX(localZone1EntryPointX.Value); } @@ -834,14 +874,20 @@ { get { - if (localZone1ExitPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone1ExitPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone1ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone1ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone1ExitPointX = point.X; + } + } + return zone1ExitPointX; } + set => zone1ExitPointX = value; } [CsvExportColumn("Zone1ExitPointY", 41)] @@ -853,14 +899,20 @@ { get { - if (localZone1ExitPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone1ExitPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone1ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone1ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone1ExitPointY = point.Y; + } + } + return zone1ExitPointY; } + set => zone1ExitPointY = value; } [CsvExportColumn("Zone1ExitPointZ", 42)] @@ -874,7 +926,7 @@ { if (localZone1ExitPointX == null) return null; - if (redesignedSurfaceLine == null) + if (RedesignedSurfaceLine2 == null) return null; return redesignedSurfaceLine.Geometry.GetZAtX(localZone1ExitPointX.Value); } @@ -911,15 +963,21 @@ { get { - if (localZone2EntryPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone2EntryPointX == null) return null; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone2EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone2EntryPointX = point.X; + } + } + return zone2EntryPointX; - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone2EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; - } + set => zone2EntryPointX = value; } [CsvExportColumn("Zone2EntryPointY", 46)] @@ -931,15 +989,21 @@ { get { - if (localZone2EntryPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone2EntryPointX == null) return null; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone2EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone2EntryPointY = point.Y; + } + } + return zone2EntryPointY; - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone2EntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; - } + set => zone2EntryPointY = value; } [CsvExportColumn("Zone2EntryPointZ", 47)] @@ -953,7 +1017,7 @@ { if (localZone2EntryPointX == null) return null; - if (redesignedSurfaceLine == null) + if (RedesignedSurfaceLine2 == null) return null; return redesignedSurfaceLine.Geometry.GetZAtX(localZone2EntryPointX.Value); } @@ -979,14 +1043,20 @@ { get { - if (localZone2ExitPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone2ExitPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone2ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone2ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone2ExitPointX = point.X; + } + } + return zone2ExitPointX; } + set => zone2ExitPointX = value; } [CsvExportColumn("Zone2ExitPointY", 50)] @@ -998,18 +1068,23 @@ { get { - if (localZone2ExitPointX == null || redesignedSurfaceLineGlobal == null) + if (localZone2ExitPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localZone2ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localZone2ExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + zone2ExitPointY = point.Y; + } + } + return zone2ExitPointY; } + set => zone2ExitPointY = value; } [CsvExportColumn("Zone2ExitPointZ", 51)] - [Format("F3")] [PropertyOrder(3, 18)] [Unit(UnitType.Length)] @@ -1018,7 +1093,7 @@ { get { - if (localZone2ExitPointX == null || redesignedSurfaceLine == null) + if (localZone2ExitPointX == null || RedesignedSurfaceLine2 == null) return null; return redesignedSurfaceLine.Geometry.GetZAtX(localZone2ExitPointX.Value); } @@ -1071,39 +1146,49 @@ [PropertyOrder(5, 4)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Pl3LocationXMinUplift { get { - if (pl3LocalLocationXMinUplift == null || redesignedSurfaceLineGlobal == null) + if (pl3LocalLocationXMinUplift == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(pl3LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(pl3LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pl3LocationXMinUplift = point.X; + } + } + return pl3LocationXMinUplift; } + set => pl3LocationXMinUplift = value; } [CsvExportColumn("Pl3LocationYMinUplift", 57)] [Format("F3")] [PropertyOrder(5, 5)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Pl3LocationYMinUplift { get { - if (pl3LocalLocationXMinUplift == null || redesignedSurfaceLineGlobal == null) + if (pl3LocalLocationXMinUplift == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(pl3LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(pl3LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pl3LocationYMinUplift = point.Y; + } + } + return pl3LocationYMinUplift; } + set => pl3LocationYMinUplift = value; } [CsvExportColumn("Pl4MinUplift", 58)] @@ -1144,39 +1229,49 @@ [PropertyOrder(5, 9)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Pl4LocationXMinUplift { get { - if (pl4LocalLocationXMinUplift == null || redesignedSurfaceLineGlobal == null) + if (pl4LocalLocationXMinUplift == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(pl4LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(pl4LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pl4LocationXMinUplift = point.X; + } + } + return pl4LocationXMinUplift; } + set => pl4LocationXMinUplift = value; } [CsvExportColumn("Pl4LocationYMinUplift", 62)] [Format("F3")] [PropertyOrder(5, 10)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? Pl4LocationYMinUplift { get { - if (pl4LocalLocationXMinUplift == null || redesignedSurfaceLineGlobal == null) + if (pl4LocalLocationXMinUplift == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(pl4LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(pl4LocalLocationXMinUplift.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pl4LocationYMinUplift = point.Y; + } + } + return pl4LocationYMinUplift; } + set => pl4LocationYMinUplift = value; } [Format("F3")] @@ -1278,7 +1373,6 @@ } [CsvExportColumn("SellmeijerHCritical", 70)] - [Format("F3")] [Unit(UnitType.Length)] [ReadOnly(true)] @@ -1319,14 +1413,8 @@ [PropertyOrder(7, 5)] public double? Wti2017UpliftSafetyFactor { - get - { - return wti2017UpliftSafetyFactor; - } - set - { - wti2017UpliftSafetyFactor = value; - } + get { return wti2017UpliftSafetyFactor; } + set { wti2017UpliftSafetyFactor = value; } } /// @@ -1342,14 +1430,8 @@ [PropertyOrder(7, 8)] public double? Wti2017HeaveSafetyFactor { - get - { - return wti2017HeaveSafetyFactor; - } - set - { - wti2017HeaveSafetyFactor = value; - } + get { return wti2017HeaveSafetyFactor; } + set { wti2017HeaveSafetyFactor = value; } } /// @@ -1365,14 +1447,8 @@ [PropertyOrder(7, 11)] public double? Wti2017SafetyFactorOverall { - get - { - return wti2017SafetyFactorOverall; - } - set - { - wti2017SafetyFactorOverall = value; - } + get { return wti2017SafetyFactorOverall; } + set { wti2017SafetyFactorOverall = value; } } /// @@ -1405,14 +1481,8 @@ [PropertyOrder(7, 6)] public double? Wti2017UpliftHcritical { - get - { - return wti2017UpliftHcritical; - } - set - { - wti2017UpliftHcritical = value; - } + get { return wti2017UpliftHcritical; } + set { wti2017UpliftHcritical = value; } } /// @@ -1428,14 +1498,8 @@ [PropertyOrder(7, 9)] public double? Wti2017HeaveHcritical { - get - { - return wti2017HeaveHcritical; - } - set - { - wti2017HeaveHcritical = value; - } + get { return wti2017HeaveHcritical; } + set { wti2017HeaveHcritical = value; } } /// @@ -1451,14 +1515,8 @@ [PropertyOrder(7, 12)] public double? Wti2017HcriticalOverall { - get - { - return wti2017HcriticalOverall; - } - set - { - wti2017HcriticalOverall = value; - } + get { return wti2017HcriticalOverall; } + set { wti2017HcriticalOverall = value; } } /// @@ -1474,14 +1532,8 @@ [PropertyOrder(7, 3)] public double? Wti2017BackwardErosionDeltaPhiC { - get - { - return wti2017BackwardErosionDeltaPhiC; - } - set - { - wti2017BackwardErosionDeltaPhiC = value; - } + get { return wti2017BackwardErosionDeltaPhiC; } + set { wti2017BackwardErosionDeltaPhiC = value; } } /// @@ -1497,14 +1549,8 @@ [PropertyOrder(7, 4)] public double? Wti2017BackwardErosionDeltaPhiReduced { - get - { - return wti2017BackwardErosionDeltaPhiReduced; - } - set - { - wti2017BackwardErosionDeltaPhiReduced = value; - } + get { return wti2017BackwardErosionDeltaPhiReduced; } + set { wti2017BackwardErosionDeltaPhiReduced = value; } } /// @@ -1520,14 +1566,8 @@ [PropertyOrder(7, 7)] public double? Wti2017UpliftDeltaPhiC { - get - { - return wti2017UpliftDeltaPhiC; - } - set - { - wti2017UpliftDeltaPhiC = value; - } + get { return wti2017UpliftDeltaPhiC; } + set { wti2017UpliftDeltaPhiC = value; } } /// @@ -1543,14 +1583,8 @@ [PropertyOrder(7, 10)] public double? Wti2017Gradient { - get - { - return wti2017Gradient; - } - set - { - wti2017Gradient = value; - } + get { return wti2017Gradient; } + set { wti2017Gradient = value; } } /// @@ -1566,14 +1600,8 @@ [PropertyOrder(7, 13)] public double? Wti2017EffectiveStress { - get - { - return wti2017EffectiveStress; - } - set - { - wti2017EffectiveStress = value; - } + get { return wti2017EffectiveStress; } + set { wti2017EffectiveStress = value; } } /// @@ -1603,10 +1631,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X; } - return null; + + return dikeToeAtRiverXrd; } + set => dikeToeAtRiverXrd = value; } [CsvExportColumn("DikeToeAtRiverYrd", 86)] @@ -1617,10 +1648,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Y; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Y; } - return null; + + return dikeToeAtRiverYrd; } + set => dikeToeAtRiverYrd = value; } [CsvExportColumn("DikeToeAtRiverZrd", 87)] @@ -1631,10 +1665,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Z; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Z; } - return null; + + return dikeToeAtRiverZrd; } + set => dikeToeAtRiverZrd = value; } [CsvExportColumn("DikeTopAtRiverXrd", 88)] @@ -1645,10 +1682,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X; } - return null; + + return dikeTopAtRiverXrd; } + set => dikeTopAtRiverXrd = value; } [CsvExportColumn("DikeTopAtRiverYrd", 89)] @@ -1659,10 +1699,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).Y; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).Y; } - return null; + + return dikeTopAtRiverYrd; } + set => dikeTopAtRiverYrd = value; } [CsvExportColumn("DikeTopAtRiverZrd", 90)] @@ -1673,10 +1716,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).Z; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).Z; } - return null; + + return dikeTopAtRiverZrd; } + set => dikeTopAtRiverZrd = value; } [CsvExportColumn("DikeTopAtPolderXrd", 91)] @@ -1687,10 +1733,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X; } - return null; + + return dikeTopAtPolderXrd; } + set => dikeTopAtPolderXrd = value; } [CsvExportColumn("DikeTopAtPolderYrd", 92)] @@ -1701,10 +1750,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Y; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Y; } - return null; + + return dikeTopAtPolderYrd; } + set => dikeTopAtPolderYrd = value; } [CsvExportColumn("DikeTopAtPolderZrd", 93)] @@ -1715,10 +1767,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z; } - return null; + + return dikeTopAtPolderZrd; } + set => dikeTopAtPolderZrd = value; } [CsvExportColumn("DikeToeAtPolderXrd", 94)] @@ -1729,10 +1784,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X; } - return null; + + return dikeToeAtPolderXrd; } + set => dikeToeAtPolderXrd = value; } [CsvExportColumn("DikeToeAtPolderYrd", 95)] @@ -1743,10 +1801,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Y; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Y; } - return null; + + return dikeToeAtPolderYrd; } + set => dikeToeAtPolderYrd = value; } [CsvExportColumn("DikeToeAtPolderZrd", 96)] @@ -1757,10 +1818,13 @@ { if (redesignedSurfaceLineGlobal != null) { - return redesignedSurfaceLineGlobal.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z; + return redesignedSurfaceLineGlobal.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z; } - return null; + + return dikeToeAtPolderZrd; } + set => dikeToeAtPolderZrd = value; } [Browsable(false)] @@ -1774,7 +1838,6 @@ { scenarioName = scenario.LocationScenarioID; locationName = scenario.Location.Name; - locationScenarioCount = scenario.Location.Scenarios.Count; xRd = scenario.Location.XRd; yRd = scenario.Location.YRd; } @@ -1785,11 +1848,20 @@ [XmlIgnore] public SoilProfile1D SoilProfile { - get { return soilProfile; } - set + get { - soilProfile = value; + if (soilProfile == null && File.Exists(PipingResultFile) && + damFailureMechanismeCalculationSpecification.FailureMechanismSystemType == FailureMechanismSystemType.Piping) + { + if (soilProfileWithSurfaceLine == null) + { + soilProfileWithSurfaceLine = GetSoilProfileWithSurfaceLineFromFile(); + } + soilProfile = soilProfileWithSurfaceLine.SoilProfile; + } + return soilProfile; } + set { soilProfile = value; } } [Browsable(false)] @@ -1807,20 +1879,32 @@ public SurfaceLine2 CreateRedesignedSurfaceLineGlobal() { SurfaceLine2 localRedesignedSurfaceLineGlobal = null; - if (redesignedSurfaceLine != null) - { - SurfaceLine2 originalSurfaceLine = scenario.Location.SurfaceLine2; - if (originalSurfaceLine != null) - { - var coordinateSystemConverter = new CoordinateSystemConverter(); - coordinateSystemConverter.DefineGlobalXYZBasedOnLine(originalSurfaceLine.Geometry); - localRedesignedSurfaceLineGlobal = redesignedSurfaceLine.FullDeepClone(); - coordinateSystemConverter.ConvertLocalXZToGlobalXYZ(localRedesignedSurfaceLineGlobal.Geometry); - } + SurfaceLine2 originalSurfaceLine = scenario.Location.SurfaceLine2; + if (redesignedSurfaceLine != null && originalSurfaceLine != null) + { + var coordinateSystemConverter = new CoordinateSystemConverter(); + coordinateSystemConverter.DefineGlobalXYZBasedOnLine(originalSurfaceLine.Geometry); + localRedesignedSurfaceLineGlobal = redesignedSurfaceLine.FullDeepClone(); + coordinateSystemConverter.ConvertLocalXZToGlobalXYZ(localRedesignedSurfaceLineGlobal.Geometry); } + return localRedesignedSurfaceLineGlobal; } + private CsvExportSoilProfileWithSurfaceLine GetSoilProfileWithSurfaceLineFromFile() + { + CsvExportSoilProfileWithSurfaceLine localSoilProfileWithSurfaceLine = null; + DataEventPublisher. InvokeWithoutPublishingEvents(() => + { + var xmlDeSerializer = new Deltares.Standard.IO.Xml.XmlDeserializer(); + var classFactory = new DefaultClassFactory(); + localSoilProfileWithSurfaceLine = + (CsvExportSoilProfileWithSurfaceLine) xmlDeSerializer.XmlDeserialize(PipingResultFile, + typeof(CsvExportSoilProfileWithSurfaceLine), classFactory); + }); + return localSoilProfileWithSurfaceLine; + } + /// /// Gets or sets the redesigned surface line2. /// @@ -1833,20 +1917,16 @@ { get { - if (redesignedSurfaceLine == null) + if (redesignedSurfaceLine == null && File.Exists(PipingResultFile) && + damFailureMechanismeCalculationSpecification.FailureMechanismSystemType == FailureMechanismSystemType.Piping) { - if (File.Exists(PipingResultFile)) + if (soilProfileWithSurfaceLine == null) { - DataEventPublisher.InvokeWithoutPublishingEvents(() => - { - var xmlDeSerializer = new Deltares.Standard.IO.Xml.XmlDeserializer(); - var classFactory = new DefaultClassFactory(); - var soilProfileWithSurfaceLine = - (CsvExportSoilProfileWithSurfaceLine)xmlDeSerializer.XmlDeserialize(PipingResultFile, - typeof(CsvExportSoilProfileWithSurfaceLine), classFactory); - redesignedSurfaceLine = soilProfileWithSurfaceLine.SurfaceLine; - }); + soilProfileWithSurfaceLine = GetSoilProfileWithSurfaceLineFromFile(); } + redesignedSurfaceLine = soilProfileWithSurfaceLine.SurfaceLine; + // Also determine and set the correct global version in order to retrieve dependend properties + redesignedSurfaceLineGlobal = CreateRedesignedSurfaceLineGlobal(); } return redesignedSurfaceLine; } @@ -2115,7 +2195,7 @@ get { GeometryPoint point = null; - if (redesignedSurfaceLine != null) + if (RedesignedSurfaceLine2 != null) { point = redesignedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver); } @@ -2131,38 +2211,49 @@ [PropertyOrder(6, 4)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? PipingEntryPointX { get { - if (LocalPipingEntryPointX == null || redesignedSurfaceLineGlobal == null) + if (LocalPipingEntryPointX == null) return null; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(LocalPipingEntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pipingEntryPointX = point.X; + } + } - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(LocalPipingEntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + return pipingEntryPointX; } + set => pipingEntryPointX = value; } [Format("F3")] [PropertyOrder(6, 5)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? PipingEntryPointY { get { - if (LocalPipingEntryPointX == null || redesignedSurfaceLineGlobal == null) + if (LocalPipingEntryPointX == null) return null; - - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(LocalPipingEntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(LocalPipingEntryPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pipingEntryPointY = point.Y; + } + } + return pipingEntryPointY; } + set => pipingEntryPointY = value; } [Format("F3")] @@ -2179,38 +2270,50 @@ [PropertyOrder(6, 7)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? PipingExitPointX { get { - if (localPipingExitPointX == null || redesignedSurfaceLineGlobal == null) + if (localPipingExitPointX == null) return null; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localPipingExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pipingExitPointX = point.X; + } + } - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localPipingExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.X; + return pipingExitPointX; } + set => pipingExitPointX = value; } [Format("F3")] [PropertyOrder(6, 8)] [Unit(UnitType.Length)] [ReadOnly(true)] - [XmlIgnore] public double? PipingExitPointY { get { - if (localPipingExitPointX == null || redesignedSurfaceLineGlobal == null) + if (localPipingExitPointX == null) return null; + if (redesignedSurfaceLineGlobal != null) + { + GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( + new GeometryPoint(localPipingExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); + if (point != null) + { + pipingExitPointY = point.Y; + } + } - GeometryPoint point = DetermineGlobalPointCoordinatesBasedOnGlobalSurfaceLine( - new GeometryPoint(localPipingExitPointX.Value, 0.0, 0.0), redesignedSurfaceLineGlobal); - - return point.Y; + return pipingExitPointY; } + set => pipingExitPointY = value; } [Format("F3")] @@ -2332,11 +2435,7 @@ { Directory.CreateDirectory(CalculationSubDir); } - else - { - //Directory. moet de directory altijd deleted worden? Of werkt dit zo? - } - + var soilProfileWithSurfaceLine = new CsvExportSoilProfileWithSurfaceLine { SoilProfile = soilProfile, SurfaceLine = redesignedSurfaceLine Index: DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlOutput.cs =================================================================== diff -u -r3571 -r3580 --- DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlOutput.cs (.../FillDamUiFromXmlOutput.cs) (revision 3571) +++ DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlOutput.cs (.../FillDamUiFromXmlOutput.cs) (revision 3580) @@ -154,7 +154,9 @@ ProfileName = designResult.ProfileName }; desResult.CalculationResult = ConversionHelper.ConvertToCalculationResult(designResult.CalculationResult); + var scenario = GetScenarioByName(damProjectData, designResult.LocationName, designResult.ScenarioName); desResult.Scenario = GetScenarioByName(damProjectData, designResult.LocationName, designResult.ScenarioName); + desResult.LocationScenarioCount = scenario.Location.Scenarios.Count; desResult.SoilProfile = GetSoilProfileByName(damProjectData, designResult.ProfileName); if (desResult.SoilProfile == null) {