Importing OpenDRIVE network *.xodr

You can select an *.xodr OpenDRIVE file and import it into an empty *.inpx Vissim network file. Alternatively, you can import the OpenDRIVE file via the COM interface.

Vissim supports ASAM OpenDRIVE 1.8.0.

When data import is started, Vissim validates the *.xodr file against the OpenDRIVE standard via the schema files. The row and column of non-conforming data are displayed in a message. Vissim also shows invalid data in corresponding messages. Vissim also supports OpenDRIVE elements that have been optional since OpenDRIVE version 1.4.

OpenDRIVE reference line

During data import, Vissim uses the OpenDRIVE reference line as a basis to define links and connectors. When doing so, it takes OpenDRIVE types of the reference line into account:

  • straight line
  • spiral
  • arc
  • parametric cubic curve
OpenDRIVE Elevation Profile

In addition, Vissim adopts the Z-coordinates of the links and connectors created by Vissim from the OpenDRIVE Elevation Profile of the link sections. In the network settings for vehicle behavior, Vissim selects the option Z-coordinates for Link gradient based on (Selecting network settings for vehicle behavior)

OpenDRIVE connection information from lanesections

To set up the Vissim network, Vissim uses data from the OpenDRIVE file: Vissim creates a link based on every lanesection. Vissim connects these links via connectors. For turns, Vissim also uses the junction information from OpenDRIVE.

For links and connectors, Vissim sets the default attribute values and generates lanes. Intermediate points in links and connectors are applied and set at least 0.5 m apart. Conflict areas are generated by Vissim at the default locations (Using conflict areas).

Accounting for link width
  • If the width of an OpenDRIVE link varies less than 0.25 m, Vissim will insert a link of the same width as at the beginning of the OpenDRIVE link.
  • If the width of an OpenDRIVE link varies more than 0.25 m, Vissim will insert a connector, as well as a 1.1 m long link at the beginning and end of the connector. These links will have the same width as the OpenDRIVE link defined for this position. The width of the connector is interpolated from the widths of these two links. At pockets and narrowings Vissim sets the length of this connector depending on the length of the lanesection where the width changes significantly.
Imported network is located

The element geoReference is imported from the OpenDRIVE file, in which proj-strings specify position data. Vissim uses this to locate the imported network on the background map.

Visualization of non-drivable lanes

Non-drivable lanes located between drivable lanes in the same direction are displayed as closed.

Segment nodes are generated from junctions and roads.

During the OpenDRIVE import, Vissim generates segment nodes from the OpenDRIVE junctions in the *.xodr file, if these junctions align with the corresponding connecting roads. In Vissim, segment nodes help avoid overlapping of nodes, particularly when two junctions are close to each other. Each generated segment node consists of the links and connectors of a junction. Vissim adopts the name and ID of the junctions from the OpenDRIVE file (*.xodr) and uses them as the name and number for the corresponding segment nodes.

Additionally, Vissim inserts the following link segments into the segment nodes:

  • Incoming connectors link the sections that lead into the segment nodes, typically ending just upstream of the segment node, with the corresponding links within the segment node.
  • Each From-link of an incoming connector begins at its From-position and ends at the end of the From-link.
  • Outgoing connectors connect links within the segment nodes to the corresponding links that extend beyond the segment nodes.
  • Each To-link of an outgoing connector starts at the beginning of the To-link and ends at the To-position of the outgoing connector.

Avoid merging segment nodes if they overlap. This disrupts the direct mapping between the junctions from OpenDRIVE and the generated segment nodes.

If necessary, you can select segment node attributes to activate them for use in dynamic assignment, evaluations, or mesoscopic simulations. Unnecessary segment nodes can be deleted from the Nodes list.

Signal controllers at intersections

Based on OpenDRIVE signal elements, Vissim generates conflict areas, stop signs, traffic signals, and desired speed decisions.

OpenDRIVE itself does not provide signal timing information.

If the OpenDRIVE files include details for signal controllers through OpenDRIVE signal elements like priority, with types such as traffic light and stop line, along with their OpenDRIVE semantics, the following rules apply for import:

  • Vissim generates signal heads and controllers of the type Fixed time (simple).
  • Vissim creates a signal group for each OpenDRIVE controller element and a signal head for each associated OpenDRIVE control element.
  • Vissim generates a signal group for each OpenDRIVE controller element.
  • Vissim generates a signal controller for OpenDRIVE controllers associated with an OpenDRIVE junction element.
  • The signal cycle is set to 90 seconds, with the green times for each signal group evenly distributed.
  • If the signal head in OpenDRIVE references a stop line, that specific stop line is used. If no stop line is referenced, the signal head’s position from OpenDRIVE is applied.

Vissim also considers OpenDRIVE signal semantics elements:

  • speed: For speed limits of types maximum and zone, Vissim generates desired speed decisions. These apply to the vehicle classes defined in the defaults.inpx file.
  • priority:
  • Type stop: Vissim generates a stop sign.
  • Type priorityRoad and priorityRoadEnd: Vissim sets the corresponding status for conflict areas at intersections.
  • Type yield: Used by Vissim to identify the priority and subordinate traffic streams.
  • Type trafficLight: Vissim generates a signal head.
  • supplemtaryDistance: Area in which a signal is effective, such as a speed limit.

During the OpenDRIVE import, Vissim considers the information in the OPENDRIVESIGNALMAPPINGS.XML file. In this file, you can store and configure mappings of OpenDRIVE semantic elements to Vissim objects, such as desired speed distributions. During the OpenDRIVE import, Vissim searches for this file in the following directories in this order:

  • In the directory of the OpenDRIVE file to be imported

  • In the directory %APPDATA% \ROAMING\PTV VISION\PTV VISSIM 2025

  • In the Vissim installation directory. The default version of the OPENDRIVESIGNALMAPPINGS.XML file is located in this directory.

Objects that are not considered

Vissim does not generate any additional network objects and does not adopt any additional data from the OpenDRIVE file:

  • Vissim does not adopt the following data:
  • Lane markings
  • Lane change
  • Lane closures
  • Not all types of speed limits

Importing an *.xodr file and displaying the Vissim network

1.  In Vissim, on the File menu, click > Import > OpenDRIVE.

The OpenDRIVE Import window opens.

2.  Select the *.xodr OpenDRIVE file of your choice.

3.  Click Open.

A new OpenDRIVE Import window opens. You can select whether Vissim should take into account the traffic regulations for left-hand traffic or right-hand traffic when driving.

4.  Click the desired entry.

Vissim creates a Vissim network based on the OpenDRIVE data imported. The Vissim network is centered at the intersection of the Equator and the Prime Meridian in the network editor if the OpenDRIVE file does not specify a projection.

By default, you can edit the Vissim network. In the network settings, the selected traffic regulation is activated (Selecting network settings for vehicle behavior).

5.  Save the Vissim network file.

6.  Check the attributes of the network objects Vissim defined during data import.

7.  If desired, edit the attributes.

OpenDRIVE beads in Vissim - Overview

Vissim uses the following OpenDRIVE beads:

header

Vissim verifies the version of the OpenDRIVE file based on revMajor and revMinor. Vissim supports ASAM OpenDRIVE 1.8.0. OpenDRIVE files from version 1.5.0 on may contain elements that can lead to import errors. If during data import Vissim finds elements in the OpenDRIVE file that cannot be imported, a message is displayed and you can cancel the data import.

road::link::predecessor Connector
road::link::successor Connector
road::planview::geometry Vissim uses subtypes to create link polygons.

road::lanes::lanesection::...lane

If in a lane section the subobject lane is present, then depending on the positive or negative index of the lane section, Vissim will generate a link with a lane for one direction or a link with two lanes, one per direction. For a lane section with a positive index, Vissim will create a link with one lane for the opposite direction.

Vissim considers and imports lanes of the following types:

  • driving
  • entry
  • exit
  • offRamp
  • onRamp
  • roadWorks
  • tram
  • rail
  • biking
...link::predecessor Connector
...link::successor Connector
...width The width is defined as a constant based on the width of the lane in Vissim which is closer to the reference line than the imported lane. The width is not defined as a polynomial. If the width of the imported lane is < 0,001 m, Vissim will set the width to 0,001 m.
junction

Vissim creates connectors to turns based on links.

Vissim does not generate a node.

predecessor and successor data from the bead junction are not processed.