Skip to content

Roadway Network

lukegordon333 edited this page Apr 14, 2026 · 32 revisions

This was copied from SOABM - it was updated for SimOR, but there will be details that are more SOABM than SimOR

Background to the Auto Network for the ABM

Editing networks requires an understanding of the model inputs. Model users should familiarize themselves with the various elements that make up the network before editing. One should also be familiar with network editing in VISUM before attempting to modify the network.

Typically network editing involves adding, deleting, or modifying nodes and links. Whenever one adds, deletes, or modifies links, there is a need to make sure that all of the required values in the Link Attributes table are populated.

Unlike a traditional trip-based model, which has one zone system, the ABM has three zone systems. Since VISUM’s network data model only supports one zone system for skimming and assignment, the VISUM Zones need to be changed on-the-fly from TAZs to MAZs. This means that each version file created during the model run may have a different set of zones and connectors depending on the purpose. Thus, it is important to always start with the input master version file when making editing since it contains all three zone systems. The VISUM Zones are TAZs and the VISUM PedestrianZones POI are MAZs.

The ABM model network is based off an all-streets (all-paths) network that includes local and in some locations even private roads. Therefore, given the overall scale of the model network, all manual network coding is only performed for roadways and intersections containing at least a collector classification street or greater (arterial, ramp, interstate).

Data Elements Stored in Visum

The primary input for a scenario is the VISUM master version file. This file contains the multiple zone systems, all zonal attributes, the highway network, the transit network, and multimodal network attributes (and paths). Note that all dollar inputs are in $2025. The version file uses the following VISUM network objects:

  1. Nodes – network nodes, with the attributes required in Node Attributes.
  2. Links – network links, with the attributes required in Link Attributes.
  3. Turns – network turns, with no required attributes except for setting TSysSet=empty for prohibited turns.
  4. Zones – TAZS, with the attributes required in TAZ (ZONE) Attributes (Currently no attributes are required at the TAZ level). TAZs in ABM are only used for auto/Transit skims and assignment and therefore do not contain land use data. External TAZs are numbered 1-99 and internal TAZs are 100+. Note that MAZ's are smaller than TAZs, but are stored in Main Zones instead of zones because MAZs don't require connectors, and TAZs do.
  5. Connectors – TAZ connectors, with TSySet and t0 (initial travel time) set. Only TAZ (auto/transit) connectors are coded in the input file. The VISUM Python procedures code the MAZ connectors. Make sure to code nodes along walk and bike paths so MAZ connectors can be built.
  6. PedestrianZones POI Object – MAZs, with the attributes required to run the ABM are stored in POI Attributes (still working on finalizing MAZ list). The ABM generates all trips to and from MAZs, which requires all land use data to be coded at the MAZ level as well, additional information can be found on the Editing Land Use page.
  7. Stop Points – Physical transit stops, with no required attributes. (note all transit pieces need to be reviewed and commented on by Metro).
  8. Stop Areas – TAPs, with the attribute required in TAP (STOPAREA) Attributes (to be defined). The Stop area ID is used as the TAP ID in OR-RAMP. There can be multiple stop points per stop area in VISUM, but this is currently not the case since the network was imported from Google transit.
  9. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM, but this is currently not the case since the network was imported from Google transit.
  10. Lines – Transit lines, with no required attributes. The line name is currently set to the Google transit operator and route number. The available Transport Systems for transit lines are Bus, Streetcar, Commuter Rail, Express Bus, and Light Rail.
  11. Line Routes – Transit lines, with a headway attribute for each time period Lineroute Attributes (to be defined). The headway needs to be coded in seconds. If the line is not available in a time period, then set the headway to 0. Line routes code the sequence of links and stop points for each line. See Transit Network Coding (needs to be defined) for more details on transit network coding.
  12. Time Profiles – Transit line link run times and stop dwell times. The transit line run and dwell times are updated after highway assignment using the VISUM procedure – Set Run and Dwell Times. Even though Google transit schedules were loaded into the version file in order to calculate headways, they are not used in the model.
  13. Network – Each version file has a master Network object that all network objects inherit from. The ABM network has a link capacity time-of-day factor for calculating time period specific link capacities from the input link attribute one-hour capacity.
  14. Transport Systems - Defines the mode options for users in the model system, at the vehicle level. Different from "Modes"
  15. Modes - Defines the mode options for users in the model system, at the trip level.
  16. Demand Segments - Defines the breakdown of trips by time of day and mode.

Time-of-Day Periods and Link Capacity Factors

Planned Values for the Metro Region

Time-of-Day Description Hourly Capacity Factor VISUM Network Object
EA 0:00-4:59 5 Network\TOD_FACTOR_EA
AM 5:00-8:59 3 Network\TOD_FACTOR_AM
MD 9:00-14:59 8 Network\TOD_FACTOR_MD
PM 15:00-18:59 3 Network\TOD_FACTOR_PM
EV 19:00-23:59 5 Network\TOD_FACTOR_EV

Mandatory User Defined Attributes

The following attributes must be defined by the user when adding/editing network objects for the roadway network.

Network Level Attributes

These network attributes are given default values in the Network Attributes table, so they can be left alone and will never be updated by model code.

Field Description
Walk_Speed Defines the walk speed for wlk and w transport systems over network connectors - Used in transit skimming
Connector_Vehicle_Speed Defines the vehicle speed over network connectors - Used in transit skimming
Intrazonal_Vehicle_Speed Defines the vehicle speed for intrazonal trips - Used to set INTRTIME on the zones and then used for matrix diagonals

Link Attributes

These attributes must be considered when adding/editing links.

Field Description
TSysSet Allowed transport systems (i.e. modes, transit systems descriptions are found here):
s = Single-occupant non-toll vehicle
sr2 = High-occupant 2 person non-toll vehicle
sr3 = High-occupant 3+ person non-toll vehicle
mt = Medium Trucks
ht = Heavy Trucks
k = Bike*
wlk = Walk*
*It should be noted that TSysySet is used to create bike and pedestrian networks. Bike and walking is only allowed where TSysSet is coded for those modes. See the Non-Motorized page for additional information.
TypeNo (Metro) Facility type (Metro)
1=Transit
2=Walk to transit (asserted length)
3=Walk to transit (actual length)
10=Freeway
19=Freeway HOV Lane
20=Highway
30=Arterial
40=Intersection expansion link
51=Intersection approach (uses Metro's custom Volume-Delay Function)
61=CBD Grid
70=Off-Ramp
71=Metered Ramp
79=On-Ramp
TypeNo (SKATS) Facility type (SKATS)
11=Ramps
12= ramps (directional)
20= Principal (Interstate)
21= Principal (State Highway)
22= Principal (Parkway)
31= Major Arterial (Parkway)
32= Major Arterial
33= Rural Arterial
41= Minor Arterial
51= Collector - Urban
52= Collector - Rural Major
53= Collector - Rural Minor
61= Local - Urban
62= Local - Rural
68= Urban street
69= Rural street
71= Driveway
99= No Cars
[TOD]_[Mode]_TOLL Toll by period and mode, can be left at zero
FWY_CAP_1HR (Metro) 1-hour freeway capacity (required on freeway links)
APP_CAP_1HR (Metro) 1-hour approach link capacity (required on TypeNO = 51 links)
MB_CAP_1HR (Metro) 1-hour midblock capacity (required on non-freeway, non-TypeNO = 51 links)
[TOD]_METER (Metro) Period ramp meter link capacity, can be left at zero
HOURLY_ROADWAY_CAP (SKATS) 1-hour roadway capacity

Node Attributes

Field Description
No Link number, managed by VISUM.
Xcoord X coordinate of the node, managed by VISUM
Ycoord Y coordinate of the node, managed by Visum
ControlType The type of Control at the Intersection, available options:
unknown - this is the default setting and is used for all local intersections and shaping nodes. The large majority of nodes are left as unknown.
Uncontrolled - currently uncontrolled is used in a similar way as unknown, but ideally the network would be cleaned to a point where the Uncontrolled label was only used for intersection known to have no control (so the default should remain unknown, unless the intersection is specifically uncontrolled.
Two-way stop - the user needs to ensure that the major flow is properly set (see VDF Network Coding for more details).
Two-way yield - currently very few exist on the network. Only use in known locations of a yield sign. As with Two-way stops, the major flow needs to be reviewed and properly set.
Signalized - all signalized intersections need to be coded properly, with the major flow reviewed and a number of other details as specified in VDF Network Coding.
All-way stop - All-way stops should be captured, no other additional detail is needed at all-way stops. Currently coded for collectors and above.
Roundabout - currently not used, but it's hoped that roundabouts will get a unique congestion treatment with further development. So the intersections with roundabout should be faithfully coded. Roundabouts drawn with more than one node should be aggregated using a main node.
Note that all controlled intersections drawn with more than one node should be aggregated using a main node (see VDF Network Coding for more details).

Transport Systems

Code Name
a brt
b bus
c car
e streetcar
h hov
ht heavy truck
i kiss-and-ride access
k bike
l light rail
mt medium truck
r commuter rail
s sov
sr2 shared ride 2
sr3 shared ride 3+
t truck
w walk to transit
wlk walk PrT (walk as transportation)

Modes

Code Name
c car
h hov
ht heavy truck
k bike
KnR Kiss-and-ride
mt medium truck
PnR Park-and-ride
PuT Public transport
s sov
sr2 shared ride 2
sr3 shared ride 3+
t truck
wlk walk PrT (walk as transportation)

Demand Segments

Code Name
amhpe AM heavy truck
ammpe AM medium truck
amPuT AM public transport
amsov AM SOV
amsr2 AM shared ride 2
amsr3 AM shared ride 3+
Repeat the demand segments for all time periods (ea, md, pm, ev) for a total of 30

Automatically Set User Defined Attributes

The following attributes are automatically set by the model when running.

Link Attributes

Field Description
No Link number, managed by VISUM.
FromNodeNo From node
ToNodeNo To node
TypeNo Link type. VISUM uses TypeNo to index into the VDF lookup grid in the procedures settings. During the VDF data prep step, the TypeNo is set equal to the PlanNo (facility type) since there is a separate VDF configuration by facility type. Therefore, this field is updated by the ABM process and should not be set by the user. Each VDF configuration makes use of the one VDF DLL developed for this ABM.
Length Link length in miles
V0PrT Free flow speed
CapPrT Visum's internal capacity field (across all lanes). There are a number of fairly complex internal steps and aspects that go into the ABM's VDF. Therefore Capacity is not a simple user input like in most static assignment models; instead capacity is derived from a number of inputs. This resulting capacity is stored in CapPrT, which allows for the internally calculated VolCapRatio fields in Visum to be populated properly. Therefore, capacity cannot be coded by the user as it is calculated and updated during the model run.
HOURLY_ROADWAY_CAP (Metro) 1-hour roadway capacity
Toll_PrTSys(DSEG) Toll for each demand segment in $2025 dollars
NumLanes Number of lanes.
AUX_LANES Number of auxiliary lanes on freeways. Auxiliary lanes are used in the link capacity calculation.
MEDIAN Type of median, to be coded by user. Median is used in the link capacity calculation.
0 = No-Median/Outside the TAZ boundaries
1 = Raised Median
2 = Striped Median
3 = Two-way left turn lane (TWLTL)
Note that all roadways with a physically coded median (i.e separate nodes and one-way vehicle links for each direction) are coded as MEDIAN = 0.
AddVal1,2,3 Used for internal calculations. Does not need to be coded by user. Users should be aware that these fields are dynamically updated so any data saved in these fields will be lost.
EA_TTC Early AM Congested Travel Time
AM_TTC AM Congested Travel Time
MD_TTC Midday Congested Travel Time
PM_TTC PM Congested Travel Time
EV_TTC Evening Congested Travel Time

Link Attributes Specific to Bike Assignment

Bike Specific Link Attributes

Field Description
BIKEFAC Bike Facility Present;
  • 0 = none,
  • 1 = a conventional, striped bike lane,
  • 2 = a protected bike lane or street-level cycle track. Requires at least some measure of physical separation from adjacent motor vehicle travel lanes for most of its length (e.g. curbs or other vertical elements such as bollards, posts, parked cars, or planters).
  • 3 = bicycle boulevard/neighborhood greenway. (Depending on local context, it might not be correct to include bike routes that have only signage and/or “sharrows”).
  • 4 = off-roadway, paved, regionally significant multi-use path. DO NOT include localized, discontinuous, or unpaved paths (e.g. park paths) in this designation.
  • 5 = remainder of informal connectors that are off-roadway (separated), but not an official multi-use path
BLTS Either BLTS 1-4 directly, or a proxy, described further below. Generally;
  • BIKEFAC 4 and 5 are BLTS 1;
  • BIKEFAC 3 would be a BLTS 1 assuming the speed is 25mph or less. If the speed is greater than 25mph, it likely shouldn't be BIKEFAC == 3;
  • BIKEFAC 2 would be BLTS 1 at 30mph or below, BLTS 2 at 35mph and BLTS 3 at greater then 35mph;
  • BIKEFAC 1 would be dependent on lane size, but in general BLTS 1 at 30mph or below, BLTS 3 at 35mph and BLTS 4 at greater then 35mph.
IF BIKEFAC == 0, speed and volume (where Functional Class can be a proxy for volume) come into play.
  • Below 25mph and residential streets would be BLTS = 1.
  • Very low volumes could be BLTS == 2 as high as 30 mph, but generally BLTS == 2 would be collectors at 25 mph, 30 mph would count on a collector if volumes are below 3000 ADT (likely minor collector or below).
  • BLTS == 3 can go as high as 45 mph but only if the volumes are extremely low. In general the break between BLTS 3 and 4 is BLTS below 35 mph and less than 8000 ADT (major collector or below).
  • BLTS == 4 above 35 mph or 8000 ADT (Arterial and above) (BLTS 3 above 35mph only if the volumes are less than 1500 - residential or rural).
SLOPE Calculated average slope over the link segment. Suggest calculating automatically from local DEM data. Note if slope is overly complicated, note that the user can consider this input in four bins; less than 2%, which could be the default (0 slope), 2-4% (3%), 4-6% (5%), greater than 6% - could code as 8%. Note that only upslope needs to be coded, negative slope should have a negative or kept as zero.

Bicycle Level of Traffic Stress (BLTS) 1-4 definitions

The table below is from Chapter 14 of ODOT's Analysis Procedures Manual. Please see Chapter 14 for a full contextual discussion on BLTS.

BLTS Description
LTS 1 Represents little traffic stress and requires less attention, so is suitable for all cyclists. This includes children that are trained to safely cross intersections (around 10 yrs. old/5th grade) alone and supervising riding parents of younger children. Generally, the age of 10 is the earliest age that children can adequately understand traffic and make safe decisions which is also the reason that many youth bike safety programs target this age level. Traffic speeds are low and there is no more than one lane in each direction. Intersections are easily crossed by children and adults. Typical locations include residential local streets and separated bike paths/cycle tracks.
LTS 2 Represents little traffic stress but requires more attention than young children would be expected to deal with, so is suitable for teen and adult cyclists with adequate bike handling skills. Traffic speeds are slightly higher, but speed differentials are still low, and roadways can be up to three lanes wide for both directions. Intersections are not difficult to cross for most teenagers and adults. Typical locations include collector-level streets with bike lanes or a central business district.
LTS 3 Represents moderate stress and is suitable for most observant adult cyclists. Traffic speeds are moderate but can be on roadways up to five lanes wide in both directions. Intersections are still perceived to be safe by most adults. Typical locations include low-speed arterials with bike lanes or moderate speed non-multilane roadways.
LTS 4 Represents high stress and suitable for experienced and skilled cyclists. Traffic speeds are moderate to high and can be on roadways from two to over five lanes wide for both directions. Intersections can be complex, wide, and or high volume/speed that can be perceived as unsafe by adults and are difficult to cross. Typical locations include high-speed or multilane roadways with narrow or no bike lanes.

Extra Context Related to Some Inputs

Median Type

“MEDIAN” should be populated with an integer between 0 and 3, indicating the following treatments: - 0 = No Median - 1 = Raised Median (Jersey Barrier, curb, or raised pavement area) - 2 = Striped Median (Hatched painted median shadow, etc.) - 3 = Two-Way-Left Turn Lane (TWLTL)

Currently, the volume-delay function does not differentiate between the different median treatments; it only matters whether there is a median or not.

Examples of each of the four median treatments are shown below.

Auxiliary Lanes

“AUX_LANES” should be populated with an integer representing the number of auxiliary lanes along a freeway segment. Note that the auxiliary lanes should not be included in the Visum “Lanes” attribute, but only in the “AUX_LANES” attribute. An example of a freeway auxiliary lane is shown below. Note that there are no auxiliary lanes in the base-year SOABM auto network.

Intersection Coding

Intersection edits focus on the Node and Turns Visum network elements. The following four VDF attributes should be coded at the intersections (nodes or main nodes) for all intersections that include a minimum collector classification or higher:

  • Intersection control type
  • Direction of free flow or major movement (unsignalized intersections or two-way stop only)
  • Lane lengths (signalized intersections only)
  • Intersection Configurations (signalized intersections only)

In addition, some intersections require special attention due to separated through links. These intersections are addressed with Main Nodes, as discussed in a following section.

Intersection Control Type

Intersection control type can be identified from base-year Google Earth aerial imagery or based on traffic engineering judgment for future facilities. The following types of intersection control are coded on the Visum node “ControlType” attribute:

  • Signalized
  • All-way stop
  • Two-way stop
  • Two-way yield
  • Roundabout
  • Uncontrolled
  • Unknown (default)

The figure below shows examples of each type of control used in the ABM network.

Direction of Free Flow or Major Movement

For all signalized, two-way stop controlled, two-way yield controlled intersections, the free flow or major movement must be coded to correctly represent the correct traffic control condition. The free flow direction is coded using the “Major Flow Manually” tool in the Visum Junction Editor. The figure below shows how to use the “Major Flow Manually” too to code the free-flow movement correctly at a two-way stop controlled intersection.

Signalized Intersection Turn Lanes and Storage Lengths

Signalized intersections require additional network detail, including auxiliary turn lanes and storage lengths. The lane data is coded into the turn attributes from the junction editor, which is opened by double-clicking on the target node while in editing mode. The figure below shows an example how to code additional lanes and lane lengths at an intersection using the junction editor.

Intersection Configuration

In additional to turn lanes and storage lengths, the ABM model requires all signalized intersections to have the correct allowed movements. The allowed movements for a specific lane can be visualized for editing with the following steps:

  1. Open junction editor for the target intersection (node)
  2. Click on the “Geometry” tab of the junction editor viewer (this typically opens in a separate view from the junction editor itself)
  3. Click on the “Lane turns” tab within the junction editor window (see figure below)
  4. Click on the “Mark leg” button (the pink square) on the approach leg where you wish to edit
  5. Visualize the allowed movements for a specific lane by clicking on the “Mark movement” button (white box, turns yellow when active for editing)
  6. Use the “x” button to close and the “+” button to open an allowed movement.

All movements are allowed by default when they do not conflict with another allowed movement on their approach leg. A dashed line represents a closed movement, and a solid line represents an open movement. When opening and closing allowed movements, be cautious of which buttons are associated with each movement. Zoom in on the movements for better visualization. Note that by default the network should be set to close U-turns when editing.

Main Nodes

Some networks may have situations where links are separated by direction at intersections. This situation typically occurs on major arterials with raised medians. In these locations, the Visum “Main Node” network elements are used to consolidate the signalized intersections to the appropriate movements required for the VDF functions. The figure below shows an example of how to apply a main node to an intersection with links separated by direction of traffic flow. Note - Main Nodes are not a required network element. They only need to be consider if the network can not be simplified to only use one node to represent an intersection. If an intersection is represented with more than one node and that location can not be simplified to a single node, it's likely that Main Node treatment will be needed to properly represent intersection movements.

Overall, Main Node coding should follow the same guidelines as outlined for regular node intersections, using the Visum “ControlType” attribute to indicated signalized intersections, and adding turn lanes and modifying movements in the Main Node junction editor. However, Main Nodes do have added complexity. Some key editing guidelines include:

  • Only include nodes directly associated with intersection movements within the Main Node boundary. Accidentally including any nodes that simply split links (shaping nodes) will prevent correct movement editing and result display after the run.
  • Make sure that the control type is set to “unknown” for all nodes within the Main Node boundary. Only the Main Node is assigned the field control type (Signalized, Two-way Stop, etc.)
  • U-turn movement are typically allowed by default for a main node on all approaches with multiple links. Unless the intersection allows for U-turns in real life, these allowed movements should be closed.

More detail on “Main Node” editing can be found in Section 15.20 (pages 1208 – 1231) of the PTV Visum 18 – Manual.

Checking your edits

After editing the auto or non-motorized network, it is a good idea to check network connectivity. To do so, run the following steps:

  1. Go to Calculate + Network Check
  2. Unclick all the procedure except for Check network consistency between “All zones” for each transport system edited
  3. Run the procedure
  4. Click the ! to review the errors (i.e. OD pairs that are not connected)
  5. Close Calculate + Network Check
  6. Go To Graphics + Shortest Path Search (Network Shortest Path Search Check)
  7. Try to find a shortest path for the transport system edited for an OD pair that is not connected. Use distance for walk and bike and t0 for auto modes.
  8. Work from the origin zone or destination zone toward the other end of the trip to find the unconnected links, turns, or nodes.
  9. Repair the connection and repeat until all OD pairs are connected.

Network Shortest Path Search Check

The highway network is shown in below, with a detailed view of Medford and Grants Pass also shown.

VISUM HIGHWAY NETWORK

MEDFORD HIGHWAY NETWORK

GRANTS PASS HIGHWAY NETWORK

Clone this wiki locally