Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs =================================================================== diff -u -r79cd607bf75f24327b6889d8709b072c3da3c156 -rc4f75aa39431df092fc41bd13c1bd66c52b9e36e --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 79cd607bf75f24327b6889d8709b072c3da3c156) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision c4f75aa39431df092fc41bd13c1bd66c52b9e36e) @@ -94,8 +94,30 @@ ParseSubMechanismResults(reader); reader.NextResult(); ParseFaultTree(reader); + if (Output.IllustrationPoints == null) + { + SetSubMechanismAsRootIllustrationPoint(); + } } + private void SetSubMechanismAsRootIllustrationPoint() + { + var rootIllustrationPoints = new List(); + foreach (Tuple windDirectionClosingSituation in GetAllWindDirectionClosingSituationCombinations()) + { + var illustrationPoint = new SubmechanismIllustrationPoint + { + Beta = subMechanismBetaValues.First().Value, + ClosingSituation = windDirectionClosingSituation.Item4, + WindDirection = windDirectionClosingSituation.Item2 + }; + AddRange(illustrationPoint.Results, subMechanismResults.First().Value); + AddRange(illustrationPoint.Stochasts, subMechanismStochasts.First().Value); + rootIllustrationPoints.Add(new IllustrationPointTreeNode(illustrationPoint)); + } + Output.IllustrationPoints = rootIllustrationPoints; + } + private void ParseFaultTreeAlphaValues(HydraRingDatabaseReader reader) { Dictionary[] readFaultTreeAlphaValues = GetIterator(reader).TakeWhile(r => r != null).ToArray(); @@ -205,14 +227,15 @@ private void ParseFaultTree(HydraRingDatabaseReader reader) { - var rootIllustrationPoints = new List(); IEnumerable> windDirectionClosingSituations = GetAllWindDirectionClosingSituationCombinations(); Dictionary[] readFaultTrees = GetIterator(reader).TakeWhile(r => r != null).ToArray(); if (readFaultTrees.Length > 0) { + var rootIllustrationPoints = new List(); + var results = new List>(); foreach (Dictionary readFaultTree in readFaultTrees) @@ -235,9 +258,9 @@ Tuple root = results.Single(r => !r.Item1.HasValue); rootIllustrationPoints.Add(BuildFaultTree(windDirectionClosingSituation, root.Item2, root.Item4, results)); } - } - Output.IllustrationPoints = rootIllustrationPoints; + Output.IllustrationPoints = rootIllustrationPoints; + } } private IEnumerable> GetAllWindDirectionClosingSituationCombinations()