r "For Each" loops
  go.Shape.defineFigureGenerator('ForEach', (shape, w, h) => {
    var param1 = shape ? shape.parameter1 : NaN; // length of triangular area in direction that it is pointing
    if (isNaN(param1)) param1 = 10;
    var d = Math.min(h / 2, param1);
    var geo = new go.Geometry();
    var fig = new go.PathFigure(w, h - d, true);
    geo.add(fig);
    fig.add(new go.PathSegment(go.SegmentType.Line, w / 2, h));
    fig.add(new go.PathSegment(go.SegmentType.Line, 0, h - d));
    fig.add(new go