public ElementTreeNode SliceValueXByType(ElementTreeSlice slice, String[] types) { ElementDefinition valueX = new ElementDefinition { Path = $"{slice.ElementDefinition.Path}.value[x]", ElementId = $"{slice.ElementDefinition.ElementId}.value[x]", Min = 1, Max = "1" }; valueX .Types(types) ; ElementDefinition.SlicingComponent slicingComponent = new ElementDefinition.SlicingComponent { Rules = ElementDefinition.SlicingRules.Closed }; slicingComponent.Discriminator.Add(new ElementDefinition.DiscriminatorComponent { Type = ElementDefinition.DiscriminatorType.Type, Path = "$this" }); valueX.ApplySlicing(slicingComponent, false); return(slice.CreateNode(valueX)); }