mmm LBCS Codes

This is duplicate post of a discussion I started on ESRI’s CityEngine support forum

Since my first post has produced such an amazing response  I shall continue and start a thread on using GIS data on landuses.

What I have been doing is using my road network in ArcGIS and importing it into CityEngine where I make a suitable road network, this I use to create blocks that are not sub-divided.   I then export these block shapes as a shapefile back into ArcGIS where I add new fields (like an LBCS or landuse Code).   I can then make an outline landuse plan from these in ArcGIS and symbolise them.

So we start back again in CityEngine with some static shapes with an object attribute for the landuse (in my case I’ve called it LBCSCode).

The layer attributes code would look like this :

attr landuse = getObjectAttr("LBCS_Code")

Then to colour the static shapes I could use the following code (don’t forget to apply the rule file!):

attr landuse = "0" // this just initialises the attribute that we have in our layer attributes
Lot-->  //I didn't use LotInner as this example doesn't create a subdivision
case landuse == "1000" : color("#FFFF00") report("1000", geometry.area())
case landuse == "2000" : color("#FF0000") report("2000", geometry.area())
case landuse == "3000" : color("#A020F0") report("3000", geometry.area())
case landuse == "4000" : color("#0000FF") report("4000", geometry.area())
case landuse == "5000" : color("#BEBEBE") report("5000", geometry.area())
case landuse == "6000" : color("#2F4F4F") report("6000", geometry.area())
case landuse == "7000" : color("#90EE90") report("7000", geometry.area())
case landuse == "8000" : color("#228B22") report("8000", geometry.area())
case landuse == "9000" : color("#FFFFFF") report("9000", geometry.area())
else : color("#000000")

You can also see that I’ve used the report operation to produce a summary of the land areas (helpful when doing landuse plans!)

Lovely reporting!

So would anyone do this differently?  Thoughts/suggestions/corrections?

The next post will cover using this static shape layer to inform a dynamic model so change landuses in the object attributes here will change what happens in the dynamic model.