protected IHierarchicalData Build(List <Artifact> artifacts) { var data = BuildHierarchy(artifacts); try { data.RemoveLeafNodesWithoutArea(); // throws if nothing is left data.SumAreaMetrics(); data.NormalizeWeightMetrics(); } catch (Exception) { return(HierarchicalData.NoData()); } return(data.Shrink()); }