Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r5009 -r5011 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 5009) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 5011) @@ -850,20 +850,38 @@ // Add OuterLoop SoilProfile2DLayer2DSurfaceOuterPoint[] outerLoop = inputLayer.Surface.OuterLoop; + var isStartPoint = true; var curve = new GeometryCurve(); + Point2D firstPoint = new Point2D(); for (var j = 0; j < outerLoop.Length; j++) { - var headPoint = new Point2D(outerLoop[j].X, outerLoop[j].Z); - Point2D endPoint = j == outerLoop.Length - 1 ? new Point2D(outerLoop[0].X, outerLoop[0].Z) : new Point2D(outerLoop[j + 1].X, outerLoop[j + 1].Z); + var point = new Point2D(outerLoop[j].X, outerLoop[j].Z); + if (isStartPoint) + { + curve.HeadPoint = point; + firstPoint = point; + } + else + { + curve.EndPoint = point; + soilProfile2D.Geometry.Curves.Add(curve); + layer.GeometrySurface.OuterLoop.CurveList.Add(curve); + curve = new GeometryCurve(); + curve.HeadPoint = point; + } - curve.HeadPoint = headPoint; - curve.EndPoint = endPoint; - soilProfile2D.Geometry.Curves.Add(curve); - layer.GeometrySurface.OuterLoop.CurveList.Add(curve); + if (j == outerLoop.Length - 1) + { + curve.EndPoint = firstPoint; + soilProfile2D.Geometry.Curves.Add(curve); + layer.GeometrySurface.OuterLoop.CurveList.Add(curve); + } - soilProfile2D.Geometry.Points.Add(headPoint); - layer.GeometrySurface.OuterLoop.CalcPoints.Add(headPoint); + isStartPoint = false; + soilProfile2D.Geometry.Points.Add(point); + layer.GeometrySurface.OuterLoop.CalcPoints.Add(point); } + soilProfile2D.Geometry.Loops.Add(layer.GeometrySurface.OuterLoop);