Got the metro script to work.
Step 1: setting up the background.
IF prop.hierarchydepth = 0 THEN
width:=thepage!pagewidth-20mm;
height:=ThePage!PageHeight-20 mm;
pinx:=thepage!pagewidth/2;
piny:=thepage!pageheight/2;
LeftMargin:=10pt;
TopMargin:=10pt;
ENDIF
Step 2: Define size and position of the shapes at hierarchyDepth=1
IF prop.hierarchydepth = 1 THEN
prop.sort := [L]!prop.sort+1;
height:=if(modulus(prop.sort,3)=0,150mm,75mm);
width:=if(modulus(prop.sort,3)=0,60mm,70mm);
locPinX:=width*0;
locPinY:=height*0;
pinX:=if(modulus(prop.sort,3)=0,if(len(prop.leftsibling)>0,[L]!pinX+[L]!width,10mm),if(modulus(prop.sort,3)=1,[L]!PinX+[L]!width,[L]!PinX));
pinY:=if(modulus(prop.sort,3)=2,[L]!PinY+height,if(modulus(prop.sort,3)=1,[L]!PinY,[L]!PinY-[L]!height));
ENDIF
Step 3: Added some cosmetic features to color the shapes.
Don't be surprised by getting white shapes, when you run the script. I did not handle the condition where the leftsibling is empty.
So re-colour the first shape to see the colours of its siblings change.
The gap between the shapes is simply given by a thicker line weight with the same colour as the parent.
IF prop.hierarchydepth = 1 THEN
LineWeight:=width/20;
LineColor:=[P]!fillforegnd;
LeftMargin:=LineWeight;
RightMargin:=LineWeight;
Fillforegnd:=HSL(HUE([L]!fillforegnd)+35,SAT([L]!fillforegnd),LUM([L]!fillforegnd));
ENDIF