QGIS plugin · Urban planning studio · Manual

02UrbanPlanning — Urban Planning Studio

Draw a complete urban plan in QGIS, from the street network to the buildings. Road centrelines build the right-of-way, rounded junction corners, kerbs and blocks; blocks take land uses from a global LBCS-coloured palette; one zoning code drives the parcels, the buildings, population, jobs, the land budget and amenity provision.

Version: 0.2.0 QGIS: 3.28+ / 4.x Licence: GPL-3.0-or-later Developer: Geophilo Language: English
01 · Overview

A plan from A to Z in one panel

02UrbanPlanning carries an urban plan from the first street to the last building inside QGIS. The planner draws only what a plan decides: road centrelines with their class, the plan boundary, division lines, land uses, overlays and facilities. Everything that follows from those decisions (streets, junction corners, kerbs, blocks, parcels, buildings, population, jobs and the plan balance) is built for you and rebuilt when a decision changes.

Demo town plan with streets, coloured land-use blocks, parcels and buildings labelled with their storeys
The demo town (58 ha) after the full chain: arterial, collector and local streets with rounded corners and kerbs; land uses in LBCS colours; parcels from the zoning code; buildings labelled with storeys (6F = six floors).
Streets build the plan

Draw centrelines only

Right-of-way, junction corners rounded with the kerb radius plus the sidewalk, kerb lines, medians opened at junctions and the blocks between streets are built live.

One zoning code

Rules drive the plan

FAR, coverage, storeys, height, density, lot sizes, setbacks, typology, residential share and jobs per land use, edited in one window; a block value overrides its code.

Evidence on the page

Balance and targets

Land budget, population, dwellings, jobs, gross FAR, densities, amenity provision per 1,000 residents and the UN-Habitat (2014) neighbourhood targets.

The plugin works in any country and any language of plan: land-use colours follow the APA Land-Based Classification Standards (LBCS) colour families, road classes follow a functional hierarchy, and every number in the zoning code and the amenity standards is editable, so a local regulation replaces the defaults without code changes.

02 · Install and quick start

Install, then try a demo town

Recommended

QGIS Plugin Hub

In QGIS open Plugins → Manage and Install Plugins…, search for 02UrbanPlanning and install. The plugin is marked experimental, so tick Show also experimental plugins in the Settings tab. Updates arrive through the same window.

Offline

Install from ZIP

Download the release archive and use Plugins → Manage and Install Plugins… → Install from ZIP. No extra Python packages are needed; the parcel engine is bundled.

The plugin adds a toolbar button and a Plugins → 02UrbanPlanning menu with three entries: 02UrbanPlanning studio (opens the panel), Zoning Code… and Manual (this page).

Your first five minutes

Open the studio

Click the toolbar button. The panel docks on the right with five pages behind an icon rail: Plan, Draw, Code, Balance and Output.

Press “Try a demo town”

On the Plan page, Try a demo town builds a 900 m × 640 m (58 ha) neighbourhood at the map centre with the same tools you use: plan boundary, an arterial spine (Central Avenue), a collector (Market Street), local streets, an access lane and a greenway; 22 blocks with land uses; a school, a health centre, bus stops, a metro station, a playground and a landmark; parcels and buildings. It is stored in a new GeoPackage in your temporary folder (zero2urbanplanning_demo/demo_town_N.gpkg) with a target population of 12,000.

Move a junction

On the Draw page (step 2), pick the Move junction / bend road tool and drag the crossing of Central Avenue and Market Street. Every road that meets there follows; on release the right-of-way, kerbs and blocks are rebuilt and every block keeps its land use.

Read the balance

Open the Balance page and press Refresh: plan area, population, dwellings, jobs, floor area, gross FAR, densities, the land budget, the UN-Habitat targets and amenity provision.

Start your own plan

On the Plan page enter a plan name, horizon year, target population, a GeoPackage path and a projected CRS in metres, then press Create plan. The panel switches to the Draw page: draw the boundary, then the streets.

Metric CRS required. Every width, setback, lot size and area is measured in metres, so a plan must use a projected CRS in metres. Geographic CRSs (degrees) are refused when the plan is created. The panel proposes the project CRS when it is projected, otherwise the UTM zone of the map centre.

03 · Data model

The plan database: one GeoPackage

A plan is one GeoPackage. It holds three plan layers that share one code list, the development layers generated from them, the code tables every layer looks up, and the layer styles, so the plan opens styled in any QGIS. Copy the file and you have copied the plan.

Plan layers (what the planner decides)

TableLayer nameGeometryHolds
plan_zoningPlan zoningMultiPolygonBlocks with their land use and number, generated streets (by road class) and overlays. Fields: block_no, land_use, origin (block, street, overlay), road_class, name, the block overrides far, coverage, max_storeys, max_height, density, typology, and phase, area_m2, notes.
plan_networkPlan networkLineStringRoad centrelines, the plan boundary, land-use division lines, overlay boundaries, railways, waterways, utility lines and the generated kerb lines. Fields: kind, road_class, row_width, carriageway, median, sidewalk, corner_radius, name, code, origin, notes.
plan_pointsPlan pointsPointFacilities, transit stops, landmarks, trees to keep and utility nodes. Fields: code, name, capacity, notes.

Development layers (generated from the plan)

TableLayer nameGeometryHolds
plan_parcelsParcelsPolygonLots subdivided from blocks: parcel_no, block_no, land_use, area_m2, frontage (length on a street, m), flag (for example whole block for a public use kept as one lot).
plan_buildingsBuildingsPolygonBuilding footprints: building_no, parcel_no, block_no, land_use, typology, storeys, height, footprint, gfa (gross floor area), dwellings, population, jobs. Extruded by height in a 3D map view.

Code tables (the unified database)

TableHolds
plan_zoning_codeOne row per land use: code, name, family, fill (colour) and every zoning rule of section 6. Filled from the catalogue defaults when the plan is created.
plan_amenity_standardsProvision standards: key, name, ha_per_1000 (hectares per 1,000 residents), walk_m (walking distance) and codes (the land uses that supply the amenity).
plan_settingsKey/value plan settings: plan name, horizon year, target population, household size, dwelling size, planning authority, author, and the switches for clipping at the boundary, kerb lines and live rebuild.

Unit and extension tables

TableLayer nameHolds
plan_unitsPlanning unitsNeighbourhoods, districts, sectors, superblocks and delivery phases drawn over the blocks: unit_no, name, kind, notes (section 14).
plan_junctionsJunction solutionsPoint table for junction designs (solution, params, name, notes), created in every plan.
plan_siteSite planPolygon table for site elements of a lot (kind, parcel_no, block_no, land_use, area_m2, spaces, height, notes), created in every plan.

The layer tree groups the layers under the plan name in draw order, top first: Plan points, Junction solutions, Plan network, Buildings, Site plan, Parcels, Planning units, Plan zoning. Reload layers on the Plan page adds any plan layer missing from the project, and a plan made with an older version gains the tables a newer version expects when it is opened.

04 · Interface

The studio panel

The panel has a header with the plan name and horizon and an icon rail with five pages. A Save edits button appears in the header whenever a plan layer has unsaved edits; it writes every pending edit of the plan layers to the GeoPackage. The ? button at the foot of the rail opens this manual.

PageWhat it does
PlanNew plan (name, horizon year, target population, GeoPackage, CRS in metres; Create plan or Try a demo town), Open a plan (an existing 02UrbanPlanning GeoPackage), Current plan (file, feature counts and the buttons Zoom to plan, Reload layers, Restyle all, Rebuild network) and a short How a plan is made guide.
DrawThe whole plan in eight numbered steps: plan area, streets, land use, overlays, points, parcels, buildings and a live balance (section 5).
CodeA read-only summary table of every land use (colour, code, use, FAR, coverage, storeys, typology) and the button Open the Zoning Code… (section 6).
BalanceKey figures, the target-population check, the land budget, the UN-Habitat targets and amenity provision (section 12).
OutputPlan sheet (print layout and PDF), HTML plan report and Save a copy of the plan… (section 13).

Restyle all re-applies the catalogue styles (land-use colours, road-class lines, point markers, labels, value maps for coded fields, read-only generated fields and the 3D extrusion of buildings) and saves them as the default style in the GeoPackage.

05 · Draw page

Draw, step by step

The Draw page carries the plan in numbered steps. Every step follows the one before it: move a road and the blocks, their land use and the balance follow.

1 · Plan area

The plan boundary closes the blocks at the plan edge.

  • Draw the plan boundary: click the corners, right-click to close. A new boundary replaces the current one.
  • Boundary from selection: select polygons on any polygon layer (made active) and their outline becomes the plan boundary, reprojected to the plan CRS.
  • Clip streets at the boundary (on by default): the right-of-way, kerbs and street length stop at the boundary. Without a boundary, blocks are the areas the streets enclose.

2 · Streets

Pick a road class from the chips (each shows its right-of-way in metres), check the cross-section, and draw centrelines. Right-of-way, junction corners, kerbs and blocks are built for you.

  • Road class chips: Expressway 60, Arterial 40, Minor arterial 30, Collector 20, Local 15, Access lane 10, Pedestrian 10, Greenway 6 (see section 8). The tooltip lists the right-of-way, carriageway, sidewalks, median, kerb radius and design speed.
  • Cross-section: a live drawing of the section and five fields: ROW (property line to property line), Carriageway (both directions), Median, Sidewalk (each side) and Kerb radius (the block corner gets the kerb radius plus the sidewalk). A new road takes these values; every road keeps its own widths in the network layer.
  • Draw road: click points; they snap to roads and the boundary. Shift locks the angle to 15° steps, right-click or Enter writes the road, Backspace removes the last point, Esc clears. Where the new road meets or crosses existing roads a shared vertex is inserted on both, so the junction is real.
  • Draw curved road: start, a point on the curve, end; the third click writes a circular arc.
  • Move junction / bend road: drag a junction and every road vertex there moves together; drag a road elsewhere to bend it at a new vertex. Blocks follow on release.
  • Apply class to selected roads: gives the selected centrelines the class and cross-section above.
  • Undo the last road edit (the same as Ctrl+Z on the network layer) and Rebuild now.
  • Rebuild while editing roads (live rebuild, on by default) and Kerb lines (on by default). A status line reports roads, junctions, blocks, blocks without a use, street length and the rebuild time.
Close-up of an arterial and collector crossing with rounded block corners, kerb lines and a median opened at the junction
A junction as built from two centrelines: block corners rounded with the kerb radius plus the sidewalk, kerb lines rounded with the kerb radius, and the arterial median opened at the junction with rounded noses.

Road edits go into the layer's edit buffer, so they can be undone and are written to the GeoPackage with Save edits. Generated kerbs are written straight to the file and never enter the undo stack.

More street tools

  • Draw road with rounded corners (next to the curved road): click the corner points as for a straight road; every corner becomes a tangent arc of the Corner radius (default 30 m), and a short segment takes the largest radius that fits.
  • Dead ends: None, Turning circle or Hammerhead at every road end that stops inside the plan, sized by the road class: circles of 8–14.6 m kerb radius, hammerheads with 12–18.3 m arms. 14.6 m and 18.3 m are the fire-apparatus turnarounds of the International Fire Code, Appendix D; the smaller sizes are working defaults for refuse trucks. Roads that end on the boundary or run out of the plan get no head.
  • Right-of-way width labels: writes the width (20 m) on the centrelines, once per connected group of roads of the same width; road names are kept.

2b · Junctions

Every junction is first built as an ordinary crossing with rounded corners. Pick a solution from the icon row, then click a junction: a small window shows its parameters with plausibility notes and the source of the defaults, and the solution is stored in plan_junctions. It is rebuilt with the plan and follows the junction when it moves; it goes away when the junction does, and comes back with an undo. A click away from a junction (where fewer than two roads meet) is refused with a message. Remove solution makes a junction an ordinary crossing again. Details and default values in section 8.

Under the buttons the section reports the number of solutions and one warning line for junctions that are too close along a class (for example 5 arterial junctions closer than 200 m); Show zooms to them and selects their roads.

A single-lane roundabout on the crossing of an arterial and a collector, with a green central island, four splitter islands and flared entries
A single-lane roundabout from the junction tool: central island, circulatory carriageway, splitter islands joined to the arterial median, and entries that flare into the ring with the entry radius.

3 · Land use

Pick a use from the palette (grouped by colour family), then click or drag across blocks: every block the cursor crosses takes the use. Blocks that still need a use are drawn with an orange dashed outline. The tooltip of each swatch shows the code, the name, the description and the main rules (FAR, coverage, storeys, density, typology).

  • Apply to selected blocks: gives the chosen use to the blocks selected on the zoning layer.
  • Split a block: draw a division line across a block. It may stop a little short of the edges (it is extended by 2.5 m). Both parts keep the use; give one of them another.
  • Number blocks: numbers blocks from top-left to bottom-right and keeps existing numbers; Shift+click renumbers every block. Block labels read the land-use code and the number (for example R2 / B7).
  • Clear the use of the selected blocks.

Changing a block's land use clears the rule overrides typed on that block (FAR, coverage, storeys, height, density, typology), because they belonged to the old use.

Demo town land-use plan with block labels such as R1 B1, E1 B3 and MU1 B9
Land use before subdivision: each block shows its code and number; points mark the school, health centre, bus stops, metro station, playground and landmark.

Style painter

Three buttons under the palette copy a block's decisions to other blocks. Pick a block's style (eyedropper): click a block and its land use and rule overrides (FAR, coverage, storeys, height, density, typology) become the brush. Paint the picked style: click or drag across blocks and they take that land use and those overrides. Copy rules to the selection: only the overrides go to the selected blocks; each keeps its own land use.

3+ · Drawing aids

Construction helpers under the land-use step. Lines go into the network through the edit buffer, so Ctrl+Z undoes them and the blocks follow. Draw as sets whether parallel, perpendicular, angle and offset lines become roads (with the class of step 2) or division lines; Distance (default 60 m, 0 = follow the cursor), Strips (with across) and Angle snap (off, 5°, 15°, 30°, 45°, 90°) set the aids.

AidUse
Parallel roadClick a road, then the side: a new line at the set distance (0 = through the second click).
PerpendicularClick a road, then a point: a line at right angles from the point to the road; click on the road itself for a stub of the set distance.
Extend / trimClick near a line end: it runs on to the next road or the boundary, or a short overshoot past a crossing is trimmed.
Line with angle snapSegments lock to the direction of the nearest road plus the angle step; right-click or Enter writes, Shift frees the angle.
MeasureLive length, bearing and enclosed area; nothing is written.
Rectangle plazaTwo corners of one edge, then the depth: the plaza is cut out of the block and gets the palette's use (Plaza, P4, if none is picked).
Circular plazaCentre, then a point on the edge.
Divide a blockClick a block: division lines split it into the set number of strips of equal area, across or along its long side.
Offset the plan boundaryWrites the boundary moved inwards by the distance, as a ring road or an edge division line.

U · Planning units

Neighbourhoods, districts, sectors or quarters, superblocks and delivery phases over the blocks, each with its own population, homes and jobs. Give a name (optional) and a kind, then Draw a unit (click the corners, right-click closes) or Unit from selected blocks (the selected blocks and the streets between them become one unit). Number units numbers them top-left to bottom-right (Shift+click renumbers all), and Unit balance fills a table of area, people, homes and jobs per unit (buildings where they exist, otherwise the zoning-code capacity). Every block belongs to the unit it overlaps most; click a row to go to the unit.

4 · Overlays

Overlays are boundaries over the land use: heritage, hazard, phasing and special areas. Pick an overlay, then draw its area on the map (right-click closes). Overlays are stored in plan_zoning with origin = overlay, drawn above the land use with a dashed outline and a light diagonal hatch in the overlay colour, and never change the land budget. The ten types are listed in section 9.

5 · Points

Facilities, stops and landmarks: pick a type and click on the map (clicks snap to the network). Each point gets the type's name, which you can edit. The 21 types are listed in section 9.

6 · Parcels

Blocks are subdivided by the lot width, lot area, depth and frontage of their use with the bundled ParcelFlux engine; public uses become one lot per block. Choose Every block with a use or Selected blocks, the Width variation (0–40 %, lot widths vary randomly by ±that share) and the Seed (same seed, same parcels), then press Generate parcels. Details in section 10.

7 · Buildings

Setbacks, site coverage, FAR, storey and height caps and the typology of each use shape the buildings; residents and jobs are counted on them. Choose Every parcel, Selected parcels or Parcels of selected blocks and press Generate buildings. 3D view opens a 3D map view in which buildings are extruded by their height. Details in section 11.

Close-up of perimeter-block, mixed-use and semi-detached buildings on their parcels
Typologies at work: a high-density residential block (R3, perimeter), a mixed-use block (MU1, attached frontage) and a medium-density block (R2, semi-detached pairs).

Two options and a comparison sit above the button:

  • Tower podium: Mixed use & commercial (default), Every tower or No podiums. A podium is two storeys along the street with the tower set back 3 m above it.
  • Chamfer block corners (on by default): perimeter blocks and corner rows turn the rounded street corner into a short straight facade; off, the building follows the curve of the kerb.
  • Compare typologies: select one numbered block on the zoning layer; every typology is tried on its parcels without writing anything, and a table compares floor area, coverage, storeys and homes. ★ marks the form with the most floor area that still builds on nine lots in ten. Apply to block stores the chosen typology as the block's override and rebuilds its buildings.

7+ · Site plan

Lays out every built lot (or the selected parcels or blocks): parking by the zoning-code rule (spaces per 100 m² of floor area), paths and plazas, gardens, trees and play areas, written to plan_site. Parking is Surface, then underground (surface bays first, a basement for what does not fit), Surface only (the rest is reported as a shortfall) or All underground. Tiles show the parking provided, the shortfall, trees and play areas. Generate the buildings first; re-subdividing a block removes its buildings and site elements, since they stood on the old lots.

8 · Balance

Live plan figures (population, dwellings, jobs, blocks without a use) and a bar of the land shares by colour family. Open the balance switches to the Balance page.

Under the quick balance a note compares the plan capacity with the target population and shows the share of residents within walking distance of every amenity, once a projection or an accessibility run exists (section 15).

Saving and live rebuild

The live rebuild watches the network layer. When a road, the boundary or a division line is added, moved, deleted or changed, the streets, kerbs and blocks are rebuilt after a short pause (about a third of a second), so a quick series of edits triggers one rebuild. Blocks keep their identity: each new block takes the attributes of the old block it overlaps most; when one block becomes two, both halves keep the land use and the larger half keeps the number.

06 · Rules

The Zoning Code

The Zoning Code window (Code page, or Plugins → 02UrbanPlanning → Zoning Code…) holds every rule the plan uses. Values are stored in the plan GeoPackage (plan_zoning_code) and drive the parcels, the buildings and the plan balance. Press Save to write them; the zoning and building styles are refreshed. Regenerate the buildings to apply new rules to them.

Tabs

TabContents
Land uses & rulesOne row per land use with its colour swatch (click to change), code, name and every rule below. A filter box, Reset selected, Reset all (back to the catalogue defaults), Export JSON… and Import JSON… (zoning code and amenity standards in one file, to reuse a code across plans).
Amenity standardsLand per 1,000 residents, walking distance and the land-use codes that supply each amenity (section 12).
Plan settingsPlan name, plan horizon year, planning authority, prepared by, target population, household size (persons per dwelling, default 2.8), average dwelling size (m² gross, default 90), and the switches Clip streets at the plan boundary, Draw kerb lines and Rebuild while editing roads.
Road classesThe default cross-sections by functional class (read-only reference; each road keeps its own widths).
ReferenceThe colour convention, the UN-Habitat targets and how rules combine.

Every rule explained

RuleUnitMeaning and how the plugin uses it
FARratioFloor area ratio: gross floor area ÷ lot area. The building step gives a footprint floor(FAR × lot area ÷ footprint) storeys, never more than the storey limit. Before buildings exist, a block's floor-area capacity is FAR × block area.
Site coverage% of lotMaximum share of the lot covered by buildings. The footprint is trimmed to coverage × lot area, and never above FAR × lot area so that one storey still fits the FAR (when coverage is 0, 60 % of the lot is the working limit).
Max storeysstoreysMaximum number of storeys above ground; 0 means no storey cap.
Max heightmMaximum building height; converted to storeys as floor(max height ÷ storey height). The tighter of the storey cap and the height cap applies; with neither, the building step uses 30 storeys as its ceiling.
Densitydu/haMaximum dwelling units per net hectare. Dwellings on a lot are capped at density × lot area ÷ 10,000 (for a block without buildings, on the block area).
Min lotm²Minimum lot area for subdivision. Lots smaller than the merge threshold are merged into a neighbour; lots larger than four times the minimum are split again.
Min frontagemMinimum street frontage of a lot (passed to the engine as at most 80 % of the lot width).
Lot widthmTypical lot width: the spacing of the division lines when blocks are subdivided. A use is subdivided only when Parcels is on and the lot width is above 0.
Lot depthmTypical lot depth; 0 lets the block decide (single or double row of lots by block width).
Front, Side, RearmSetbacks from the street line, the side boundaries and the rear boundary. Lot edges on a street are fronts (an interior lot's front is its edge nearest a street); edges roughly parallel to the main front (within 30°) and in the far part of the lot are rears; the rest are sides. Shared walls of attached, perimeter and semi-detached types get no side setback.
Open space% of lotMinimum landscaped share of the lot, kept in the code as the plan rule for each use (exported with the code). In this version the building step shapes footprints by coverage and setbacks.
TypologychoiceBuilding form used when buildings are generated: no buildings, detached, semi-detached, attached / row, perimeter block, tower in landscape, slab / large footprint, pavilion (section 11).
Residential% of floor areaShare of floor area used as dwellings; the rest is economic floor space that carries jobs.
Storey heightmFloor-to-floor height (default 3.2 m): building height = storeys × storey height; also used for the height cap.
Parkingspaces / 100 m²Parking spaces required per 100 m² of floor area, kept in the code as the plan's parking standard.
m²/jobm²Floor area per job: jobs = floor area × (1 − residential share) ÷ m² per job. 0 means the use carries no jobs.
ParcelsswitchGenerate parcels in blocks of this use. Uses that build but are not subdivided (schools, hospitals, sports) become one lot per block.
BuildingsswitchGenerate buildings on lots of this use.

Block overrides

Six rules can be typed on a block in plan_zoning: far, coverage, max_storeys, max_height, density and typology. A value typed on a block overrides the code for that block only; an empty field uses the code. Overrides are cleared when the block gets another land use.

How rules combine for one lot storeys = max(1, min(storey limit, floor(FAR × lot area ÷ footprint)))
storey limit = min(max storeys, floor(max height ÷ storey height))  (caps of 0 are ignored)
floor area = footprint × storeys
dwellings = floor(min(floor area × residential share ÷ dwelling size, density × lot area ÷ 10,000))
residents = dwellings × household size  ·  jobs = floor area × (1 − residential share) ÷ m² per job

The Code page also offers presets (Generic, Low-rise suburban, Compact city), JSON import and export, and a legend preview (section 14).

07 · Catalogue

Land-use catalogue: 37 codes in LBCS colour families

Colours follow the convention planners read worldwide, the colour families of the APA Land-Based Classification Standards (LBCS): residential in yellows to browns by density, mixed use in orange, commercial in reds, industrial in purples, public and institutional uses in blues, parks and open space in greens, transport and utilities in greys, rural and natural land in pale olive. Within each family the tones are tuned so neighbouring classes stay distinguishable on screen and in print. Every colour can be changed in the Zoning Code; hatched codes carry a pattern over the fill.

CodeLand useDescriptionAmenity group
Residential
R1Low-density residentialDetached houses on individual lots.–
R2Medium-density residentialSemi-detached and small apartment buildings.–
R3High-density residentialApartment buildings and perimeter blocks.–
R4Very high-density residentialResidential towers in landscaped grounds.–
R5Rural residentialLarge-lot housing at the urban edge.–
Mixed use
MU1Mixed use (residential over retail)Ground-floor shops and services with homes above.–
MU2Mixed use (urban centre)Dense centre with offices, retail and housing.–
Commercial
C1Neighbourhood commercialLocal shops and services within walking distance.–
C2General commercialRetail, services and hospitality.–
C3Central business districtOffices and high-order services.–
C4Office & business parkCampus-style offices and research.–
Industrial
I1Light industrialWorkshops, light manufacturing, makerspaces.–
I2General industrialManufacturing and processing.–
I3Logistics & warehousingDistribution centres and storage.–
Public & institutional
E1Pre-school & primary schoolKindergartens and primary schools.Pre-school & primary
E2Secondary schoolMiddle and high schools.Secondary school
E3Higher education & researchUniversities, colleges and institutes.–
H1Health careClinics, health centres and hospitals.Health care
G1Civic & governmentTown hall, courts and public administration.Civic & government
K1Community & culturalCommunity centres, libraries, museums, theatres.Community & cultural
K2Places of worshipReligious buildings of every faith.Places of worship
S1Public safety & emergencyFire, police and emergency services.Public safety
Parks & open space
P1Park & public gardenNeighbourhood and district parks.Parks & gardens
P2Playground & pocket parkChildren's play and small green spaces.Equipped play
P3Sports & recreationPlaying fields, sports halls, pools.Outdoor sports
P4Plaza & civic squareHard-landscaped public squares.–
P5Green buffer & corridorLandscape buffers, green corridors and riparian strips.–
P6CemeteryBurial grounds.–
Transport & utilities
T1Street right-of-wayStreets generated from the road network.–
T2Highway & expresswayAccess-controlled roads generated from the road network.–
T3Transit & railStations, depots and rail corridors.–
T4Public parkingSurface and structured public parking.–
U1Utilities & infrastructureWater, energy, waste and telecom facilities.–
Rural & natural
A1AgricultureFarmland and orchards.–
N1Natural & conservation areaForests, wetlands and protected habitats.–
W1Water bodyRivers, lakes and the sea.–
X1Future development reserveLand held for a later plan phase.–

Zoning-code defaults

The working defaults every new plan starts from. Replace them with your local regulation in the Zoning Code.

CodeFARCoverStoreysHeight mdu/haLot w mMin lot m²Front. mF / S / R mOpenTypologyRes.Park.m²/jobParcelsBldgs
R10.535%292018450155 / 3 / 540%Detached100%1.5–✓✓
R21.240%4156014300125 / 3 / 430%Semi-detached100%1.2–✓✓
R32.445%82815026600205 / 4 / 625%Perimeter block100%1–✓✓
R4435%2065300401500308 / 8 / 835%Tower in landscape100%0.8–✓✓
R50.1515%2854020003010 / 6 / 1070%Detached100%2–✓✓
MU12.560%62212020400160 / 0 / 515%Attached70%140✓✓
MU23.565%103618030800240 / 0 / 615%Perimeter block50%0.825✓✓
C1150%312–20400163 / 0 / 515%Attached–2.540✓✓
C2255%624–30800245 / 3 / 515%Slab–335✓✓
C3670%30110–361200300 / 0 / 610%Tower in landscape–118✓✓
C41.540%624–452000368 / 6 / 830%Slab–2.520✓✓
I1155%315–401500308 / 5 / 615%Slab–160✓✓
I20.860%218–6040005010 / 8 / 810%Slab–0.690✓✓
I30.760%116–8060006012 / 10 / 1010%Slab–0.4120✓✓
E10.830%313––––8 / 8 / 840%Pavilion–0.860–✓
E20.830%416––––10 / 10 / 1040%Pavilion–0.860–✓
E31.230%624––––10 / 10 / 1040%Pavilion–140–✓
H11.540%626––––8 / 8 / 830%Pavilion–1.545–✓
G11.540%520––––8 / 6 / 630%Pavilion–230–✓
K1140%315––––6 / 5 / 530%Pavilion–1.580–✓
K20.840%218––––6 / 5 / 530%Pavilion–1––✓
S10.840%314––––8 / 5 / 520%Pavilion–150–✓
P1–––––––––95%––––––
P2–––––––––95%––––––
P30.215%214––––6 / 6 / 680%Pavilion––––✓
P4––––––––––––––––
P5–––––––––100%––––––
P6–––––––––80%––––––
T1––––––––––––––––
T2––––––––––––––––
T30.530%215––––––Slab––80–✓
T4––––––––––––––––
U10.330%210––––––Slab––200–✓
A1––––––––––––––––
N1–––––––––100%––––––
W1––––––––––––––––
X1––––––––––––––––
08 · Streets

Road classes and the network engine

Eight functional classes. A new road takes its class's cross-section; each road keeps its own widths in plan_network, so a section can be changed road by road. Streets are generated into plan_zoning as land use T1 (street right-of-way), expressways as T2 and greenways as P5.

ClassNameROW mCarriageway mMedian mSidewalk mCycle track mKerb radius mkm/hLanesLand use
FWYExpressway60224–––1006T2 Highway & expressway
ARTArterial402134.5215606T1 Street right-of-way
SARMinor arterial3014241.512504T1 Street right-of-way
COLCollector209–3.51.59502T1 Street right-of-way
LOCLocal street157–3–6302T1 Street right-of-way
ACCAccess lane105.5–2.25–4201T1 Street right-of-way
PEDPedestrian street100–5–35–T1 Street right-of-way
GRNGreenway & cycle path60–3–220–P5 Green buffer & corridor

How streets, kerbs and blocks are built

  1. Junctions. Points where two or more centrelines meet (shared ends, T-ends and crossings, within 5 cm) are junctions.
  2. Right-of-way. Each centreline is buffered by half its right-of-way with flat ends. Where a centreline ends on another road its end gets a disc of the same half width, so L-corners and T-junctions close cleanly; dead ends stay square.
  3. Junction corners. At every junction the right-of-way is closed locally with a radius equal to the largest kerb radius plus sidewalk of the roads that meet, which fills the re-entrant corners with true circular arcs. Only fillet-sized pieces near the junction are kept, so narrow blocks elsewhere are never swallowed.
  4. Streets by class. The right-of-way is split by class, higher classes first, so the junction square belongs to the major road.
  5. Kerbs. The same is done for the carriageway with the kerb radius. Medians are cut out and opened at every junction where another road joins, with rounded noses; a plain continuation of the same road keeps its median.
  6. Blocks. Plan area minus right-of-way (or, without a boundary, every area the streets enclose), split by division lines. Leftovers smaller than 25 m² or thinner than about 1 m are slivers, not blocks.

Junction solutions

A solution is a point in plan_junctions (solution, params as JSON, name, notes) applied on top of the steps above on every rebuild. Its islands are written to plan_zoning as street land with the class ISL and the land use P5, so the balance counts them as green buffer, and blocks + streets + islands still add up to the plan area. All dimensions are editable per junction; the defaults are working values to check against your local design standard.

SolutionWhat is builtDefaults
RoundaboutCentral island, circulatory carriageway with its outer kerb, a splitter island on every arm joined to the median, entry and exit curves of the entry radius, arms widened beside the splitters. Refused on fewer than three arms or when the next junction is too close; splitters and tapers are trimmed to the room available.Single-lane: inscribed diameter 36 m, ring 6 m, entry radius 15 m, splitter 15 × 3 m. Two-lane: 50 m, 9.5 m, 20 m, 20 × 4 m. Inside the ranges of FHWA (2000) and NCHRP Report 672 (2010).
Channelized junctionA teardrop island on every minor approach, a lane kept on each side; the minor kerb eases back to its normal line without a kink.Nose 3 m behind the major carriageway, radius 1.5 m, length 25 m, lane 3.5 m, taper 15 m.
Grade-separated crossingNo at-grade connection: no corner fills, the upper road's kerbs and median run straight through and the lower carriageway stops at the deck edge. Upper road: Major road over (the higher class, default) or Minor road over.No dimensions of its own.
Right-in / right-outThe major road's median stays closed across the junction; where it has none, a divider is added.Divider 2 m wide, running 15 m past the minor road on each side.
A T-junction where a local street meets a collector, with a long green teardrop island on the minor approach
A channelized T-junction: the teardrop island on the minor approach, with a lane kept on each side of it.

Junction spacing. After every rebuild, at-grade junctions closer than a minimum along their class are reported: expressway 1,000 m, arterial 200 m, minor arterial 120 m (working defaults in the order of unsignalised access spacing in access-management practice, e.g. the TRB Access Management Manual, 2014). Override them per plan with the setting junction_spacing_<CLASS>. At-grade junctions on an expressway are flagged too.

Local rebuild

The live rebuild remembers the previous result and rebuilds only a window around what changed: streets, islands and kerbs are patched inside it and every block touching it is rebuilt whole, with its land use and number. The result is the same as a full rebuild (a stress test checks this after every one of dozens of random edits). A full rebuild is used for the first rebuild, after an option change, for boundary and division-line edits, for changes reaching more than half the plan, and for plans with fewer than 40 roads. A full rebuild of a big plan shows a progress window with Cancel, which leaves the plan as it was.

Blocks removed by an edit are remembered in the plan: when an undo or a redrawn road brings a block back in the same shape, it gets its old land use, overrides and number again.

09 · Overlays and points

Overlays and point types

Overlays (10)

CodeOverlay
OV-HERHeritage conservation area
OV-FLDFlood hazard zone
OV-GEOGeological hazard zone
OV-ECOEcological protection zone
OV-TODTransit-oriented development area
OV-RENUrban regeneration area
OV-SPASpecial planning area
OV-PH1Phase 1 development
OV-PH2Phase 2 development
OV-AIRAirport safeguarding zone

Point types (21)

Point types marked with an amenity group belong to that provision family; the Balance page measures provision by zoned land.

CodePointGroupMarkerAmenity group
PT-KGKindergartenEducationcirclePre-school & primary
PT-PSPrimary schoolEducationcirclePre-school & primary
PT-SSSecondary schoolEducationcircleSecondary school
PT-HCHealth centreHealthcrossHealth care
PT-HOHospitalHealthcrossHealth care
PT-CCCommunity centreCommunitysquareCommunity & cultural
PT-LBLibraryCommunitysquareCommunity & cultural
PT-WSPlace of worshipCommunitypentagonPlaces of worship
PT-FSFire stationSafetytrianglePublic safety
PT-PLPolice stationSafetytrianglePublic safety
PT-MKMarketCommercediamond–
PT-BSBus stopTransitcircle–
PT-MSMetro / rail stationTransitsquare–
PT-BKBike share dockTransitcircle–
PT-PKParking entranceTransitsquare–
PT-PGPlaygroundOpen spacestarEquipped play
PT-SPSports facilityOpen spacehexagonOutdoor sports
PT-LMLandmarkIdentitystar–
PT-VWProtected view pointIdentityarrowhead–
PT-TRTree to keepLandscapecircle–
PT-UTUtility nodeUtilitiessquare–

Network line kinds

plan_network stores one kind per line: road (road centreline), boundary (plan boundary), division (land-use division line), overlay (overlay boundary), rail (railway), waterway (waterway), utility (utility line), kerb (kerb line (generated)). Road centrelines, the boundary and division lines drive the rebuild; railways, waterways and utility lines are drawn and styled but do not cut blocks.

10 · Subdivision

Parcels: the ParcelFlux engine

Subdivision uses a bundled copy of the ParcelFlux engine (ParcelFlux plugin v0.3.8, same author, GPL-3.0-or-later), so no other plugin is needed. Blocks are grouped by the lot rules of their use (lot width, minimum lot area, lot depth, minimum frontage) and each group is subdivided in one run.

  1. Each block is read as regular (four corners) or irregular; an irregular block keeps its real shape and its oriented bounding box guides the line direction.
  2. The two shortest edges are the block's ends; division lines run perpendicular to them.
  3. A block wider than 1.8 lot widths gets a double row of lots (back to back), a narrower one a single row.
  4. Division lines are placed at the lot width, varied by the Width variation slider with a seeded generator, so the same seed gives the same parcels.
  5. Lines are clipped to the block and split it; fragments smaller than 35 m² are merged into the neighbour with the longest shared edge (three passes); lots larger than four times the minimum lot are split again.

Blocks of uses that build but are not subdivided (education, health care, civic, community, worship, public safety, sports, transit and utilities) become one lot each, flagged whole block, so the building step can place their buildings. Parks, plazas, streets and water get no parcels. Generating parcels for a set of blocks replaces only the parcels of those blocks; parcels are numbered block by block, north to south and west to east, and every lot records its street frontage.

Demo town subdivided into parcels by the zoning code
Parcels from the zoning code: narrow lots in the detached and semi-detached blocks, wider lots in the apartment and commercial blocks, one lot for each school, hospital and sports block.
11 · Buildings

Buildings: typologies and how the caps combine

For every lot the engine classifies the edges (front, side, rear; side edges shared with the next lot are party walls for attached, semi-detached and perimeter types), cuts the setbacks off edge by edge (party walls get none), and shapes the footprint by typology, always oriented to the street. The footprint is trimmed to the tighter of the site-coverage limit and the FAR (a one-storey building never exceeds the FAR); footprints below the typology's minimum width or depth, or under 25 m², are rejected. Storeys come from the FAR, the storey cap and the height cap, whichever is tightest, and floor area, dwellings (capped by density), residents and jobs are written on the building. Regenerating replaces the buildings of the processed parcels.

TypologyFootprintMin width mDepth m (min–max)Default uses
Detached (free-standing)The largest rectangle in the frame of the main front that fits the buildable area, free-standing within all four setbacks.66–14R1, R5
Semi-detached (pairs)A rectangle; each lot pairs with one side neighbour along the street, and the two halves share the party wall, the build line and the depth.56–13R2
Attached / row (terrace)A rectangle running the full lot width, so the row reads as one street wall with one rear line; corner lots take a band that follows the street round the corner.4.57–14MU1, C1
Perimeter block (courtyard)A band along the street that follows it round the corner, with a mitred inner face and a chamfered outer corner, leaving the block interior as a courtyard.68–14R3, MU2
Tower in landscapeA compact rectangle in its grounds (footprint at most 900 m²); with the podium option, a two-storey podium along the street and the tower set back 3 m above it. By default (auto) mixed and commercial towers get a podium: homes go to the tower, other floor space to the podium.1212–30R4, C3
Slab / large footprintA large rectangle in the frame of the front; on deep lots a second parallel slab (at least 12 m apart) when coverage allows. Single-storey sheds may be up to 60 m deep.88–24C2, C4, I1, I2, I3, T3, U1
Pavilion (public building)A compact public building that keeps an 8 m forecourt in front when the lot allows.1010–32E1, E2, E3, H1, G1, K1, K2, S1, P3

Reading a building

Buildings are drawn in a darker tone of their land-use colour and labelled with their storeys (4F = four floors) at large scales. Each building carries storeys, height, footprint, gfa, dwellings, population (dwellings × household size) and jobs; the plan balance reads these numbers wherever a block has buildings.

How a footprint is placed

  • Facing the street. Each lot gets a local frame on its main front, and the footprint is the largest rectangle in that frame that fits the buildable area within the typology's width and depth limits. A lot with no street frontage faces its open block edge.
  • The tighter cap wins. The footprint target is the smaller of coverage and FAR ÷ storeys, so a one-storey building never exceeds the FAR; storey, height and density caps apply on top. Lots below the minimum width or depth of the typology are skipped and reported with the reason.
  • Pairs and rows. Semi-detached houses pair only with a side neighbour on the same street line; in an odd row one lot stays detached. Attached rows share one rear line, and perimeter blocks close into continuous courtyard rings.

Site plan

ElementHow it is laid out
ParkingSurface bays in single- or double-loaded rows whose aisles start at the street (every aisle is checked to reach it); houses get driveway bays up to two deep; the rest goes to a basement with levels and a ramp, or is reported as a shortfall.
Paths and plazasFootpaths to the front doors of homes, forecourts for shops and mixed uses, plazas in front of public buildings.
Gardens and treesThe open rest of the lot is garden; trees of varied size line the street frontage and the lot lines, a few stand in large gardens and groves in parks, clear of the buildings and the paving.
Play areasOne per block with 20 homes or more: 1.5 m² per home, 100–600 m².
Site plan of a perimeter block with a courtyard of trees and a play area, and semi-detached houses with driveway parking bays
The site plan of the demo: a perimeter block (R3) closing into a courtyard with trees and a play area, semi-detached pairs (R2) with driveway bays and front paths, and a mixed-use block (MU1).
12 · Balance

Balance and indicators

The balance is meaningful from the first block onwards: a block with buildings counts its buildings; any other block counts its zoning-code capacity (FAR × area for floor area, the residential share and dwelling size for dwellings, capped by density). The Balance page reports how many blocks are counted from buildings.

Key figures

FigureDefinition
Plan area (ha)Area inside the plan boundary; without a boundary, the zoned area (blocks plus streets).
Population, dwellings, jobsSummed over blocks, from buildings or from capacity.
Floor area (m²)Gross floor area of all blocks.
Gross FARFloor area ÷ plan area.
People / haPopulation ÷ plan area in hectares (gross density).
Dwellings / ha netDwellings ÷ area of blocks whose use has a residential share (net residential density).
Target populationWhen a target is set in the plan settings, the page says how many more people the plan houses, or by how many it falls short.

The land budget lists every land use (and streets) with its area in hectares and its share of the plan area, with a bar of shares by colour family; blocks without a use are shown separately.

UN-Habitat neighbourhood targets

The plan is measured against UN-Habitat (2014), A New Strategy of Sustainable Neighbourhood Planning: Five Principles. Each target is a meter on the Balance page and a row in the report.

PrincipleTargetPlan indicator
Adequate space for streetsAt least 30 % of land in streetsArea of T1 and T2 streets ÷ plan area
Efficient street networkAt least 18 km of street per km²Centreline length inside the plan ÷ plan area
High densityAt least 15,000 people per km²Population ÷ plan area
Mixed land useAt least 40 % of floor area in economic useNon-residential floor area ÷ total floor area

The other two principles of the strategy, social mix (a share of affordable housing) and limited land-use specialisation (fewer than 10 % of blocks in a single use), concern housing tenure and the mix inside blocks; they are named in the Reference tab of the Zoning Code and are left to the planner's judgement.

Amenity provision

For each amenity the balance compares the land zoned for it (the area of blocks with the listed land-use codes) with the need of the planned population (hectares per 1,000 residents × population ÷ 1,000), and reports the provision ratio and the zoned area per person. A ratio of 100 % or more meets the standard.

Amenityha per 1,000Walk mLand usesSource of the default
Pre-school & primary0.60800E1Editable working default
Secondary school0.501,500E2Editable working default
Health care0.251,200H1Editable working default
Community & cultural0.201,000K1Editable working default
Places of worship0.101,000K2Editable working default
Public safety0.053,000S1Editable working default
Civic & government0.103,000G1Editable working default
Parks & gardens0.80710P1Fields in Trust (2015)
Equipped play0.25400P2Fields in Trust (2015)
Outdoor sports1.601,200P3Fields in Trust (2015)

Parks and gardens, equipped play and outdoor sports follow Fields in Trust (2015), Guidance for Outdoor Sport and Play: Beyond the Six Acre Standard. The other standards are editable working defaults for a first plan, typical planning norms rather than a single published source; every jurisdiction sets its own, so replace them in the Amenity standards tab.

The Balance page also holds walking accessibility with the 2SFCA provision index, the population projection, the balance per planning unit and the Excel / CSV export (section 15).

13 · Outputs

Outputs

Plan sheet (print layout and PDF)

Choose the paper (A0, A1, A2, A3 or A4, landscape) and a title, then Create layout (opens the Layout Designer) or Export PDF… (300 dpi). The sheet has a framed map at a rounded scale (1:500 to 1:100,000) fitted to the plan, the title and a subtitle with the planning authority and horizon year, a legend filtered to the classes drawn on the map, the land-budget table (up to 22 rows) with plan area, population, dwellings, jobs and gross FAR, a north arrow, a scale bar and a title block with scale, CRS, date and author. A layout of the same name is replaced, so the sheet can be regenerated after every change and refined in the Layout Designer.

HTML plan report

Write HTML report… saves one self-contained HTML file: key figures (plan area, population, dwellings, jobs, floor area, gross FAR, gross and net densities), the land budget with colour swatches and bars, the UN-Habitat targets with met / not met, and amenity provision (zoned, needed, m² per person, provision %).

Share the plan

Save a copy of the plan… first saves pending edits, then copies the GeoPackage. It carries the layers, the styles and the zoning code, so it opens styled in any QGIS.

On the sheet the legend is set in two columns and measured at its drawn size; when it is too tall its type shrinks before anything is cut. The land budget is a table with colour swatches and a bold total row, and uses that do not fit are merged into one N other uses row. The map frame keeps its shape and is set to a round scale, which the footer prints. Prepared by appears only when an author is set.

Multi-sheet plan sheets at a true scale and the full report with projection, accessibility and charts are described in section 15.

14 · Plan tools

Plan check, revisions, presets and legend

Check the plan (Plan page)

Check the plan lists the problems a reviewer would mark before the plan is shared, as errors, warnings and notes; click an issue to zoom to it and select the features. Window shows the list in a larger window, and Re-check after every rebuild keeps it current while you draw.

CheckSeverityWhat it finds
No plan boundary / Boundary not closedErrorThe plan has no boundary line, or the boundary lines do not close a polygon.
Duplicate / Overlapping centrelinesErrorTwo centrelines on top of each other, or sharing a stretch.
Block without useWarningA block with no land use.
Sliver blockWarningA block under 150 m² or thinner than 6 m (2 × area ÷ perimeter).
Unsnapped road endWarningA road end stopping within 6 m short of another road, or running up to 6 m past a crossing.
Very short roadWarningA road shorter than 12 m.
Road / overlay outside the planWarningA centreline wholly outside the plan area; an overlay with more than 2 % outside it.
No street frontageWarningA block that touches no street (parks, plazas and rural land excepted).
Use vs road classWarning or noteIndustry and logistics on local streets only; high-order commercial on local streets only; a school on an expressway, a primary school on an arterial; low-rise housing on an expressway; health, emergency, industrial, commercial, transit or utility uses fronting only pedestrian streets or greenways.
Block without number / Unsaved editsNoteUnnumbered blocks; plan layers with unsaved edits.

Revisions (Plan page)

Save snapshot writes the zoning and network as they are now (unsaved edits included) to <plan>_snapshot_<date-time>.gpkg next to the plan. Pick a snapshot, or any other 02UrbanPlanning GeoPackage with …, and press Compare with the current plan: blocks are matched by overlap and the comparison reports added and removed blocks, changed land uses, changed rule overrides and area changes. The result is added to the map as a styled layer (green = gained, red = lost) with a table of each land use before, after and the change in hectares.

Presets and exchange (Code page)

Start from a preset or move a code between plans; the current code is first backed up as JSON next to the plan.

  • Generic: the catalogue defaults, a balanced code for a first plan anywhere.
  • Low-rise suburban: lower FAR and heights, deeper setbacks, more parking and open space, for detached and semi-detached neighbourhoods.
  • Compact city: higher FAR and densities, build-to lines, less parking, for walkable perimeter blocks and mixed-use streets.

Import… loads a zoning code (JSON) exported from another plan; Export… writes this plan's zoning code and amenity standards as JSON. Regenerate the buildings after a preset or an import to apply it.

Legend preview (Code page)

The land-use legend as the plan sheet shows it, filtered by text (code, name, typology), by colour family, or to Only uses in the plan.

15 · Analysis

Accessibility, projection, exports and plan sheets

Walking accessibility and 2SFCA (Balance page)

Analyse walking access measures, for every amenity standard, the network distance from every residential block to the nearest facility, over the plan's road centrelines (expressways excluded), noded at every crossing. It runs offline in a fraction of a second on a neighbourhood plan.

  • Facilities are the blocks zoned for the amenity, reached from any frontage (their boundary is sampled every 40 m), and the plan points of a matching type, reached from the nearest street.
  • A residential block is reached from its interior point plus the walk to the nearest street, and is served when its network distance to the nearest facility is within the amenity's walk distance.
  • Coverage is the share of the planned population living in served blocks.
  • The provision index is a two-step floating catchment (2SFCA): each facility's zoned land is divided by the population within its walk distance, every block sums the ratios of the facilities that reach it, and the sum is expressed against the standard (m² per person), so 1.0 means the standard is met.

The walking catchments (the reachable street network buffered by 45 m) and the residential blocks, served and not served, are added to the map; Show styles the blocks by one amenity or by how many amenities are within reach.

Population projection (Balance page)

Grow a base-year population to the plan horizon; the horizon population becomes the target population the balance checks.

Models (r = growth rate per year, t = years after the base year) arithmetic  P(t) = P0 · (1 + r · t)
geometric   P(t) = P0 · (1 + r)t
logistic    P(t) = K / (1 + ((K − P0) / P0) · e−r·t)  (K = saturation population)

Enter the model, base year, base population, growth rate (% a year), saturation (logistic only) and horizon, or type past census counts (2000: 8200, 2010: 9100, 2020: 10400) and press Fit to set the rate that matches them and take the last count as the base. Project and set the target writes the result.

Per planning unit and exports (Balance page)

With planning units drawn, a table gives the area, people, jobs and people per hectare of every unit. Export the balance writes every table (land budget, capacity, amenity provision, UN-Habitat targets, per unit, accessibility, projection) as one Excel workbook (Excel…, one sheet per table) or one CSV file (CSV…, the tables one after the other).

Plan sheets (Output page)

A grid of sheets at a true scale (1:500, 1:1,000, 1:2,000, 1:5,000 or 1:10,000) on the chosen paper, with an optional overlap in metres. The grid starts at the top-left corner of the plan and sheets that would show nothing are left out. Create sheet layouts makes one print layout per sheet (named, for example, … — Sheet 1 of 4 (1:1,000, A1)): the map at the exact scale, a legend filtered to what the sheet shows, an index map with the land use, the sheet grid and the current sheet highlighted, the sheet number (Sheet 1/4), north arrow, scale bar and title block. One PDF… exports every sheet as a page of one PDF; PDF per sheet… writes one file per sheet.

Full plan report (Output page)

Write the full report… saves the HTML plan report with the population projection and the last walking-access run added, and its charts.

16 · Processing

Processing provider

The plugin registers a 02UrbanPlanning provider in the Processing Toolbox, so the plan chain runs in models, batch mode and scripts. Every algorithm takes a Plan GeoPackage; left empty, it uses the plan open in the project.

AlgorithmWhat it does
Rebuild streets and blocksRebuilds right-of-way, junction corners, kerbs and blocks from the centrelines; options: clip to the plan boundary, generate kerb lines, number new blocks.
Subdivide blocks into parcelsSubdivides every block by the lot rules of its land use with the bundled ParcelFlux engine; parcels of the processed blocks are replaced.
Generate buildingsPlaces buildings on the parcels under the zoning code.
Plan balanceThe balance as a table, with optional Excel workbook and HTML report; optionally includes walking accessibility.
Accessibility catchmentsWalking catchments and the residential blocks with their walk distance (d_<amenity>, m) and 2SFCA provision index (i_<amenity>, 1 = standard met) for one amenity or every amenity; reports the share of the population reaching every amenity.
17 · Help

FAQ and troubleshooting

“Choose a projected CRS in metres” when I create a plan.

The plan needs a projected CRS in metres (a national grid or a UTM zone). Pick one in the CRS field of the New plan section. The map may stay in any CRS; drawing is transformed to the plan CRS.

My edits are not in the GeoPackage.

Road, boundary, division-line and point edits go into the layer edit buffer so they can be undone. Press Save edits in the panel header (it appears when something is unsaved) or save the layers in QGIS. Generated streets, kerbs, parcels and buildings are written directly.

Blocks do not follow my road edits.

Check Rebuild while editing roads on the Draw page, or press Rebuild now. Roads must actually meet: snap the ends to other roads (the road tool snaps automatically) so a junction exists. A road that stops short leaves a dead end, and the block around it stays whole.

A block lost or kept the wrong land use after a big change.

Each new block inherits from the old block it overlaps most. After a large redesign, check the orange-dashed blocks (no use) and repaint them; Number blocks with Shift renumbers everything if the numbering no longer reads well.

A block has no parcels or buildings.

Its use may have Parcels or Buildings switched off, a lot width of 0 or the typology No buildings (parks, plazas, water). Setbacks larger than the lot leave no buildable area, and footprints under 25 m² are skipped. Generate parcels before buildings.

The balance population differs from the buildings.

Blocks without buildings are counted from their zoning-code capacity. Generate buildings for every block to count only buildings, and press Refresh on the Balance page.

New rules did not change the buildings.

The zoning code is applied when buildings are generated. After saving the code, run Generate buildings again (and Generate parcels when lot rules changed).

3D view does not open.

The 3D map view needs the QGIS 3D module. Buildings carry their 3D extrusion in the layer style; View → 3D Map Views → New 3D Map View shows them in any QGIS with 3D.

18 · Credits

Citation and licence

Name02UrbanPlanning - Urban Planning Studio
Packagezero2urbanplanning
Version0.2.0 (experimental)
QGIS3.28 or newer; QGIS 4 supported
LicenceGPL-3.0-or-later; the bundled parcel engine is ParcelFlux by the same author, under the same licence
DeveloperGeophilo · Yusuf Eminoğlu (ORCID 0009-0005-6000-2934)
Contact[email protected]
Sourcegithub.com/YusufEminoglu/zero2urbanplanning
Hubplugins.qgis.org/plugins/zero2urbanplanning
RevisionNovember 2026

Cite the software

@software{eminoglu_02urbanplanning_2026,
  author  = {Eminoğlu, Yusuf},
  title   = {02UrbanPlanning: Urban Planning Studio for QGIS},
  version = {0.2.0},
  year    = {2026},
  license = {GPL-3.0-or-later},
  url     = {https://geophilo.com/zero2urbanplanning/}
}

References

  • American Planning Association. Land-Based Classification Standards (LBCS), colour coding of land-use families.
  • UN-Habitat (2014). A New Strategy of Sustainable Neighbourhood Planning: Five Principles. Nairobi: UN-Habitat.
  • Fields in Trust (2015). Guidance for Outdoor Sport and Play: Beyond the Six Acre Standard. London: Fields in Trust.

The plugin is a planning-studio tool: its figures make every plan decision traceable and comparable, and the adopted plan and its regulation remain the reference for the statutory values.