Monday, August 17, 2015

Building Simple Urban Development rules Post 4: Reporting on Building Floors

Up to this point in the Building Simple Urban Development series we've had a look at designing parts of the city. Extending on the previous post where I added detail to our rules (in the form of parking), this week I will have a look at creating reports at floor level.

In most cases a building is occupied by various inhabitants. In the example used during this post, we will imagine that each building can have a "Mixed" zone type. These buildings have different uses per floor, these will include Commercial Use, Residential Use and Unspecified. I will also create reports showing revenue generated by all floor types (using the floor area).

Individual Floor Usage

Attributes

In this post, there was only 5 attributes added (see the image below). These were:
  • CommercialFloorUse: The % of floors that will have a commercial use
  • ResidentialFloorUse: The % of floors that will have a residential use
  • CommercialRevenueSquareMeter: Revenue generated per square meter of commercial use
  • ResidentialRevenueSquareMeter: Revenue generated per square meter of residential use
  • VoidRevenueSquareMeter: Minimum Revenue  lost per square meter
     **Another disclaimer: Just ignore the bad attribute naming convention....I didn't spend too much time on the attribute names
  • I also added a "Mixed" type to the ZoneType attribute that we created in Post 2.

Attributes



Rules

Only two rules were added during this post: ColorFloors and ColorFloors2 (once again great usage of my naming convention).

  • ColorFloors checks if a floor has a "Mixed" ZoneType, and calls the ColorFloors2 rule if it does. It also creates a report for all floors created. To read more about reports, click here.
  • ColorFloors2 uses the CommercialFloorUse and ResidentialFloorUse attributes to determine the usage of each floor by applying the "p-function". The remaining floors  are assigned a usage of Unspecified. The rules also create reports on each floor usage as well as the potential revenue generated.

Rules


Reports

The reports that are created with the new rules can be seen in the image below. The N, Sum and Avg, columns returns the Count, Sum and Average of each floor or floor revenue, respectively.
  • All Floors displays the count of all floors (excluding the ground floor) 
  • Commercial Floors, Residential Floors and Unspecified Floors returns the count for each floor usage type
  • Commercial Floors Revenue and Residential Floors Revenue returns the count of each floor type as well as the estimated revenue generated by each (as a sum and average). The revenue is generated by multiplying the square meters of the floor (getArea in the image above) with the price-per-square-meter for the specified floor type (e.g. CommercialRevenueSquareMeter
  • The Unspecified Floors Revenue calculates the estimated amount of revenue lost by having a unspecified/void floor. 

Reporting per Floor





4 comments:

  1. Hi Carl, based on my understanding, this rule describe usage of floor by percentage (correct me if i am wrong). If i would like to specific usage based on each floor (not in random by percentage) i.e. Ground Floor = Commercial, 1st Floor = Commercial, 2nd Floor = Office, 3rd - 7th Floor = Office and 8th - 10th Floor = Other. How should CGA may be look alike?

    ReplyDelete
    Replies
    1. Hi Sulaiman.

      You understanding of the rule is correct. The floor usage is set by percentage.
      If you want to create specific floor usage at certain floors, you can specify this in the rule that splits the block vertically. Have a look at the SplitBuildingFloors rule at http://urban-scene.blogspot.com/2015/08/building-simple-urban-development-rules.html.

      It would look similar to:

      SplitBuildingFloors--> split(y){GroundFloorHeight: Commercial | FloorHeight : Commercial | 6*FloorHeight : OfficeSplit | {FloorHeight:Other}*}

      OfficeSplit--> split(y) { {FloorHeight: Office}* }

      This creates a nested vertical split for Office space. I think something along this line will work. Have a try and let me know.
      Thanks for reading.

      Cheers,

      Carl

      Delete
    2. Hi Carl,

      I already try it and it work pretty well. I am thinking that, if i try to generate a numbers of building with this rule, i may need to change CGA if the floor usage for each building is different among others. I am thinking of if i could have usage drop down menu for each floor. Mean i have drop down menu to select which floor, than i also have a drop down menu for floor usage. So, i can apply a single rule over a few of building and any different of floor use i just adjust it using "user define"... i have seen this parameter in Singapore Building.cga except instead of using floor usage the using percentage. Due to lack of knowledge in CGA rule, i cant understand how they done it.

      Delete
    3. Hi Sulaiman, I've tried to answer your question in my new post: http://urban-scene.blogspot.com/2015/08/building-simple-urban-development-rules_31.html

      Hope this helps :D

      Delete