Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLineCreatorBase.cs =================================================================== diff -u -r4540 -r5658 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLineCreatorBase.cs (.../SensorPlLineCreatorBase.cs) (revision 4540) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLineCreatorBase.cs (.../SensorPlLineCreatorBase.cs) (revision 5658) @@ -201,15 +201,10 @@ /// Intersection of line at river with a given Z value. /// /// - protected double IntersectionXAtRiverWaterLevel(double waterLevel) + protected double? IntersectionXAtRiverWaterLevel(double waterLevel) { GeometryPoint point = SensorLocation.SurfaceLine.DetermineIntersectionBetweenTaludRiverSideAndWaterLevel(waterLevel); - if (point == null) - { - throw new PlLinesCreatorException("No intersection point found with water level at dike river side"); - } - - return point.X; + return point?.X; } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLine1Creator.cs =================================================================== diff -u -r5653 -r5658 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLine1Creator.cs (.../SensorPlLine1Creator.cs) (revision 5653) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLine1Creator.cs (.../SensorPlLine1Creator.cs) (revision 5658) @@ -234,9 +234,6 @@ throw new PlLinesCreatorException("There was an error trying to read the water level", e); } - // Waterlevel MUST be above of Dike Toe At River Side, if not, an error is thrown - SensorLocation.SurfaceLine.CheckWaterLevelIsAboveDikeToeRiverSide(waterLevel); - // Add begin boundary lineConstructor.Insert(new PlLinePoint(XBeginBoundary, waterLevel)); @@ -257,11 +254,20 @@ } // insert intersection point (at dike river side) - double xIntersection = IntersectionXAtRiverWaterLevel(waterLevel); - lineConstructor.Insert(new PlLinePoint(xIntersection, waterLevel) + double? xIntersection = IntersectionXAtRiverWaterLevel(waterLevel); + if (xIntersection != null) { - Name = "Intersection point dike river side" - }); + lineConstructor.Insert(new PlLinePoint(xIntersection.Value, waterLevel) + { + Name = "Intersection point dike river side" + }); + } + else + { + GeometryPoint dikeToeAtRiver = SensorLocation.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver); + var point = new PlLinePoint(dikeToeAtRiver.X, dikeToeAtRiver.Z); + lineConstructor.Insert(point); + } // insert offset below dike top at river point? var useLocationAsDataSource = new UseLocationAsDataSource();