Controlling Block parameters

277
5
08-19-2013 03:51 AM
BenLeslie1
Regular Contributor
Hello

Is there an efficient way of controlling Block Parameters - such as through the use of a zoning map?

I have seen in the tutorials that it is possible to control Lots in this way but can't see how it can be applied to Blocks.


this is what I'm trying to do-->
   import road network (.osm)
   control the automatically generated Blocks so that:
         certain areas of the town to have large lots (commercial / industrial)
         other areas to have small lots with skeleton subdivision (residential)
         other areas to have no subdivision (farmland)
         etc
0 Kudos
5 Replies
MatthiasBuehler1
Frequent Contributor II
hi !

yes, this is possible.

I'd create multiple different attributes :

1] Create a map layer for each attribute, means 1 image for each attribute.
2] Then, point the attr source of each block to that map layer.

e.g. the actual block subdivision type parameter would be pointing to a map layer with 1 image

Try to make this work for e.g. the height of extruded buildings as in the map control tutorial, then progress to driving all params, ok ?

m.
0 Kudos
ginoorgologo
New Contributor
Hi matt,

i've been looking for this thread from ages.. at least i don't have to open a new one!
is there a way to set a Block Parameter through CGA? I like the Mapped method, but for parameters like subdivisionOffset I would like to set it always to "true"

thanks
0 Kudos
BenLeslie1
Regular Contributor
Thanks Matt
But I'm afraid I'm not very experienced at coding.

I can apply a numerical value using a map,.... easy-peasy.....

But how do I control a text attribute (such as subdivision type) using this method?  I've tried a few things but it doesn't understand me - I've tried putting text values in for the max, min of the map channel - I've tried a case statement like the one below but I get a red mark under the word 'case':


attr mapR = map_01(red, 0.0, 1.0)
attr type = ""

case mapR > 0.9:
type = "Skeleton Subdivision"
else:
type = "No Subdivision"
0 Kudos
MatthiasBuehler1
Frequent Contributor II
Hi matt,
is there a way to set a Block Parameter through CGA?



Hi orgologo,

No : Because,

First comes the 'Shape Creation' process, then you assign CGA rule to the shapes (to generate the models).

The 'Dynamic City Layouts' system is used to create shapes. Part of that process is the Block Subdivision.

CGA simple takes a shape and it's attributes to process the model, but CGA cannot edit or change that 'initial state'. The actual attribute values can come from different sources, such as 'rule', 'object attribute' ( of the shape ), 'user', or 'mapped' via a layer, as discussed in this thread.


@BTLeslie :

I'll try to create an example which exemplifies this, ok ?

Matt
0 Kudos
BenLeslie1
Regular Contributor
It's funny how writing something on a forum can suddenly make you find the correct section in the help docs...... this is the syntax I was looking for:

attr mapR = map_01(red, 0.0, 1.0)
attr type = case mapR > 0.9:
"Skeleton Subdivision"
else:
"No Subdivision"
0 Kudos