Block Parameters
The parameters for block subdivision can be specified through the block parameter panel in the inspector.
Several parameters are available for the user to control the resulting street shapes. These parameters are described below.Block Parameters can be individually set for each block.
Attributes can be mapped to Default, User, Object or to a map layer. See Mapping Attributes for details.
General Parameters
These parameters are available to all subdivision types.
Specific Parameters
Recursive Subdivision
The recursive subdivison technique is the default. It subdivides the block into rectangular lots of various sizes.
Parameter  Function  

lotAreaMin lotAreaMax 
The lower and upper bounds of the area of lots obtained after subdivision.
Given in absolute area units 

lotWidthMin  The minimum width of the side of a lot. Subdivision stops if the length
of any of the sides of any of the resulting lots is less than this value. If this value is high,
the area of resulting lots might be larger than the area specified by lotAreaMax.
Given in absolute length units 

irregularity  The relative deviation of the split line from the middle point of the center of the 'oriented bounding box' (OBB).
If this value is 0.0, the split line will be pivoted at the middle point of the OBB of the parent lot.
A higher value results in the split line being further away from the middle point, and generally,
in a higher difference in the areas of the two children nodes.
Given in range [0.0,1.0]  
forceStreetAccess  The factor indicating the preference for lots with street access.
A higher value results in more lots having street access.
Given in range [0.0,1.0] 

cornerWidth  Width of the interior side of the created corners.
If this value is 0.0 no corners are created.
The maximum value for this attribute is automatically computed to avoid selfintersections.
Given in absolute length units  
cornerAngleMax  Corner angle threshold. If the angle at the vertex of a block contour is
less than this value, a corner lot is inserted. A larger value results in a more relaxed criterion for inserting
corners, and thus in more corners being created. If this value is 0.0 no corners are created. Given in degrees 
Offset Subdivision
A block which uses offset subdivision is offset to create a fixed width strip along the street edges, which is then subdivided into lots.
Parameter  Function  

offsetWidth 
The perpendicular distance from the block contour to the inwards offset polygon.
Intuitively, this value corresponds to the depth of the lots that are created when offset subdivision is used.
Given in absolute length units  
subdivisionRecursive  After the offset routine, there is an option to also run the recursive subdivision on the result. This is controlled by the same set of parameters as the recursive subdivision scheme.  
lotAreaMin lotAreaMax lotWidthMin irregularity, forceStreetAccess, cornerWidth, cornerAngleMax  See above. 
Skeleton Subdivision
Skeleton subdivision attempts to subdivide a block such that every lot has access to the street. The sides of the lots are perpendicular to the roads they are adjacent to.
Parameter  Function  

lotWidthMin 
The ideal length of street front that each lot should possesses. This is increased or decreased by several other processes. A low lot width relative to the block size may create many narrow lots.
Given in absolute length units 

simplify  Amount of simplification that occurs. A high value creates irregular lots with fewer vertices.
Given in range [0.0,1.0] 

cornerAlignment  Skeleton subdivided lots face their nearest streets. At the corner of two streets, one will normally take priority. The corner alignment determines how this priority is assigned, either by Street length or by Street width.


lotAreaMin  After subdivision, lots with a small area are repeatedly combined with their neighbours until they are larger than this minimum. This reduces the number of smaller lots, but may create lots of more irregular shape. Given in absolute area units 

irregularity  As this parameter increases, it introduces a stochastic element into the lot width and lot edge direction. Given in range [0.0,1.0]  
shallowLotFrac  Limit for merging triangular lots.

No Subdivision
This simple subdivision technique subdivides the block into a single lot of the same shape. There is an option to remove the lot's corners.
Parameter  Function 

cornerWidth, cornerAngleMax  See above. 
Advanced
Description of Algorithms
Recursive OBB algorithm
The recursive OBB algorithm computes a split line at each step. If the two lots resulting from the split meet the userspecified constraints, the algorithm recurses on them. To determine the pivot point and direction of the split line, the minimumarea oriented bounding box (OBB) of the lot is computed. By default, the pivot point is set to the midpoint of the largest edge of the OBB, and the split line direction is set to the direction of the smallest edge of the OBB. The split line pivot and direction can be modified by three criteria:
 Street access: If one of the lots resulting from a split has no street access, the orthogonal vector to the initial direction vector is used.
 Snap to block contour vertices: If the split line is within a threshold distance from one of the vertices of the contour of the original block, the pivot point of the split line is set to that vertex.
 Edge alignment: To increase the stability of subdivisions under interactive editing operations, the sampling angle space to compute an approximation of the OBB uses one of the lot edges as reference.
 Random seeds: To increase the stability of subdivisions under interactive editing operations, the random seeds for the children lots of a given lot are computed before the recursive call to the subdivision function.
Offset algorithm
The offset subdivision algorithm computes the inwards offset of the block contour and subdivides into lots the stripe between the block contour and its offset. The inwards offset is computed with CGAL. A set of sample points is computed along the offset. Consecutive points are separated by a distance computed as a function of the userspecified lot areas. Lines orthogonal to the offset at the sample points and passing through the sample points are used to split the stripe between the block contour and the offset.
Skeleton subdivision algorithm
The skeleton subdivision algorithm uses the straight skeleton (below, top left) to identify the center lines of the block. Given a set of skeleton faces, we identify those whose street edges are adjacent and of a similar curvature (below, top right). These faces are then grouped together. For each corner, the alignment priority (see cornerAlignment) determines how we assign the corner sections of these facegroups (below, bottom left). Finally each of the facegroups are sliced in a direction perpendicular to their street edges to create lots, and small lots are merged together until they are larger than lotAreaMin.
Consistent Indexing
As a result of the recursive nature of the subdivision algorithm and the different criteria dictated by shape attributes, the ordering of the lots resulting from subdivision might significantly vary after an editing operation. This is particularly inconvenient if models have been generated inside the lots.
To improve the consistency in the lot indexing among two consecutive subdivisions, the algorithm computes the relative position of each lot for each one of the two subdivisions, using a metric based on generalized barycentric coordinates. Pairs of lots that are the closest to each other in this barycentric space, are assigned the same index.
The same approach is also used to improve the consistency of the seed of each lot. As a result, two lots that are relatively in the same position of the block at two different subdivision configurations, have higher chances of sharing the same seed and attributes. The figure below shows a subdivision together with the shapes generated from a grammar that assigns one of 15 possible random colors to each lot. Due to the consistency logic above, the colors of lots that have similar relative positions inside the block are preserved, even though the topology and geometry of the subdivisions are different as a result of an editing operation.
Autogenerated street width attributes
For each resulting lot, an array of street width object attributes is generated.The first edge of a lot is the edge with maximal street width.
Copyright ©20082016 Esri R&D Center Zurich. All rights reserved.