Zones, routes & corridors

Three overlays that make big networks manageable - hydraulic and district zones, attribute-built routes, and auto-computed dig-once corridors.

Networks and classes say what things are; these three overlays say how you operate them. All are optional - adopt the ones that match how your organization actually plans.

Where routes and corridors live

Features, routes and corridors are three levels of the same thing, so they share one screen. On Infrastructure the tier switcher sits beside the table/split/map buttons in the toolbar: Features, Routes, Corridors. Switching tier keeps you on the page and swaps what the table lists, which columns it shows, and what the map draws. The search box, the view modes and the density and column controls carry across.

All three tiers share the same filter panel: Network, Classification and Lifecycle filters. On the Features tier they narrow the features. On the Routes and Corridors tiers they list the routes and corridors that contain at least one matching feature - pick "Past service life" and the Routes tier lists every route with at least one segment past its service life. The map draws those same matching segments. Corridors also get two filters of their own, urgency and renewal window, under Renewal.

In every tier, clicking a row opens a detail panel from the right edge - the same panel a feature gives you, carrying that route's or corridor's stats and members, with Open full page at the bottom. In split view features and corridors select instead, and the map beside the table answers the click, since a panel there would cover what you just pointed at. Routes are the exception: they open the panel in split view too, because the map can only answer a route with "these segments, this extent" - its length, its network and its ordered member list with chainage live nowhere else. Double-clicking always goes straight to the full page.

Zones - areas within a network

A zone is a bounded area within one network, of a fixed kind: pressure zone, DMA (district metered area), sewershed, storm catchment, or maintenance district. Each zone belongs to exactly one network - a pressure zone belongs to Water, a sewershed to Sanitary. A zone cannot span networks, so it's a hydraulic or operational unit, not a general-purpose ward boundary.

Features fall inside their network's zones, which turns zones into reporting and dispatch units:

Zones can be imported from a polygon layer rather than drawn one at a time - the usual way a municipality already holds its DMAs or sewersheds.

A zone boundary can come in separate pieces: a catchment that includes an island, or a district split by a rail corridor. Draw one shape in the zone editor, or send several through the API as a GeoJSON MultiPolygon. The editor edits a single shape, so a boundary that already has several parts is shown as-is with a Replace by drawing button rather than being silently reduced to its first part.

Routes - built from your data

A route is an ordered chain of segments within a network: the plow route, the sweeping circuit, the flushing loop. You don't hand-order them - Build routes from attribute takes a network and one of the keys your features' external IDs already carry (a route number from GIS, say) and hydrates the routes in bulk. Each member segment carries linear-referencing measures - where along the route it starts and ends, and its orientation - so route positions survive resegmentation.

Routes support:

The Routes tier's map draws the filtered network the same way the Features tier does, but a click selects the route rather than the segment: the route's members light up and the map fits to them, so "which parts of Main Street are bad" is one click. Selecting from the table does the same thing, and in full-map view - where there is no table - the route picker in the map's top-left corner does. Picking a route on the map only needs a filter set, like any other map view.

Building a route by hand

Build routes from attribute needs a column to build from. When your GIS extract has no clean route or street column - or the one it has covers only part of the network - you can build a route from a selection instead.

In the Features tier, put the table into Select mode or Ctrl-click (Cmd on a Mac) the segments on the map, then press Add to route in the selection bar. Pick an existing route on that network, or name a new one. Routes are linear, so nodes in your selection are left out and the dialog tells you how many; and because a route belongs to exactly one network, a selection spanning two networks is refused rather than half-applied. A new route's code is derived from the name the same way the importer derives it, so a hand-built "Main Street" groups with an imported MAIN_ST on another network.

Adding a segment that is already on the route changes nothing - re-running the same selection is safe. To take a segment back off, open the route's full page and use the × on its row. Staff and above.

Renaming and deleting a route

Edit sits on the route's panel and on its full page. It changes the route's name, its code and its notes; its member segments and their chainage are untouched. The code is the part that does work beyond display: corridor formation groups routes across networks by it, so changing a code moves the route between corridors on the next recompute. Two routes on the same network cannot share a code. Staff and above.

Delete removes the route itself and its membership rows. The member features are not deleted - a route is a grouping, not a container, so the segments stay in their network with their condition, costs and work orders intact. Any corridor the route belonged to loses it and is rebuilt on the next recompute. Managers and above, and there is no undo.

Corridors - the coordination layer

A corridor bundles features across networks that share a physical alignment: Elm Street's pavement, the watermain under it, the sanitary main beside it.

AssetLab computes corridors for you by normalizing street names across networks, and recomputes them on a schedule (there's also a Recompute button for after a big sync). Each corridor carries bundles: renewal windows where multiple networks' replacement years align, with an urgency band and an estimated coordination saving - what you avoid in restoration cost by opening the trench once.

The urgency band comes from how far the bundle's window start is from today, and reserves red for work you are already carrying:

BandWindow startsColour
Past duebefore this yearred
Urgentthis year through 2 years outorange
Soon3-5 yearsyellow
Mid-term6-10 yearslime
Long-termmore than 10 yearsgreen

High member risk widens the Urgent horizon: a bundle whose riskiest feature scores 16 or more out of 25 counts as Urgent up to 4 years out rather than 2. Risk never widens Past due - a window that has passed has passed. The corridor list sorts by this band, so past-due corridors come first.

In the Corridors tier the map draws every active corridor as a line coloured by its urgency band, and needs no filter set to do it. Click a corridor on the map or in the table and the other follows.

Filtering corridors

The Renewal filters narrow the corridor list to the two questions a capital plan asks of it:

The two combine, and both are worth having because they are not the same question. Urgency is relative to today and widens with member risk; a window is a fixed span on the calendar.

The filters narrow the map with the table, so in split view both sides answer the same question - a corridor hidden from the list is hidden from the map. Search is the exception: it narrows the list only, since hiding every street whose name does not match would leave you looking at an empty city. A corridor with no renewal window at all drops out of a window filter rather than riding along with it.

Administrators tune the computation: match tolerance (metres), timing tolerance (years), restoration cost per metre, and the minimum number of networks that makes a bundle worth flagging. Both controls - Settings and Recompute - sit in the page header while the Corridors tier is showing.

Corridors exist to prevent the classic municipal embarrassment - repaving a road two years before digging it up for the main underneath. When a bundle's window approaches, the replacement planner conversation becomes "do the whole corridor in 2028" instead of three uncoordinated projects.

Grouping routes into a corridor yourself

The automatic matcher needs the same street name on routes in at least two networks, with their centres inside the match tolerance. Real data does not always oblige - a watermain named MAIN ST and a road named MAIN STREET W will not pair, and neither will a street that only exists in one network's data.

So you can group routes yourself. In the Routes tier, check the routes you want and press Add to corridor in the selection bar - pick an existing corridor or name a new one. Routes added this way are marked as yours and survive every recompute, so the matcher never undoes your grouping. They appear on the corridor's page like any other member, with a × to take them off again.

Members the matcher found have no ×, deliberately: removing one would last until the next recompute put it straight back. If an automatic member is wrong, fix the street names on the features or adjust the match tolerance in Settings.

Adding or removing a member updates the corridor's length and shape immediately; its renewal bundles refresh on the next scheduled recompute, or right away if you press Recompute.

Turning a selection into a project

In the Routes and Corridors tiers, press Select above the table to put a checkbox on each row - the same button the Features tier uses. What you check gathers into a basket above the table. The basket spans tiers, so you can gather two corridors and the route running between them and still create one project from all of it. Pressing Done puts the checkboxes away without emptying the basket, so you can leave selection mode, read a corridor on the map, and come back to what you had gathered. Managers and above; the basket clears when you clear it or when a project is created from it.

You can gather from the map as well, which is usually faster when what you are scoping is a shape rather than a name: hold Ctrl (Cmd on a Mac) and click. In the Routes tier that adds the route the clicked segment belongs to; in the Corridors tier it adds the corridor you clicked. What you gather stays highlighted on the map and counts in the basket, Ctrl-clicking it again takes it back out, and a plain click goes back to selecting one thing without emptying anything. In full-map view the basket sits above the map.

Create project opens a dialog with a renewal-year window, and the window is the point. A corridor's features do not all wear out together - some renew in 2028 and others in the 2060s - so the project covers only the members that renew inside the window you choose. It is pre-filled with the earliest renewal year in your selection plus your corridor timing tolerance, which is the same span the dig-once bundler clusters over, and you can widen or move it.

Before you create anything the dialog tells you what the window means:

That last point about features already on a project is the reason to keep windows tight. A feature committed to a live project is skipped by every later renewal project, which is what stops the same pipe being budgeted twice. Commit a whole corridor to one project and you also take its 2060s features off the table for the next thirty years of planning, so the dialog warns you when a window runs longer than ten years.

Projects created this way arrive in planning status, typed as capital, with every included feature linked on the project's Infrastructure tab. They start on 1 January of the window's first year - or today, when that year has already passed, since a project you create now should not open in a closed budget year. The need year is written into the project description when that happens, so nothing is lost. From there they behave like any other project.

Corridor renewal bundles keep their own path: the Create project button on a corridor's page creates a project from one bundle, already scoped to that bundle's window. Use the bundle when you are acting on what the analysis found, and a selection when you are acting on what you picked.

Choosing your overlays

If you…Use
Manage pressure zones, DMAs, or catchmentsZones
Run programmed circuits (plowing, sweeping, flushing)Routes
Plan street reconstructionsCorridors
All of the aboveAll three - they compose