Manual / Design: dressing it / Road lanes & markingsiCity 2 · Windows

Road lanes & markings

A road in iCity is a stack of typed lanes, and the Design module lets you rebuild that stack road by road. This page covers the six lane types, the Road-or-Lane width reference that decides whether your numbers resize the lanes or the road, and the marking lines — border, inner and drawn by hand with the pen.

Where the lane panels are

Switch the header toggle to Design and pick Roads on the rail. The editor stacks the panels for that mode top to bottom: the selection card, then Road Lanes, then Markings, then Materials, Props and Surface details. Both lane panels start closed — click the header to open one.

lanes-and-markings-roads-panels.png

The iCity Editor in DESIGN with the rail on Roads and nothing selected. Show the whole panel column: the selection card at the top, then the collapsed headers Road Lanes (with the eye button on its right), Markings, Materials, Props, Surface details.

/docs-shots/blender/
The Roads mode panel stack in Design, with Road Lanes and Markings closed.

While you are in Design on Roads, the addon draws a coloured strip for every lane over each road in the viewport. That preview is the cross-section you are editing, not geometry — it is redrawn the moment you change a type, a width or a direction. The eye on the Road Lanes header hides it when the strips cover the road you are trying to look at.

lanes-and-markings-lane-preview.png

3D viewport in DESIGN / Roads, camera low over a straight multi-lane road, with the lane preview overlay visible: the coloured strips running along the carriageway. Include a second road in frame so the strips read as per-road.

/docs-shots/blender/
The lane preview drawn over a road: tan forward driving lanes, blue-grey backward ones, dark green shoulders.

The six lane types

A lane has a type, a width and a direction. The type is what the lane is; the identifiers are the OpenDRIVE names, which is why the preview colours look like a road-engineering legend rather than a paint chart.

Lane typeWhat it is for
DrivingA traffic lane. Direction is per lane — forward (+) or backward (−) — and the preview colours the two differently: tan forward, blue-grey backward.
ParkingA parking strip beside the carriageway. Purple in the preview; it dresses as plain asphalt, because no convention colours the surface of a parking lane.
BikeA cycle lane. Red in the preview (OpenDRIVE calls it biking); it dresses as asphalt pigmented green.
BusA bus lane. Orange in the preview (OpenDRIVE calls it restricted); it dresses as asphalt pigmented brick red.
ShoulderThe strip at the edge of the carriageway. Its width is structural — it keeps the width you set and never absorbs a redistribute. Dark green in the preview, dressed as slightly darker asphalt.
Middle islandA raised centre strip. Structural width like a shoulder; grass green in the preview, dressed in a light concrete tone.

The type also decides the surface at dress time. The road mesh carries one material per lane type, and the linker gives each of them its own copy of the asphalt material, so a bus lane can be tinted or swapped later without touching the carriageway beside it. There is no material picker on a lane row — the type is the picker.

Note

The preview colours are a legend, not the surface. Bus is orange in the viewport and brick red once dressed; bike is red in the viewport and green once dressed. The dressed colours are pigmented asphalt values taken from the US federal coloured-pavement tables.

You can change the legend. Blender's Preferences → Add-ons → iCity 2 has a box called Lane type colours (OpenDRIVE) with seven swatches — Driving +, Driving −, Shoulder, Parking, Bike, Bus, Middle island. That box is the only place lane colour is decided; there is no per-lane override.

lanes-and-markings-preference-colours.png

Blender Preferences → Add-ons → iCity 2, scrolled to the box labelled 'Lane type colours (OpenDRIVE)' showing all seven colour fields: Driving +, Driving −, Shoulder, Parking, Bike, Bus, Middle island.

/docs-shots/blender/
The seven lane-type swatches in the addon preferences.

Editing the cross-section

Open Road Lanes and you get one row per lane, kerb to kerb, in order. Each row is a drag grip (≡), the type dropdown, the width slider in metres, a flip button (⇄) and a remove button (×). Dragging the grip up or down reorders the lane; the move is applied when you release. + Add lane appends a new lane 3.5 m wide.

lanes-and-markings-lane-row.png

The Road Lanes panel expanded with the default lanes listed: three Shoulder rows and four Driving rows. Show one row clearly — the ≡ grip, the type dropdown, the width slider reading a value in metres, the ⇄ flip and the ×. Include the Road / Lane toggle and the presets dropdown with the + in the card's title row.

/docs-shots/blender/
The Road Lanes card open on the default seven-lane cross-section.

The cross-section every un-configured road starts from is seven lanes, 16 m wide in total:

text
Shoulder  0.30 m
Driving   3.80 m   forward (+)
Driving   3.80 m   forward (+)
Shoulder  0.20 m
Driving   3.80 m   backward (−)
Driving   3.80 m   backward (−)
Shoulder  0.30 m

What you edit depends on what is selected. Select one or more road segments and the card edits those roads: the road you clicked last is the one being edited, and its cross-section is copied to the rest of the selection as an independent copy, so editing one of them again later never moves the others. Deselect everything and the card edits the global cross-section that every road with no configuration of its own falls back to.

Note

Some selections cannot be scoped to a road segment, and the card refuses rather than falling through to the global lanes. Junction nodes and roads imported from OpenStreetMap are both refused. Nothing appears on screen to say so — the message goes to Blender's system console: “lane edit ignored: the selection is not a road segment”. Click empty space, then one road segment — or deselect everything to edit the global lanes.

The width slider runs from 0.05 m to 16 m. Before the city has been dressed, lane widths drive the viewport preview only; the dress is what applies them to geometry.

Road or Lane: the width reference

The pair of buttons in the card's title row, Road and Lane, decides what a width means. It is one setting for the whole city, and it changes what happens when you drag a slider.

ReferenceWhat dragging a lane width does
Road (the default)The road keeps its width. The other driving lanes shrink or grow proportionally into what is left, and their sliders update as you drag. Shoulders and middle islands are excluded — their widths are structural.
LaneThe widths are absolute. The road resizes to the sum of its lanes; the other lanes keep their widths and only shift to cover the new extent.
lanes-and-markings-width-reference.png

Close crop of the Road Lanes card title row showing the two-segment Road / Lane toggle with Road active, and the presets dropdown plus + button on the right of the same row.

/docs-shots/blender/
The width reference toggle on the Road Lanes title row.

Under Road, redistribution has a floor: the lanes absorbing the change are never squeezed below 0.5 m, and the lane you are dragging is capped so that stays true.

Under Lane, the resize is a real edit to the city, not a preview. About 0.4 seconds after the drag settles, the new width is sent to the engine as one scoped edit covering the road segments you had selected. The engine must be running, and something must be selected: on an empty selection nothing is sent and Blender's system console says “road width (lane ref): no road segment selected — preview only. Select the road(s) to resize.”

Warning

Once any part of the city has been dressed, the width reference is locked to Road. The buttons stop responding and their tooltip reads “Locked to Road after dressing — the road width no longer changes; lane edits redistribute within it”. If you need different road widths, set them before the dress, or change the road width in Draft.

Presets, and what travels to the dress

The dropdown beside the width reference holds lane presets. Press the + next to it to save the current structure as Preset N; saving also selects it. Picking a preset applies it to the selected roads, or to the whole city when nothing is selected. Picking Default restores the built-in cross-section.

Warning

Applying a preset to selected roads discards those roads' own lane edits. The preset becomes their cross-section outright.

Lane work survives a Blender restart. The global cross-section, the per-road configurations, the preset library, the installed preset name and the width reference are all written into the .blend as design state and restored with it.

They also travel. When the city goes up to be dressed, the lane block rides in city.json beside the meshes, carrying the per-road configurations, the road-to-preset assignments, the presets themselves, the global preset name and the width reference. The width reference is load-bearing there: it is what tells the cloud whether your numbers are ratios inside the road width or absolute metres.

Marking settings are a different story. Border, inner and per-line marking values are stored in the design state and saved with the file, but no consumer for them was found in this build — the drawn line objects are what you see in the viewport today.

Border and inner lines

Open Markings and you get a presets row and two groups, both closed by default. Border lines are the street bed's outer bound; Inner lines are the separators between lanes. The two groups carry the same controls.

lanes-and-markings-border-inner.png

The Markings panel open in DESIGN / Roads: the Presets row with its dropdown and +, the collapsed 'Inner lines' header, and 'Border lines' expanded showing Type, Colour and the two rows of paired sliders (Width/Length, Opacity/Spacing), plus the '+ Add custom marking line' button below.

/docs-shots/blender/
The Markings panel with Border lines expanded.

Type offers Auto, Dashed, Solid and None. Colour opens Blender's colour picker. The four sliders below are:

SettingDefaultDescription
Width0.12 mLine width. Range 0.02 to 0.6 m.
Length2.0 mDash length. Range 0.2 to 8.0 m.
Opacity1.0Paint opacity, 0 to 1.
Spacing3.0 mGap between dashes. Range 0.2 to 10.0 m.

The + beside the markings presets dropdown saves the current border and inner settings as Preset N. It only saves what you have changed: with everything still at its default the snapshot would be empty, so nothing is saved and Blender's system console says “marking preset not saved: no marking settings have been changed yet”.

Drawing a line by hand

Below the two groups is + Add custom marking line. Each line you add is a row with its own settings and its own pen, and it becomes a real object in the scene when you draw it.

  1. Press + Add custom marking line. A Custom marking lines panel appears above the button, closed; click its header to open it. The new row is inside, reading “Marking line <n> (not drawn yet)” with its settings block already expanded. The number comes from a counter shared with lanes, props and scatter systems, so the first line you add is rarely line 1.
  2. Set the line up before you draw it: Type, a Material from the library or a Colour, and the four sliders. Width applies to the next draw, so set it now rather than after.
  3. Press the pen (✎) on the row. The button stays depressed while the tool is armed.
  4. Click in the viewport to place points. Each point is projected onto the road under the cursor and snapped to the nearest lane border within 1.5 m, so a line drawn roughly along a lane edge lands on it. Points placed away from any road are left where you put them.
    lanes-and-markings-pen-drawing.png

    3D viewport during an armed Draw Line stroke: three or four placed points along a lane border with the white preview ribbon between them, the cursor point ahead, and Blender's status bar reading 'Draw Line: 4 Points' with Enter Confirm / Esc Cancel / LMB Add Point.

    /docs-shots/blender/
    A marking line mid-stroke, with the status bar showing the point count.
  5. Press Enter to confirm. Esc or a right-click cancels, and a stroke of fewer than two points is dropped.

On confirm the ribbon is built, lifted 1 mm above the road so it cannot flicker against the asphalt, named Marking_Line_<n>, moved into a collection called iCity2 Markings and given its own material in the row's colour. It is a normal, selectable Blender object from then on, and changing the row's colour repaints it immediately. The pen disarms itself.

Note

The drawn objects are saved in the .blend like any other object, but the rows in the Markings card are not part of the design state — after reopening the file the lines are still in the scene and the card is empty. Your city itself is not in the .blend either; it lives in the engine process and is saved by the header S button. See How iCity fits into Blender.

Two things on this panel are worth knowing before you look for them:

  • The same mechanism has a sidewalk half — Sidewalk paths, for tactile, bike and walkway strips, with no border or inner lines because a sidewalk has no carriageway. It appears under the Roads sub-mode for sidewalks, and that sub-mode row is not drawn in this build, so the panel is not reachable from the interface today.
  • + Ramp, + Splitter, + Parking and + Node marking are placeholders whose tooltips end in “not wired yet” — and they sit in the same unreachable sub-mode panels, so you will not meet them in this build either.

When the cross-section is how you want it, re-dress the city so the lanes reach the geometry — see Re-dressing after a change. The surfaces those lanes are dressed in come from the theme: Materials.

On this page
Where the lane panels areThe six lane typesEditing the cross-sectionRoad or Lane: the width referencePresets, and what travels to the dressBorder and inner linesDrawing a line by hand
Need help?

The Discord is fastest for anything scene-specific. Email suits licensing, billing and anything needing a file attached.

Contact support →