Similarly to conditional rules, the CGA shape grammar permits stochastic rules, in other words, creating variation using randomness.
PredecessorShape -->
percentage% : Successor1
percentage% : Successor2
...
else : SuccessorN
The sum of all percentages must not be greater than 100.
Example 1
Lot -->
30% : Lot("residential")
20% : Lot("retail")
else : Lot("industrial")
In this example, there is a 30 percent chance that the first successor is chosen and a new Lot shape with parameter "residential" is generated, a 20 percent chance for the second successor, and a 50 percent chance for the last successor to be chosen.
All random numbers, and also the choice of the percentages above, depend on the current shape's seed (the seedian shape attribute).
Example 2
Again, condition blocks can be nested:
Lot -->
30% :
50% : Lot("residential")
else : NIL
20% : Lot("retail")
else : Lot("industrial")
Note:
A condition block must always be finished with an else: statement and percentages and successors must not be mixed up.