1: lot->Size(20,40,20) {box} 2: box->Subdiv(X,1^,1^) {side|side} 3: side->Subdiv(Z,1^,1^) {quad|quad} 4: quad->Size(1^,Scope.sy*rand(0.2,1.5),1^) {scaled_quad} 5: scaled_quad->Size(2^,1^,1^) {stretch} : 0.5 ->Size(1^,1^,2^) {stretch} : 0.5 6: stretch->Repeat(Y,7) {floors} 7: floors->Repeat(X,4) {tiles} 8: tiles->Comp(sidefaces) {faces} 9: faces->Subdiv(Y,1^,3^,1^) {face_left | face_center | face_right} 10: face_center->Subdiv(X,1^,3^,1^) {face_top | window | face_bottom} end