This is duplicate post of a discussion I started on ESRI’s CityEngine support forum
I’ve already outlined a way to allocate landuses based on a static shape layer, as we get nearer placing buildings on our plots we need to ensure that the “lots” are the correct size and shape.
This following rule can be adapted to test a Lot’s area (in sqm) and then onto the next rule depending on its area. I’ve used this to place different building types on a lot depending on it’s area but you could just as easily tie this into the woodland rule set above…
//the descriptive names can be changed and are more of a guide really change or add more areas for your needs attr areatest = case geometry.area < 100 : "100orLess" case geometry.area < 200 && geometry.area > 100 : "100to200" case geometry.area < 300 && geometry.area > 200 : "200to300" case geometry.area < 400 && geometry.area > 300 : "300to400" case geometry.area < 500 && geometry.area > 400 : "400to500" case geometry.area < 600 && geometry.area > 500 : "500to600" case geometry.area < 700 && geometry.area > 600 : "600to700" case geometry.area < 800 && geometry.area > 700 : "700to800" case geometry.area < 900 && geometry.area > 800 : "800to900" case geometry.area < 1000 && geometry.area > 900 : "900to1000" case geometry.area > 1000 : "1000orMore" else : "0" Lot--> res_areatest //this directs the rule to the appropriate model depending on the area size res_areatest--> case areatest == "100orless" : res_100orless case areatest == "100to200" : res_100to200 case areatest == "200to300" : res_200to300 case areatest == "400to500" : res_400to500 case areatest == "500to600" : res_500to600 case areatest == "600to700" : res_600to700 case areatest == "700to800" : res_700to800 case areatest == "800to900" : res_800to900 case areatest == "900to1000" : res_900to1000 case areatest == "1000orMore" : res_1000orMore else : stop. res_100orless--> extrude(5) report("1000", geometry.area()) //etc....
As usual does anyone have any thoughts/suggestions/corrections?