Corridors
A road body — an assembly swept along an alignment and profile, sampled into cross-sections, then turned into a 3D solid, surfaces and feature lines.
How a corridor is built
A corridor combines a horizontal alignment (path), a vertical profile (elevation), and an assembly (cross-section). At each sampled station it:
- finds the centreline point, bearing and elevation,
- bakes the assembly there — applying superelevation and widening for that station,
- places each section point at
centreline + offset × right-perpendicular, lifted to the profile elevation.
Stitching consecutive stations together produces the 3D ribbon, the corridor surface and the feature lines.
Plan display
Every corridor draws its footprint in the Plan tab: a filled pavement strip between the section's outer pavement edges, plus — when zoomed in — the feature lines of every assembly point code, coloured by family (lane edges blue-grey, kerbs yellow, daylight green, sidewalks warm grey, medians orange). Regions bound to a project assembly resolve exactly as in 3D, so what the assembly defines is what plan shows. Corridors are hoverable/selectable in plan like alignments.
Regions
A corridor is divided into regions along its length. Each region binds its own assembly — and optionally its own horizontal/vertical baseline — so the section can change along the road (a normal section, then a bridge approach, then an intersection). Where two regions meet, a transition (blend) length tapers their shared edges (matched by point name) smoothly instead of stepping. Each of the two regions is worked out where it really is — on its own baseline, with its own targets, banking and transitions — and the section is placed between the two, so a region on a different baseline or with different width targets still meets its neighbour without a step at the boundary. The 3D view, the corridor surface, the sections and the exports all blend the same way. A point only one of the two regions has switches at the boundary. Set the blend with the Transition (m) field; 0 = a hard switch.
Corridor Properties dialog
Right-click a corridor in the Object Browser → Properties…. Five tabs:
Information
Read-only: name, region count, baseline length.
Parameters
Multi-baseline (Civil-3D Baseline 1..N). One corridor can carry several reference alignments — the primary road, a crossing road, and the curb returns of an intersection all in one object. Add Baseline… picks a reference alignment (+ an assembly) and appends it; Remove Baseline drops the last extra (the primary always stays). The Baseline drop-down chooses which baseline the region table below edits — each baseline has its own regions, assemblies, frequencies and width targets. All baselines rebuild + render as one corridor, and the whole set saves and undoes together.
A baseline → region tree. The top row has Add Region / Remove Region, the Transition (m) field, a Target surface drop-down (the ground the daylight subassemblies tie to), and the corridor's width / elevation reference: Target alignment (the alignment a section measures its offset to) and Target profile (the profile it ties its elevation to — e.g. a curb return reaching the primary centreline and its design profile). Each region row (“RG - n”) has:
| Column | What it sets |
|---|---|
| Horizontal | Baseline alignment for the region (<primary> = the corridor's own). |
| Vertical | Profile for the region (<primary> = the corridor's own). |
| Assembly | The project assembly to bake (<region default> = the region's embedded definition). |
| Start Station | Read-only (previous region's end, or the alignment start). |
| End Station | Editable — where this region ends: a station, or a snap token so the boundary follows an object the way Civil 3D users snap it: @Name.end / @Name.start put the boundary at the baseline station nearest that alignment's end/start point (a curb return's tangent point — the primary road's Part Section boundaries, the secondary's region end), @Name at the station where the baseline crosses that alignment, and @Name.tangent at whichever end of that alignment lies on this baseline's road (the curb-return tangent point, whatever way the arc was drawn). Name is the alignment's exact name; an unresolvable token is refused, never silently 0. The same tokens work in Modules › Road › Corridor Regions ("ends"), where the "assemblies" list also accepts library labels such as Primary Road Lanes Only (added to the project on the spot) and an empty slot means "nothing bakes here". |
| Freq T / C / S | Sampling interval (m) for Tangents, Curves and Spirals separately; 0 = auto. |
| Target | The region's target surface (for daylighting). |
| Manual Stations | Comma-separated extra section stations (e.g. 120, 145.5). |
Codes
A read-only listing of every point, link and shape code the corridor produces, each with its style colour swatch and a count. Use it to see which codes the Surfaces tab can build from.
Surfaces
A checkable list of codes. Tick the codes that should contribute data to the corridor surface (none ticked = every feature line). Press Apply & Build Corridor Surface to create/refresh the TIN. The TIN takes its vertices from the feature lines themselves, so every stringline is enforced as a breakline — including on a corridor whose regions start off the sampling grid. See Surfaces & volumes.
Boundaries
Use corridor extents as outer boundary clips the corridor surface to the leftmost and rightmost section edges along the baseline, so the triangulation doesn't fan past the road edges.
Trim the daylight surface under this corridor (a checkbox in
Create Corridor, on by default) is the other direction:
Civil 3D's add boundary from corridor on the ground. The
existing-ground surface gets a hide boundary from the corridor's
daylight-to-daylight footprint, so the ground no longer pokes through the
pavement in 3D or in the sections. The boundary follows the
corridor: move the baseline, edit its profile, re-bind a region or
change a target and the hole is recomputed; delete the corridor and the ground
comes back. The trim is part of the edit that caused it, so one undo unwinds the
hole with the road (or brings the corridor and its hole back together after a
delete), and it reaches worksharing peers like any other edit. It is stored with the surface (Surface Properties › Information counts the corridor trims; it is derived data, not a Definition operation) and reopens live. To add or remove it later
use Modules › Road › Trim Surface by Corridor
(road.surface.trim, text args surface and
corridor uuids, on = 1 to hide / 0 to restore). Drawn hide
boundaries and corridor trims coexist.
Pipe Targets
Subassemblies that dig to a pipe — Trench Pipe 2 and Trench Pipe 3 in the stock library — declare a pipe target instead of a fixed trench depth. This tab lists every pipe target the corridor's assemblies declare and binds each one to a real network from the Utilities module.
Pick the Network, then either a single Pipe or <whole network>. With the whole network bound, each station digs to whichever pipe crosses the section closest to the centreline. The trench floor follows the pipe's real invert, so it rises and falls with the pipe rather than with the road. Where no pipe crosses — before the run starts, after it ends, or with nothing bound — the subassembly falls back to its no-pipe branch and digs nothing.
The tab is empty when no subassembly in the corridor targets a pipe.
Targets
Subassemblies also declare offset and elevation targets — a widening lane's Width alignment, a sidewalk's three edge alignments, a lot-grade's edge profile. The Targets tab lists every one the corridor's assemblies declare, with its kind, and binds each by name: an Offset target follows the picked alignment's horizontal, an Elevation target follows the picked alignment's profile (alignments without a profile are marked), and a Surface target follows the picked surface — so a daylight on each side, or a rock-cut's second surface, each get their own TIN instead of only the first declared one taking the corridor's ground. Elevation targets are read where the section's lateral ray meets the target alignment (the same rule as width targets), so an edge profile bound on a curb-return baseline gives the level at the corner, not at the baseline's own station number. Every path that bakes a corridor — Plan, 3D, Sections, the corridor surface, glTF/IFC/exchange export, the audit and the API — resolves these bindings through one function, so an export cannot differ from the viewport.
Any number of targets can be bound this way — the older Target alignment / profile pair on the Parameters tab still works and serves as the fallback for names left <none>. An unbound target uses the subassembly's own fallback (usually its width/slope parameter).
The Superelevation pivot picker on the same tab chooses
what the banking rotates about: the centreline (default), or the
crown / edge point that lanes supporting AOR register
(their SupportAOR parameter) — the picked point holds
its design elevation while the rest of the section rotates.
Parameter transitions
The Transitions tab of Corridor Properties overrides a
named assembly parameter across a station band — for example
narrowing LaneWidth from 3.50 to 3.00 m between two
stations — without authoring a target alignment or a custom
subassembly. The value interpolates linearly across the band (tick
Smooth for an eased ramp); a record acts only inside
its band, so add a second record with equal values to hold the new
width beyond it. Later rows win where records overlap. Anything the
assembly derives from the parameter (variables, expressions) follows
the transitioned value automatically, in both classic and flowchart
assemblies. Tables can be exchanged as CSV
(param,station_from,station_to,value_from,value_to,smooth).
Sampling frequency
Cross-sections are taken at a frequency (interval). Curves and spirals need closer sampling than tangents to stay smooth, so each gets its own value on the Parameters tab. Add manual stations at specific points (a culvert, a driveway) to force a section exactly there. A frequency of 0 falls back to the region default.
Outputs
- 3D ribbon in the 3D tab — link strips, shape solids, point feature lines, coloured by code.
- Corridor surface for display and volumes.
- Feature lines extractable back into alignments (Deriving alignments).
- Sections at any station (Sections).
Rail corridors & cant
A corridor whose baseline is a Rail-category alignment banks its
rails automatically: the applied cant is the equilibrium cant
G·V²/(127·R) capped at the design standard’s maximum,
signed by curve direction and ramping naturally through spirals. The section’s
Cant.* expression identifiers (used by imported Civil 3D rail
subassemblies and the built-in rail parts) then track the alignment station by
station — the outer rail rises through every curve in the 3D view with no manual
setup. The standard and design speed come from the project settings
(Design standards).