Manual / Draft: building the city / Generation parametersiCity 2 · Windows

Generation parameters

These are the numbers behind the lots and the massing: what splits a region into parcels, how big those parcels get, and what stands on them. Nearly all of them are stored on the region you had selected when you changed it, not on the city. This page walks the chain in the order the panel draws it, with the real defaults and ranges, and says plainly which controls are stored but not yet read.

Where the parameters are

The generation parameters live in the iCity Editor's scrolling column, in the DRAFT module, under the selection header for whatever you have picked. They are not a separate tab: DRAFT draws the selected element's header, then that element's parameters, then its reshape actions.

They are drawn as a chain, and the order matters: Land Use, Massing Type, Subdivision Method, Setback Mode, Lot Settings, Building Height. Each step narrows what the next one offers, and a step whose answer makes the rest meaningless simply ends the column.

Every knob on this page belongs to one mode — Blocks, which the status bar captions Regions (Alt 3). Switch to it, arm the Select tool, and click a region. With nothing picked the column shows no generation settings at all, because the settings describe the thing you picked.

generation-parameters-blocks-column.png

The iCity 2 workspace, DRAFT module, editing mode Blocks (Alt+3), with one region clicked in the viewport. The iCity Editor column must show the selection header with the region's object name at the top, then the Land Use row, Massing Type, Subdivision Method, Setback Mode, Lot Settings and Building Height sections below it. Whole column top to bottom.

/docs-shots/blender/
The iCity Editor column in Blocks mode with a region selected.
Note

The engine has to be running. While it is stopped the column shows “The iCity engine is not running” and a Start button instead of any parameters, and a parameter write reaches nothing. See The engine.

Your city is not your .blend — it lives in the engine process, and Blender's own save does not reach it. See How it fits into Blender.

What a change reaches

This is the question these controls raise first, so it is worth stating flatly. One parameter edit is routed to exactly one engine command, and which command depends on what is selected at the moment the edit commits.

What is selectedWhere the edit goesEffect
A regionThat region onlyThe values are stored as an override on the region. The city baseline is untouched, and reselecting the region shows its stored values again.
A road segment or nodeThat road onlyRoad and sidewalk widths, junction settings. Not the parameters on this page.
Nothing, outside Roads modeThe whole cityThe city regenerates from the base graph and the current values become the city baseline.
Nothing, in Roads modeNowhereThe edit is skipped rather than rebuilding the city.

In practice the whole chain below is drawn only when a region is picked, so an edit you make in the column is a per-region edit. The city-wide route is the scene-level baseline: the values a fresh generate uses, and the values a block falls back to where no region override exists.

To rebuild the whole city against the baseline, go to Graph mode and press Regenerate in the Graph card.

generation-parameters-regenerate.png

The iCity Editor column in Graph mode with a graph assigned, showing the Graph card: the Assigned line with the mesh name, and the Unassign, Regenerate and Clean Up Graph buttons.

/docs-shots/blender/
Regenerate rebuilds the city from the assigned base graph.
Note

Edits commit on release, not during the drag. The addon then waits roughly a quarter of a second after your last change before sending one command, so dragging a slider produces a single regeneration rather than one per mouse tick.

Land Use, and where the chain stops

The first decision for a region is what fills it, and it is the Land Use row at the top of the parameter column — four icon buttons, wide enough to read even before their art is dropped in.

Land UseWhat it meansWhat follows it
ResidentialHomes: flat-roof mid-rise, or pitched-roof low-rise with yards.The whole chain below.
CommercialMixed-use mid-rise with a 6 m ground floor.The whole chain below, with Massing Type narrowed to one option.
Parks & Open SpaceA park design; no building massing.A Park Type dropdown, and nothing else.
Empty BlockThe region boundary only — no material, no lots, no buildings.Nothing. The column ends with that sentence.

Park Type defaults to Random, which picks a design per block, and otherwise offers Park 1, Park 2, Park 3 and Park 4.

generation-parameters-region-type.png

The iCity Editor in Blocks mode with one region selected and its Land Use set to Parks & Open Space. Show the four Land Use buttons (Residential, Commercial, Parks & Open Space, Empty Block) with the third one lit, and the Park Type dropdown that appears under it reading Random.

/docs-shots/blender/
The Land Use row, with Parks & Open Space chosen and Park Type below it.
Note

Land Use is one control over two properties. It sets what the engine calls the region type — whose three values are spelled Massing, None and Parks, which is why those words turn up in tooltips and in the glossary — and it also picks the massing family, which is why Residential and Commercial are two entries over the same underlying value.

Blocks themselves are not selectable in this build. The Select Blocks and Select Regions toggles are hidden from the tools rail and Blocks mode is pinned to picking regions, so the block-level Split and Block Content controls in the code cannot be reached from the interface. Region is the unit you work with. See Regions.

Massing Type, Subdivision Method, Setback Mode

Under a building Land Use, three selectors decide what stands on the region and how the parcel is cut up underneath. They constrain each other, so it is worth reading them as one group.

SettingDefaultDescription
Massing TypeFlat-Roof Mid-RiseThe architectural family. Flat-Roof Mid-Rise is 4 to 6 floors; Mixed-Use Mid-Rise is the same with a 6 m ground floor; Pitched-Roof Low-Rise is at most 3 floors with front and rear yards.
Subdivision MethodFootprint MapHow the region becomes lots. Offered top-down as Straight Skeleton, Offset, Recursive, Footprint Map — Footprint Map is the default and the only one that cuts no lots at all.
Setback ModeAttachedHow buildings sit on their lots: Attached shares both walls, Semi-Detached frees one side, Detached frees both. Shown only when Subdivision Method is not Footprint Map, which has no lot edge to measure from.
generation-parameters-lot-split.png

The iCity Editor column in Blocks mode, region selected, Land Use Residential. Show the Massing Type icon row, the Subdivision Method section with its dropdown open listing Straight Skeleton, Offset, Recursive and Footprint Map in that order, and the Setback Mode row (Attached / Semi-Detached / Detached) below it.

/docs-shots/blender/
The Subdivision Method dropdown open, with Setback Mode under it.
Warning

Massing Type quietly loses options, from two directions at once. Land Use narrows it — Commercial offers only Mixed-Use Mid-Rise, Residential only the other two — and so does the method: Mixed-Use Mid-Rise is offered only under Footprint Map or with Setback Mode on Attached, and Pitched-Roof Low-Rise is never offered under Footprint Map. If your current choice stops being valid, Massing Type resets itself to Flat-Roof Mid-Rise. If nothing fits at all, the panel says so and tells you to change the method rather than leaving a blank row.

Setbacks, elevation and floors

Lot Settings opens with the setbacks, which are per region and appear only once a method actually cuts lots. Front and Rear are always there; Side joins them only under Semi-Detached or Detached, and the panel says why in a line under the fields.

SettingDefaultDescription
Front Setback3.0Street-facing lot edge to the building. Range 0 to 50.
Rear Setback3.0Back lot edge to the building. Range 0 to 50.
Side Setback2.0A free side lot edge to the building; a shared side is always zero. Range 0 to 50. Semi-Detached and Detached only.
Lot Elevation ModeMinimum ElevationThe Z level each lot is taken to: Preserve Slope, Minimum Elevation, Maximum Elevation, Average Elevation. Shown for every method, Footprint Map included — grid massing on sloped terrain is exactly the case that wants it.

Building Height closes the column with a floor range rather than a metric height, and it sits outside Lot Settings on purpose: it describes the buildings the region carries, not how the region is cut up, so it survives a change of method.

SettingDefaultDescription
Minimum Floors1Fewest floors a building in this region may have. Range 1 to 200.
Maximum Floors6Most floors a building in this region may have. Range 1 to 200.
Warning

The panel is honest about these five: the three setbacks and the floor range are stored on the region and shown back to you, but the engine does not read them yet. It prints that under Building Height. Wiring them means changing the packed parameter struct on both sides of the C++ boundary, which is not an add-on change.

The split settings

Choosing a Subdivision Method other than Footprint Map fills the rest of Lot Settings with that method's own numbers. Only one set is ever shown, and each is independent — the Recursive numbers are not the Offset numbers. Under Footprint Map you get a sentence instead: “Footprint Map places buildings from a 2D map clipped to the region, so there are no lot constraints.”

  1. Pick a region in Blocks mode and give it a building Land Use.
  2. Set Subdivision Method to Recursive, Offset or Straight Skeleton.
  3. The matching fields appear under the elevation row. Drag or click-to-type a value; the region rebuilds when you release.
    generation-parameters-recursive-fields.png

    The iCity Editor column, region selected, Subdivision Method set to Recursive. Show the Lot Settings section with the setback rows and Lot Elevation Mode at the top, then all six recursive rows: Min Area, Max Area, Min Width, Irregularity, Seed and Street Access (Recursive).

    /docs-shots/blender/
    The Recursive fields, under Lot Settings.

Recursive cuts the parcel down by repeated subdivision until the lots fall inside the area and width limits.

SettingDefaultDescription
Min Area800Minimum lot area. Range 10 to 50000.
Max Area2000Maximum lot area. Range 50 to 100000.
Min Width20Minimum lot width. Range 1 to 500.
Irregularity0.3Randomness of the split position: 0 cuts at the centre, 1 cuts anywhere. Range 0 to 1.
Seed0Random seed for the recursive split. Change it for a different arrangement of the same settings. Minimum 0.
Street Access (Recursive)0.5How strongly lots are oriented to front the street: 0 ignores streets, 1 always fronts them. Range 0 to 1.

Offset first pushes a band inward from the parcel edge, then subdivides that rim. The offset distance is what sets lot depth.

SettingDefaultDescription
Offset Distance35Inward offset for the perimeter band, which is the lot depth. Range 1 to 200.
Min Area800Minimum lot area. Range 10 to 50000.
Max Area2000Maximum lot area. Range 50 to 100000.
Min Width20Minimum lot width. Range 1 to 500.
Irregularity0.4Randomness of the split: 0 cuts at the centre, 1 cuts anywhere. Range 0 to 1.
Seed0Random seed for the offset split. Minimum 0.
Street Access (Offset)0.5The same street-fronting strength, for the offset rim subdivision. Range 0 to 1.

Straight Skeleton builds a straight skeleton of the parcel and cuts lots along it, which is what produces mitred corners. Its defaults are sized for region-scale parcels: the older 20 / 40 m widths collapsed a small region into one or two giant strips, and the 45-degree corner mitres only show when a street edge yields several lots.

SettingDefaultDescription
Group Angle45Angle threshold for grouping skeleton edges. Range 0 to 180.
Dissolve Angle180Angle threshold for dissolving skeleton edges. Range 0 to 360.
Align Offset0Offset for alignment at corners. Range -100 to 100.
Subdivide LotsOnWhether lots are subdivided along the skeleton.
Min Lot Width10Minimum lot width for the skeleton split. Range 1 to 200.
Max Lot Width20Maximum lot width for the skeleton split. Range 1 to 500.
Min Lot Area200Minimum lot area for the skeleton split. Range 1 to 50000.
Randomness0Random variation in lot sizes. Range 0 to 1.
Seed0Random seed for the skeleton split. Minimum 0.
Shallow Lot Fraction1.0A street front whose skeleton face is smaller than this times its length squared counts as shallow and is grouped with its neighbour. 0 disables shallow grouping. Range 0 to 10.
Corner AlignmentWidthWhich group wins the angle contest at a shared corner: None, Width (shortest street front wins) or Length (longest street front wins).
generation-parameters-skeleton-fields.png

The iCity Editor column, region selected, Subdivision Method set to Straight Skeleton. Show every row from Group Angle down to Corner Alignment, including the Subdivide Lots checkbox. Scroll so the whole set is in one frame if it fits, otherwise capture from Group Angle down.

/docs-shots/blender/
The Straight Skeleton fields, the longest of the three sets.
Note

The three Seed fields do not change how many lots you get, only which arrangement you get. If a split is close but not right, step the seed before touching the areas and widths.

Warning

Four of these values are not part of the packed parameter block and do not travel with a per-region edit: Street Access in both flavours, Shallow Lot Fraction and Corner Alignment. They ride a separate rider that is appended only to a full generate from the base graph, so a change to one of them shows up on the next Regenerate in Graph mode, not on the region rebuild you just triggered.

Parameters with no control

The addon sends a fixed block of generation parameters to the engine on every dispatch. Six of them have no control anywhere in the interface, so they always travel at the values below. They are listed here so the set is complete and so you do not go looking for a slider that does not exist.

ParameterValue it always sends
Spacing, distance between points5.0
Depth, height and scale of the cone1.0
Offset, shift points along the normal0.0
Block Type, what to place inside each blockMassing
Scatter Density, points per square metre0.05
Scatter Seed0

Block Type deserves a note. It is a city-wide copy of the same Massing / None / Parks choice, and the interface deliberately does not write it — the Land Use row sends a per-region assignment instead, because that is the only form the engine reads. One consequence is visible elsewhere: the DESIGN module's Park settings (Pattern, Tree density, Tree collection) are shown only when Block Type is Parks, which nothing sets, so that group does not appear.

  • Scattering that you can control is the DESIGN module's Scatter mode, which has its own per-system density and seed. See Surface details and Props and placements.
  • Floors are not a generation parameter. They are set per building in Massing mode. See Massing.
  • Lot shape after the split is edited by hand, not by these numbers. See Lots.
generation-parameters-massing-result.png

Two viewport captures of one identical region, side by side or as a before and after pair: first with Subdivision Method set to Recursive at its defaults, second with Straight Skeleton at its defaults. Same camera position and same zoom in both, lots and building masses visible.

/docs-shots/blender/
The same region under two different Subdivision Methods.