Manual Vissim 510 Com Eng
Manual Vissim 510 Com Eng
VISSIM 5.10-06
COM Interface Manual
Copyright
© PTV AG 2009
Planung Transport Verkehr AG
Stumpfstraße 1
D-76131 Karlsruhe
Germany
1 Introduction 7
1.1 Introductory Example 9
1.2 License and Registration 11
1.3 Instances 12
1.4 Conventions 13
2 Object Model 15
3 Language Reference 16
3.1 Base Objects 17
3.1.1 Vissim 17
3.1.2 Net 23
3.2 COM Data Objects 28
3.2.1 WorldPoint 28
3.3 VISSIM Base Data 31
3.3.1 DrivingBehaviorParSets 31
3.3.2 DrivingBehaviorParSet 32
3.3.3 PedTypes 35
3.3.4 PedType 36
3.3.5 PedClasses 38
3.3.6 PedClass 39
3.3.7 PedWalkingBehaviorParSets 41
3.3.8 PedWalkingBehaviorParSet 43
3.4 Network 45
3.4.1 Link-based 45
3.4.1.1 DesiredSpeedDecisions 45
3.4.1.2 DesiredSpeedDecision 46
3.4.1.3 Links 49
3.4.1.4 Link 51
3.4.1.5 Nodes 56
3.4.1.6 Node 59
3.4.1.7 ParkingLots 62
3.4.1.8 ParkingLot 63
3.4.1.9 ReducedSpeedAreas 65
3.4.1.10 ReducedSpeedArea 67
3.4.2 Area-based (Pedestrians) 70
3.4.2.1 PedAreas 70
3.4.2.2 PedArea 72
3.4.3 PedAreaBehaviorTypes 74
3.4.4 PedAreaBehaviorType 75
3.5 Traffic 78
3.5.1 Vehicles 78
3.5.1.1 Vehicles 78
3.5.1.2 Vehicle 84
3.5.2 Private Traffic 88
3.5.2.1 Routes 88
3.5.2.2 Route 90
3.5.2.3 RoutingDecisions 92
3.5.2.4 RoutingDecision 95
3.5.2.5 TrafficCompositions 99
3.5.2.6 TrafficComposition 100
3.5.2.7 VehicleInputs 103
3.5.2.8 VehicleInput 105
3.5.3 Transit 107
3.5.3.1 TransitLines 107
3.5.3.2 TransitLine 109
3.5.3.3 TransitStops 111
3.5.3.4 TransitStop 113
3.5.4 Pedestrians 115
3.5.4.1 PedPedestrians 115
3.5.4.2 PedPedestrian 117
3.5.4.3 PedInputs 119
3.5.4.4 PedInput 120
3.5.4.5 PedRoutes 122
3.5.4.6 PedRoute 124
3.5.4.7 PedRoutingDecisions 126
3.5.4.8 PedRoutingDecision 128
3.5.5 Dynamic Assignment 132
3.5.5.1 DynamicAssignment 132
3.5.5.2 Paths 136
3.5.5.3 Path 140
3.6 Intersection Control 142
3.6.1 Non-signalized 142
3.6.1.1 StopSigns 142
3.6.1.2 StopSign 143
3.6.2 Signal Control 146
3.6.2.1 Detectors 146
3.6.2.2 Detector 147
3.6.2.3 PTCallingPoints 150
3.6.2.4 SignalControllers 152
3.6.2.5 SignalController 153
3.6.2.6 SignalGroups 156
3.6.2.7 SignalGroup 158
3.6.2.8 SignalHeads 161
3.6.2.9 SignalHead 162
6 Annexes 251
6.1 Error Messages 252
6.2 Warning Messages 258
6.3 Tips and Hints 259
6.4 Registry 260
It is also necessary to check the box for the link evaluations in the
Evaluations Æ Files Dialog and to save the options in a *.INI file, for example
LINK_EVAL.INI, with SAVE AS… from the View menu.
When using early binding (refer to page 228 for more information) a
reference to the VISSIM COM server type library must be set within the VB
programming environment. This can cause some conflicts when installing
newer versions of VISSIM, which could have modified the type library.
Unselecting and selecting again the reference to the VISSIM COM server
forces VB to reinterpret the type library. Please refer to the annex "Tips and
hints" on page 259 for more details about VISSIM versions and its COM
server interface
In the case of using a Vista operative system, please use de item “Register
COM Server” on the Windows start menu, in order to get the required
administrator rights.
1.3 Instances
Surely you are used to working with several instances of VISSIM by simply
starting the program several times. When working with COM applications
VISSIM’s behavior is exactly specified as follows:
► Embedded: with this parameter you start a VISSIM instance which will
behave exactly as described above (default behavior). A VISSIM
instance can be used as server for only one COM application.
Additionally the instance will be closed automatically if the COM-object
has been released, explicitly or by ending the COM client.
► Automation: with this parameter each VISSIM instance serves all COM
applications until it is closed manually or explicitly from the COM client.
1.4 Conventions
This manual follows an uniform pattern for the description of the objects and
interface. Nevertheless some conventions should be taken in account before
reading this manual:
► Object Model
The name of objects representing single entities or elements in VISSIM
are singular, like Vissim, Net, Simulation, Link, SignalHead, ... and the
name of the objects representing a set (collections, lists, arrays) of other
objects are in plural, like Links, SignalHeads, ... .
► Description of properties and methods:
The full signature with a description and examples is presented for each
property and method of every interface, making it self-explaining. The
following notation is used for the attributes and type of the parameters:
[in] : input parameter
[out, retval] : output parameter
unsigned char : A 8-bit integer type (0 to 255)
long : A 32-bit integer type (-2,147,483,648 to 2,147,483,647)
double: A 64-bits floating point type (-1.7E308 to 1.7E308)
BSTR: A 16-bit string type
VARIANT: A data type capable of representing various different types.
IObjekt: The interface of a VISSIM COM object; for example ILink
Reference types (pointer types or simply pointers) are marked with an
asterisk (*) operator. A reference type is one that points (refers) to one
specific instance of a type. For example long*, ILink*, VARIANT*.
Model Overview
V issim
N et
Links Link
N odes N ode
P arkingLots P arkingLot
P aths P ath
V ehicleInputs V ehicleInput
V ehicles V ehicle
R outes R oute
D etectors D etector
3 Language Reference
3.1.1 Vissim
Vissim is the highest object of the model; Vissim
all other objects belong to Vissim and can
only be instantiated through the IVissim Net
interface. With the creation of a Vissim
object the COM-Applications gains access Simulation
to the first VISSIM instance running or,
without any instance present, a new
instance is started (see page 12).
The interface IVissim allows, besides other things, to load networks and to
create second level objects like Net or Simulation.
Examples
► Creation of a Vissim Object:
DIM vissim AS Vissim
SET vissim = NEW Vissim
- Alternatively, the CreateObject function (specific of VBScript) can be
used with the identifier string for the Vissim object
“VISSIM.Vissim.500”, allowing the instantiation of concrete VISSIM
versions. VISSIM stands for VISSIM-COMServer, Vissim for the
Vissim class object and 500 for the VISSIM version:
SET vissim = CreateObject ("VISSIM.Vissim.500")
- If you have installed and registered an earlier version of VISSIM 4.20
use the string “VISSIM.Vissim.1” to instanciate it. If you obviate the
version number the newest registered version will be instanciated:
SET vissim = CreateObject ("VISSIM.Vissim")
Please refer to the Visual Basic issues on page 228 for more concrete
information about the difference between NEW and CreateObject
► Deletion of a Vissim Object
In Visual Basic and VBScript an object is deleted by assigning the
language keyword “Nothing”:
SET vissim = NOTHING
In this case, if the Automation mode is being used, the VISSIM
application itself won’t be closed (compare to the method Exit below). In
Embedded mode has the same effect as calling vissim.Exit().
Example
distance_unit1 = vissim.AttValue(„UNITDISTANCE1“)
Attribute outline :
R W Attribute Description
9 9 MENU Enable/Disable the main menu.
9 REVISION VISSIM revision number in text format.
9 9 TOOLBAR Enable/Disable all toolbars except Zoom
(File, Selection, Run Control, Network
Elements, Animation, Test, and Simulation).
9 VERSION VISSIM version in text format.
9 9 UNITDISTANCE1 0 = [m], 1 = [ft]
9 9 UNITDISTANCE2 0 = [km], 1 = [mi]
9 9 UNITSPEED 0 = [km/h], 1 = [mph]
9 9 UNITACCEL 0 = [m/s²], 1 = [ft/s²]
New ()
Creates a new empty network.
Example
SET vissim = NEW Vissim
vissim.New
[in] BYTE Additve : if the value is different than 0 the file will be read additionally.
This parameter is optional with 0 as default value (non additive reading form).
Example
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\data\example.inp”
vissim.LoadNet “c:\vissim\data\example_bis.inp”, 1 ‘read additionally
SaveNet ()
Saves the network under the same name.
Example
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\data\example.inp”
vissim.SaveNet
importType outline :
Attribute Description
ImportInitial Initial import
ImportAdditive Adaptive import without removing obsolete obects
ImportDifference Adaptive import with removing obsolete obects
importOptions outline :
Attribute Description
ImportForDynAssign Import routing informations for dynamic
assignment
ImportNodeRoutes Import routing informations for node routes
ImportForceRoutingImport Import routing information, although no
changes are made to the *.anmRoutes file
Exit ()
Exits the VISSIM program and implicitly deletes the Vissim object instance
(also in Automation mode. See 12).
Example
ShowMaximized ()
The VISSIM main window is displayed with maximum size.
ShowMinimized ()
The VISSIM main window is only visible in the task bar.
DoEvents()
Allows VISSIM to process its queued events. Only useful when executing
scripts from VISSIM self.
Example
Set vis = CreateObject("VISSIM.Vissim")
set sim = vis.simulation
for i = 1 to (sim.Period * sim.resolution)
sim.runsinglestep
vis.doevents
next
3.1.2 Net
The Net object belongs to Vissim and can Vissim
be accessed through the property Net of
the IVissim interface. It gives access to Net
the network objects like links, signal
controllers or vehicles. VISSIM is a single
project program, i.e. it allows to work with
no more than one network at a time.
Therefore, a Net instance always
references the currently opened network
of its Vissim instance (see example
below).
Example
DIM vissim AS Vissim
DIM net1, net2 AS Net
SET vissim = NEW Vissim
SET net1 = vissim.Net
vissim.LoadNet “c:\vissim\daten\example.inp”
SET net2 = vissim.Net
The objects „Net1“ und „Net2“ refer to the same network, that is to
“example.inp“.
Example
DIM qcs AS QueueCounters
SET qcs = net.QueueCounters
Attribute outline :
R W Attribute Description
9 ID Not used
R W Attribute Description
9 9 NAME Name (currently equivalent to the simulation
comment)
9 HEIGHT Network vertical dimension ([m], [ft])
9 WIDTH Network horizontal dimension ([m], [ft])
3.2.1 WorldPoint
This object defines the very Vissim WorldPoint
general type world point
which can be used as a
parameter and/or returned as
a result within some
methods. As all objects of the
VISSIM COM interface, this
object must be created using
the interface IVissim (see
method NewWorldPoint)
when needed as a
parameter.
Examples
DIM wp AS WorldPoint
SET wp = vissim.NewWorldPoint(100.0, 100.0, 100.0)
SET so = vissim.Net.StatictsObjects.GetStaticObjectByCoord(wp)
X ([in] double X)
Sets the X coordinate of the world point (x, y, z).
Parameters
[in] double X : new x coordinate.
Y ([in] double Y)
Sets the Y coordinate of the world point (x, y, z).
Parameters
[in] double Y : new y coordinate.
Z ([in] double Z)
Sets the Z coordinate of the world point (x, y, z).
Parameters
[in] double Z : new z coordinate.
3.3.1 DrivingBehaviorParSets
The Net
DrivingBehaviorParSets
DrivingBehaviorParSets DrivingBehaviorParSet
object is a collection of
DrivingBehaviorParSet
objects (see page 185).
It belongs to the Net object and can be accessed through the
DrivingBehaviorParSets property of the INet interface. It contains all driving
behavior parameter sets of the loaded network and allows the iteration
through all of them as well as individual access (see also
DrivingBehaviorParSet object).
Example
Instantiation of a DrivingBehaviorParSets object and access to all its
DrivingBehaviorParSet objects:
DIM vissim As Vissim
DIM dbpss As DrivingBehaviorParSets
DIM dbps As DrivingBehaviorParSet
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set dbpss = Vissim.Net.DrivingBehaviorParSets
FOR EACH dbps IN dbpss ‘access to _NewEnum to create an enumeration
…
NEXT dbps
‘or also:
FOR i = 1 TO dbpss.Count
SET dbps = dbpss(i) ‘or dbpss.Item(i)
…
NEXT i
Parameters
[out, retval] LPUNKNOWN *ppEnum : returned Enumeration
3.3.2 DrivingBehaviorParSet
A DrivingBehaviorParSet DrivingBehaviorParSets DrivingBehaviorParSet
object represents a driving
behavior parameter set
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 CC0 Standstill Distance (current distance units set)
9 9 CC1 Headway Time [s]
9 9 CC2 ‘Following’ Variation (current distance units set)
9 9 CC3 Threshold of entering ‘Following’ [-]
9 9 CC4 Negative ‘Following’ Threshold [-]
9 9 CC5 Positive ‘Following’ Threshold [-]
9 9 CC6 Speed dependeny of Oscillation
9 9 CC7 Oscillation Acceleration [m/s2]
9 9 CC8 Standstill Acceleration [m/s2]
9 9 CC9 Acceleration at 80 km/h [m/s2]
3.3.3 PedTypes
The PedTypes object is a Net
It belongs to the Net object and can be accessed through the PedTypes
property of the INet interface. It contains all pedestrian types of the loaded
network and allows the iteration through all of them as well as individual
access (see also PedType object).
Example
Instantiation of a PedTypes object and access to all its PedType objects:
DIM vissim As Vissim
DIM pTypes As PedTypes
DIM pType As PedType
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set pTypes = Vissim.Net.PedTypes
FOR EACH pType IN pTypes ‘access to _NewEnum to create an enumeration
…
NEXT pType
‘or also:
FOR i = 1 TO pTypes.Count
SET pType = pTypes(i) ‘or pTypes.Item(i)
…
NEXT i
3.3.4 PedType
A PedType object represents PedTypes PedType
a pedestrian type element
and belongs to the PedTypes
object.
It can be accessed through the PedTypes object to in two ways:
► access via iteration through the collection
DIM pType As PedType
FOR EACH pType IN vissim.Net.PedTypes
List.AddItem pType.ID
NEXT pType
► individual access via identifier
DIM pType As PedType
SET pType = vissim.Net.PedTypes.PedTypeByNumber(2)
The PedType object enables access to the properties of the pedestrian type
through the IPedType interface.
Example
pType.AttValue(„NAME“)=„XXX“
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.3.5 PedClasses
The PedClasses object is a Net
It belongs to the Net object and can be accessed through the PedClasses
property of the INet interface. It contains all pedestrian classes of the loaded
network and allows the iteration through all of them as well as individual
access (see also PedClass object).
Example
Instantiation of a PedClasses object and access to all its PedClass objects:
DIM vissim As Vissim
DIM pClasses As PedClasses
DIM pClass As PedClass
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set pClasses = Vissim.Net.PedClasses
FOR EACH pClass IN pClassess ‘access to _NewEnum to create an enumeration
…
NEXT pClass
‘or also:
FOR i = 1 TO pClasses.Count
SET pClass = pClasses(i) ‘or pClasses.Item(i)
…
NEXT i
3.3.6 PedClass
A PedClass object PedClasses PedClass
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.3.7 PedWalkingBehaviorParSets
The Net
object is a collection of
PedWalkingBehaviorParSet
objects (see page 185).
It belongs to the Net object and can be accessed through the
PedWalkingBehaviorParSets property of the INet interface. It contains all
driving behavior parameter sets of the loaded network and allows the
iteration through all of them as well as individual access (see also
PedWalkingBehaviorParSet object).
Example
Instantiation of a PedWalkingBehaviorParSets object and access to all its
PedWalkingBehaviorParSet objects:
DIM vissim As Vissim
DIM wbpss As PedWalkingBehaviorParSets
DIM wbps As PedWalkingBehaviorParSet
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set wbpss = Vissim.Net.PedWalkingBehaviorParSets
FOR EACH wbps IN wbpss ‘access to _NewEnum to create an enumeration
…
NEXT wbps
‘or also:
FOR i = 1 TO wbpss.Count
SET wbps = wbpss(i) ‘or wbpss.Item(i)
…
NEXT i
3.3.8 PedWalkingBehaviorParSet
A PedWalkingBehaviorParSets PedWalkingBehaviorParSet
PedWalkingBehaviorParSet
object represents a driving
behavior parameter set
element and belongs to the
PedWalkingBehaviorParSets
object.
It can be accessed through the PedWalkingBehaviorParSets object to in two
ways:
► access via iteration through the collection
DIM wbps As PedWalkingBehaviorParSet
FOR EACH wbps IN vissim.Net.PedWalkingBehaviorParSets
List.AddItem wbps.ID
NEXT wbps
► individual access via identifier
DIM wbps As PedWalkingBehaviorParSet
SET wbps = vissim.Net.PedWalkingBehaviorParSets.PedWalkingBehaviorParSetByNumber(2)
The PedWalkingBehaviorParSet object enables access to the properties of
the driving behavior parameter set through the IPedWalkingBehaviorParSet
interface.
Parameters
[out, retval] long *pID :returned identifier.
Example
id = wbps.ID
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.4 Network
3.4.1 Link-based
3.4.1.1 DesiredSpeedDecisions
The Desired Speed Net
Decisions object is a
collection of Desired DesiredSpeedDecisions DesiredSpeedDecision
‘or also:
FOR i = 1 TO decisions.Count
SET decision = decisions(i) ‘or decisions.Item(i)
…
NEXT i
3.4.1.2 DesiredSpeedDecision
A DesiredSpeed- DesiredSpeedDecisions DesiredSpeedDecision
Decision object
represents a
desired speed
decision element
and belongs to
the Desired-
SpeedDecisions
object.
It can be accessed through the DesiredSpeedDecisions object to in two
ways:
► access via iteration through the collection
DIM decision As DesiredSpeedDecision
FOR EACH decision IN vissim.Net.DesiredSpeedDecisions
List.AddItem decision.ID
NEXT decision
► individual access via identifier
DIM decision As DesiredSpeedDecision
SET decision = vissim.Net.DesiredSpeedDecisions.
GetDesiredSpeedDecisionByNumber (12)
The DesiredSpeedDecision object enables access to the properties of the
desired speed decision through the IDesiredSpeedDecision interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 TIMEFROM Time interval start of activation[s].
9 9 TIMEUNTIL Time interval end of activation[s].
9 9 DESIREDSPEED Desired speed distribution number of the
first vehicle class.
9 VEHICLECLASSES Affected vehicle classes (Array of
numbers)
9 VEHICLETYPES Affected vehicle types (Array of numbers)
Attribute outline
R W Attribute Description
9 9 DESIREDSPEED Desired speed distribution number.
Parameter: vehicle class.
9 9 VEHICLECLASS TRUE if the vehicle class is affected.
Parameter: vehicle class number.
9 VEHICLETYPE TRUE if the vehicle class is affected.
Parameter: vehicle type number.
3.4.1.3 Links
The Links object is a Net
collection of Link objects
(see page 51). It belongs
to the Net object and can Links Link
be accessed through the
Links property of the INet
interface.
It contains all links and connectors of the loaded network and allows the
iteration through all of them as well as individual access (see also Link
object).
Example
Instantiation of Links object and access to all its Link objects:
Dim vissim As Vissim
Dim links As Links
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set links = Vissim.Net.Links
FOR EACH link IN links ‘access to the method _NewEnum to create an enumeration
…
NEXT link
‘or also:
FOR i = 1 TO links.Count
SET link = links(i) ‘or links.Item(i)
…
NEXT i
3.4.1.4 Link
This object represents a link or Links Link
connector element and belongs to the
Links object. A Link object can be
accessed through the Links object in two
ways:
► access via iteration through the collection
DIM links As Links
DIM link As Link
SET links = Vissim.Net.Links
FOR EACH link IN links
List.AddItem link.ID
NEXT link
► individual access via identifier
DIM links As Links
DIM link As Link
SET links = Vissim.Net.Links
SET link = links. GetLinkByNumber(1000)
The Link object enables access to the properties of the link through the ILink
interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 BEHAVIORTYPE Link behavior type
R W Attribute Description
9 CONNECTOR True if the link is a connector
9 9 COST Link cost per km
9 9 DISPLAYTYPE Link display type
9 9 EMERGENCYSTOP Connector emergency stop parameter
9 FROMLANE If it is a connector: the number of the right
most lane of the origin link. Otherwise 0.
9 FROMLINK If it is a connector: the number of the origin
link. Otherwise 0.
9 GRADIENT Gradient in %
9 9 LANECHANGE Connector lane change parameter
9 LANEWIDTH Lane width the units of the current options
9 LENGTH Length in the units of the current options
9 NUMLANES Lanes number
9 POINTS Reference line through the center of the
link (array of VARIANTs).
9 9 SURCHARGE1 Weight sensitive surcharge
9 9 SURCHARGE2 Weight insensitive surcharge
9 TOLANE If it is a connector: the number of the right
most lane of the destination link. Otherwise
0.
9 TOLINK If it is a connector: the number of the
destination link. Otherwise 0.
Attribute outline
R W Attribute Description
9 9 CLOSED Connector closure. Parameter: vehicle
class number
Attribute outline
R W Attribute Description
9 9 LANECLOSED Lane closure. Parameters: lane number and
vehicle class number
Parameters outline
Attribute Description
DENSITY Average density (current unit selection)
DELAY Average relative lost time [s/s]
NVEHICLES Number of vehicles (cumulative value of VOLUME).
VOLUME must be activated within the evaluation
configuration.
SPEED Average speed (current unit selection)
VOLUME Average volume [veh/h]
The results refer to the data collected during the last completed time
interval. The data of a time interval is available immediately after the last
time step of the interval has been simulated but not if this is the last time
step of the simulation period as well.
3.4.1.5 Nodes
The Nodes object is a Net
collection of Node objects.
It belongs to the Net object
and can be accessed Nodes Node
through the Nodes
property of the INet
interface.
It contains all nodes of the loaded network and enables iteration through the
collection or individual access to a Node object.
Example
Instantiation of Nodes object and access to all its Node objects:
Dim vissim As Vissim
Dim nodes As Nodes
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set nodes = Vissim.Net.Nodes
…
NEXT node
‘or also:
FOR i = 1 TO nodes.Count
SET node = nodes(i) ‘or nodes.Item(i)
…
NEXT i
GetResult ([in] double Time, [in] BSTR Parameter, [in] BSTR Function,
[in] long VehicleClass, [out, retval] VARIANT *pValue)
This method returns the collected result for all nodes and for the requested
named parameter (see parameters table below) and vehicle class. The
returned value refers to the current collected result for the time interval
enclosing the specified time point. The Function parameter has currently no
meaning.
Parameters
[in] double Time : time point in seconds
[in] BSTR Parameter : parameter name (see below)
[in] BSTR Function : not used
[in] long VehicleClass: vehicle class number. 0 for all vehicle types
[out, retval] VARIANT *pValue: returned value (real number)
Example
nv = nodes.GetResult(600, „NVEHICLES“, “”, 0) ‘ system total vehicle throughput
Parameters outline
Parameter Description
DELAY Average total delay per vehicle [s]
PERSONSDELAY Average total delay per person [s]
NPERSONS Persons throughput (Number of people)
NSTOPS Average number of stops per vehicle [s]
NVEHICLES Vehicles throughput (Number of vehicles)
QUEUELENGTHAVG Average queue length (current unit selection)
QUEUELENGTHMAX Maximum queue length (current unit selection)
STOPPEDDELAY Average stand still time (stopped delay) per
Parameter Description
vehicle [s]
To get results, the Offline Analysis option for nodes must be enabled.
Otherwise the result will be 0.0.
3.4.1.6 Node
A Node object represents a node Nodes Node
element and belongs to the Nodes
object. It can be accessed through the
Nodes object in two ways:
► access via iteration through the collection
DIM nodes As Nodes
DIM node As Node
SET nodes = Vissim.Net.Nodes
FOR EACH node IN nodes
List.AddItem node.ID
NEXT node
► individual access via identifier
DIM nodes As Nodes
DIM node As Node
SET nodes = Vissim.Net.Nodes
SET node = nodes. GetNodeByNumber(101)
The Node object enables access to the properties of the node through the
INode interface.
name = node.Name
Attribute outline
R W Attribute Description
9 ID Identifier number
9 NAME Name
GetResult ([in] double Time, [in] BSTR Parameter, [in] BSTR Function,
[in] long VehicleClass, [out, retval] VARIANT *pValue)
This method returns collected result for the node total (all turn relations) and
for the requested named parameter (see parameters table below) and
vehicle class. The returned value refers to the current collected result for the
time interval enclosing the specified time point. The Function parameter has
currently no meaning.
Parameters
[in] double Time : time point in seconds
[in] BSTR Parameter : parameter name (see below)
[in] BSTR Function : not used
[in] long VehicleClass: vehicle class number. 0 for all vehicle types
[out, retval] VARIANT *pValue: returned value (real number)
Example
nv = node.GetResult(600, „NVEHICLES“, “”, 0) ‘vehicle throughput
del = node.GetResult(600, “DELAY”, “”, 1) ‘average delay per vehicle of vehicle class 1
Parameters outline
Parameter Description
DELAY Average total delay per vehicle [s]
PERSONSDELAY Average total delay per person [s]
NPERSONS Persons throughput (Number of people)
NSTOPS Average number of stops per vehicle [s]
NVEHICLES Vehicles throughput (Number of vehicles)
QUEUELENGTHAVG Average queue length (current unit selection)
QUEUELENGTHMAX Maximum queue length (current unit selection)
STOPPEDDELAY Average stand still time (stopped delay) per
vehicle [s]
To get results, the Offline Analysis option for nodes must be enabled.
Otherwise the result will be 0.0.
3.4.1.7 ParkingLots
The ParkingLots object is a Net
collection of ParkingLot
objects (see page 185). It
belongs to the Net object ParkingLots ParkingLot
and can be accessed
through the ParkingLots
property of the INet
interface.
It contains all parking lots of the loaded network and allows the iteration
through all of them as well as individual access (see also ParkingLot object).
Example
Instantiation of a ParkingLots object and access to all its ParkingLot objects:
DIM vissim As Vissim
DIM pls As ParkingLots
DIM pl As ParkingLot
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set pls = Vissim.Net.ParkingLots
FOR EACH pl IN pls ‘access to _NewEnum to create an enumeration
…
NEXT pl
‘or also:
FOR i = 1 TO pls.Count
SET pl = pls(i) ‘or pls.Item(i)
…
NEXT i
3.4.1.8 ParkingLot
A ParkingLot object represents a ParkingLots ParkingLot
parking lot element and belongs to
the ParkingLots object. It can be
accessed through the ParkingLots
object to in two ways:
► access via iteration through the collection
DIM pl As ParkingLot
FOR EACH pls IN vissim.Net.ParkingLots
List.AddItem pl.ID
NEXT pl
Parameters
[in] BSTR Attribute : attribute name (see below)
[in] BSTR Value : attribute value. (type according to attribute)
Example
pl.AttValue(„NAME“)=„XXX“
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 LINK Identifier number of the position link
9 OCCUPANCY Amount of currently parked vehicles (see note
below)
9 RELATIVEFLOW Percentage of the zone´s total demand.
9 NVEHICLES Total number of vehicles in the parking lot (see
note below)
9 ZONE Zone number
3.4.1.9 ReducedSpeedAreas
The ReducedSpeed- Net
Areas object is a
collection of Reduced- ReducedSpeedAreas ReducedSpeedArea
‘or also:
FOR i = 1 TO speedareas.Count
SET speedarea = speedareas(i) ‘or speedareas.Item(i)
…
NEXT i
3.4.1.10 ReducedSpeedArea
A ReducedSpeedArea ReducedSpeedAreas ReducedSpeedArea
object represents a
reduced speed area
element and belongs to
the ReducedSpeedAreas
object. It can be
accessed through the
ReducedSpeedAreas
object to in two ways:
► access via iteration through the collection
DIM speedarea As ReducedSpeedArea
FOR EACH speedarea IN vissim.Net.ReducedSpeedAreas
List.AddItem speedarea.ID
NEXT speedarea
► individual access via identifier
DIM speedarea As ReducedSpeedArea
SET speedarea = vissim.Net.ReducedSpeedAreas.
GetReducedSpeedAreaByNumber (12)
The ReducedSpeedArea object enables access to the properties of the
reduced speed area through the IReducedSpeedArea interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 TIMEFROM Time interval start of activation[s].
9 9 TIMEUNTIL Time interval end of activation[s].
9 9 DESIREDSPEED Desired speed distribution number of the
first vehicle class.
9 VEHICLECLASSES Affected vehicle classes (Array of numbers)
9 VEHICLETYPES Affected vehicle types (Array of numbers)
Attribute outline
R W Attribute Description
9 9 DESIREDSPEED Desired speed distribution number. Parameter:
vehicle class.
9 9 VEHICLECLASS TRUE if the vehicle class is affected.
Parameter: vehicle class number.
R W Attribute Description
9 VEHICLETYPE TRUE if the vehicle class is affected.
Parameter: vehicle type number.
3.4.2.1 PedAreas
The PedAreas object is a Net
FOR EACH pedarea IN pedareas ‘access to the method _NewEnum to create an enumeration
…
NEXT pedarea
‘or also:
FOR i = 1 TO pedareas.Count
SET pedarea = pedareas(i) ‘or pedareas.Item(i)
…
NEXT i
3.4.2.2 PedArea
This object represents a PedAreas PedArea
pedestrian area element and
belongs to the PedAreas
object. A PedArea object can
be accessed through the
PedAreas object in two ways:
► access via iteration through the collection
DIM pedareas As PedAreas
DIM pedarea As PedArea
SET pedareas = Vissim.Net.PedAreas
FOR EACH pedarea IN pedareas
List.AddItem pedarea.ID
NEXT pedarea
► individual access via identifier
DIM pedareas As PedAreas
DIM pedarea As PedArea
SET pedareas = Vissim.Net.PedAreas
SET pedarea = pedareas. PedAreaByNumber(1000)
The PedArea object enables access to the properties of the pedestrian area
through the IPedArea interface.
Parameters
[in] BSTR Name : new name.
Example
pedarea.Name = „Picadilly Circus“
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.4.3 PedAreaBehaviorTypes
The PedAreaBehaviorTypes Net
object is a collection of
PedAreaBehaviorTypes PedAreaBehaviorType
PedAreaBehaviorType objects
(see page 75).
It belongs to the Net object and can be accessed through the
PedAreaBehaviorTypes property of the INet interface. It contains all area
behavior types of the loaded network and allows the iteration through all of
them as well as individual access (see also PedAreaBehaviorType object).
Example
Instantiation of a PedAreaBehaviorTypes object and access to all its
PedAreaBehaviorType objects:
DIM vissim As Vissim
DIM abts As PedAreaBehaviorTypes
DIM abt As PedAreaBehaviorType
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set abts = Vissim.Net.PedAreaBehaviorTypes
FOR EACH abt IN abts ‘access to _NewEnum to create an enumeration
…
NEXT abt
‘or also:
FOR i = 1 TO abts.Count
SET abt = abts(i) ‘or abts.Item(i)
…
NEXT i
3.4.4 PedAreaBehaviorType
A PedAreaBehaviorType PedAreaBehaviorTypes PedAreaBehaviorType
object represents an area
behavior type element and
belongs to the
PedAreaBehaviorTypes
object.
It can be accessed through the PedAreaBehaviorTypes object to in two
ways:
► access via iteration through the collection
DIM abt As PedAreaBehaviorType
FOR EACH abt IN vissim.Net.PedAreaBehaviorTypes
List.AddItem abt.ID
NEXT abt
► individual access via identifier
DIM abt As PedAreaBehaviorType
SET abt = vissim.Net.PedAreaBehaviorTypes.PedAreaBehaviorTypeByNumber(2)
The PedAreaBehaviorType object enables access to the properties of the
area behavior type through the IPedAreaBehaviorType interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.5 Traffic
3.5.1 Vehicles
3.5.1.1 Vehicles
The Vehicles object is a Net
collection of Vehicle
objects (see page 84). It
belongs to the Net object Vehicles Vehicle
and can be accessed
through the Vehicles
property of the INet
interface.
It contains all vehicles currently traveling on the network during a simulation,
including the parked ones. It enables iteration through the collection or
individual access to a Vehicle object.
Example
Instantiation of a Vehicles object and access to all its Vehicle objects:
DIM vissim As Vissim
DIM vehicles As Vehicles
DIM vehicle As Vehicle
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set vehicles = Vissim.Net.Vehicles
FOR EACH vehicle IN vehicles ‘access to _NewEnum to create an enumeration
…
NEXT vehicle
‘or also:
FOR i = 1 TO vehicles.Count
SET vehicle = vehicles(i) ‘or vehicles.Item(i)
…
NEXT i
Parameters
[in] long Type : vehicle type according to the current network
[in] long ParkingID : parking lot identifier number
[out, retval] IVehicle **ppVehicle : returned Vehicle object
Example
DIM vehicle AS Vehicle
vehicle = vehicles.AddVehicleInZone (1, 2)
Useful to know
Attributes
The named attributes for the AttValue methods are the same as the ones
used in the IVehicle interface (see attribute table on page 85)
Vehicles collections
Vehicles are dynamic network elements (i.e. the are created, removed and
changed during a simulation run). Therefore, vehicle collections are also
dynamic and change their internal elements (vehicles) and order of the
elements during the simulation. In a client programming context this means
that a collection variable refers to the current network status. In the following
example the vehicles collection variable queued_vehicles may not contain
the same vehicles after the simulation step (i.e. n_before and n_after could
differ):
DIM queued_vehicles AS Vehicles
queued_vehicles = vehicles.GetQueued
n_before = queued_vehicles.Count
sim.RunSimulationStep
n_after = queued_vehicles.Count
AddVehicleAtLinkCoordinate
When adding a vehicle to a link coordinate the vehicle will be appear at that
coordinate with the next simulation step. Use the method Redraw of
IGraphics to see the vehicle.
3.5.1.2 Vehicle
A Vehicle object represents a single Vehicles Vehicle
vehicle and belongs to the Vehicles
object. It can be accessed through the
Vehicles object in two ways:
► access via iteration through the collection
DIM vehicle As Vehicle
FOR EACH vehicle IN vissim.Net.Vehicles
List.AddItem vehicle.ID
NEXT vehicle
► individual access via identifier number
DIM vehicle As Vehicle
SET vehicle = vissim.Net.Vehicles.GetVehicleByNumber (101)
The Vehicle object enables access to the properties of the vehicle through
the IVehicle interface. It is not guaranteed that an instantiated Vehicle object
refers to a valid vehicle in VISSIM after the execution of a simulation step
(please refer to the note at the end of this section about the dynamic aspect
of vehicles). Use the property ID (see below) for a validity check.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 BOARDEDPASS Number of boarding passengers
9 9 COLOR Color in RGB format
9 9 ALIGHTEDPASS Number of alighting passengers
9 DESLANECHANGE Desired lane change (1=left, 0=none, -
1=right)
9 9 DESIREDSPEED Desired speed in the units of the current
options
9 9 DESSPEEDFRACTIL Random selected fractil (0,1) for desired
speed selection
9 9 DESTPARKLOT Destination parking lot number (0 if none)
9 9 DESTZONE Destination zone number (0 if none)
9 ELAPSEDTIME Total time in network [s]
9 9 INTERACTION Flag (true/false) if vehicle interacts with
neighborhood
9 9 LANE Current lane on which the vehicle is
positioned
9 LANECHANGE Current lane change (1=left, 0=none, -
R W Attribute Description
1=right)
9 LASTLANECHANGE Time since last lane change started [s]
9 LASTNODE Previous node number to be traveled (0 if
none)
9 9 LENGTH Real vehicle length (current units set)
9 9 LINK Current link where the vehicle is
positioned
9 9 LINKCOORD Current x coordinate of the current link
9 NEXTNODE Next node number to be traveled (0 if
none)
9 ORIGPARKLOT Origin parking lot number (0 if none)
9 ORIGZONE Origin zone number (0 if none)
9 9 PARKLOT Parking lot number where the vehicle is
parked (0 if none)
9 9 PASSENGERS Number of passengers in the vehicles
9 9 PATH Current used path number (0 if none)
9 POINT World coordinates of vehicle’s position
(see note below)
9 PRECEDING Number of the next (not necessarily
relevant) vehicle downstream
9 QUEUECOUNTER Number of queue encounters
9 9 SPEED Current speed in the units of the current
options
9 TOTALDISTANCE Total distance traveled in the network
(current units set)
9 TRAILING Number of the next (not necessarily
relevant) vehicle upstream
9 9 TYPE Vehicle type number
9 9 3DMODELSTATE 3D model state (vehicles with pedestrian
categorie are excluded)
9 9 WEIGHT Vehicle total weight [mt]
See page 174 for a note on the RGB color format
Useful to Know
Attributes
LINK: writing on this attribute has the same effect as the method
MoveToLinkCoordinate applied to the assigned link number and to the
current lane and coordinate.
DESTZONE: writing on this attribute will assign to the vehicle a route of the
dynamic assignment path set driving to a parking lot destination choosen
according to the parking lot selection model of the dynamic assignment. If no
route is possible the vehicle won’t depart.
DESTPARKLOT: writing on this attribute will assign to the vehicle a route of
the dynamic assignment path set driving to the specified parking lot. If no
route is possible the vehicle won’t depart.
PATH: it is possible to use this attribute for re-routing overwriting the current
assigned path with a new overlapping path and when the vehicle is driving
on the overlapping section.
LINKCOORD: writing on this attribute has the same effect as the method
MoveToLinkCoordinate applied to the current link and lane but changing the
coordinate to the assigned value.
PARKLOT: writing on this attribute moves a parked vehicle to the assigned
parking lot number. If the vehicle is not parked the assignment will no have
any effect.
INTERACTION: turning the interaction off will let the vehicle traveling at
constant speed without paying attention to vehicles ahead.
3.5.2.1 Routes
The Routes object RoutingDecision
is a collection of
Route objects (see
page 99). It Routes Route
belongs to the
RoutingDecision
object and can be
accessed through
the Routes
property of the
IRoutingDecision
interface.
It contains all routes of the routing decsion and allows the iteration through
all of them as well as individual access (see also Route object).
Example
Instantiation of a Routes object and access to all its Route objects:
DIM vissim As Vissim
DIM routes As Routes
DIM route As Route
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET routes = Vissim.Net.RouteDecisions(1).Routes
FOR EACH route INroutes ‘access to _NewEnum to create an enumeration
…
NEXT route
‘or also:
FOR i = 1 TO routes.Count
SET route = routes (i) ‘or routes.Item(i)
…
NEXT i
AddRoute ([in] long Link, [in] double Xcoord, [out, retval] long
*pNumber)
Adds a new route with the specified specified link coordinate destination and
with a default relative flow 1.0 for each time interval. If successful, it returns
the assigned number, otherwise 0.
Parameters
[in] long Link : Destination link identifier number
[in] double XCoord : Destination link coordinate
[out, retval] long *pNumber : returned route identifier number
Example
id = decisions.AddStaticRoutingDecision(1, 100.0)
SET decision = decisions.GetRoutingDecisionByNumber (id)
IF NOT (decision IS NOTHING) THEN
decision.AddRoute(2, 200.0)
END IF
3.5.2.2 Route
A Route object represents a Routes Route
route element of a routing
decision and belongs to the
Routes object. It can be
accessed through the
Routes object to in two
ways:
► access via iteration through the collection
DIM routes As Routes
DIM route As Route
SET routes = Vissim.Net.RouteDecisions(1).Routes
FOR EACH route IN routes
List.AddItem route.ID
NEXT route
► individual access via identifier
DIM route As Route
SET route = vissim.Net.RouteDecisions(1).Routes.GetRouteByNumber (12)
The Route object enables access to the properties of the route through the
IRoute interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 NAME Name
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow of time intervall. Parameter: time
interval index (1..n).
3.5.2.3 RoutingDecisions
The Routing- Net
Decisions object is
a collection of
RoutingDecision RoutingDecisions RoutingDecisio
objects (see page n
95).
It belongs to the Net object and can be accessed through the
RoutingDecisions property of the INet interface. It contains all routing
decisions of the loaded network and allows the iteration through all of them
as well as individual access (see also RoutingDecision object).
Example
Instantiation of a RoutingDecisions object and access to all its
RoutingDecision objects:
DIM vissim As Vissim
DIM decisions As RoutingDecisions
DIM decision As RoutingDecision
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET decisions = Vissim.Net.RoutingDecisions
FOR EACH decision IN decisions ‘access to _NewEnum to create an enumeration
…
NEXT decision
‘or also:
FOR i = 1 TO decisions.Count
SET decision = decisions(i) ‘or decisions.Item(i)
…
NEXT i
3.5.2.4 RoutingDecision
A RoutingDecision object RoutingDecisions RoutingDecision
represents a routing decision
element and belongs to the
RoutingDecisions object.
It can be accessed through the RoutingDecisions object to in two ways:
► access via iteration through the collection
DIM decision As RoutingDecision
FOR EACH decision IN vissim.Net.RoutingDecisions
List.AddItem decision.ID
NEXT decision
► individual access via identifier
DIM decision As RoutingDecision
SET decision = vissim.Net.RoutingDecisions.GetRoutingDecisionByNumber (12)
The RoutingDecision object enables access to the properties of the routing
decision through the IRoutingDecision interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 VEHICLECLASSES Affected vehicle classes (Array of numbers)
9 VEHICLETYPES Affected vehicle types (Array of numbers)
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow for the curring time intervall (the
first one if no simulation is running).
Parameter: routing number.
9 9 TIMEFROM Time interval start [s]. Parameter: interval
time order (1..n)
9 9 TIMEUNTIL Time interval end [s]. Parameter: interval time
order (1..n)
9 9 VEHICLECLASS TRUE if the vehicle class is affected.
Parameter: vehicle class number (0 for all
vehicle types)
VEHICLETYPE TRUE if the vehicle class is affected.
Parameter: vehicle type number.
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow for time intervall and routing
number. Parameter1: routing number.
Parameter2: a time point of the requested
time interval.
AddTimeInterval ([in] double From, [in] double To, [out, retval] long
*pIndex)
Adds a new time interval. If successful, it returns the assigned list postion
index (1..n), otherwise 0.
Parameters
[in] double From : Time interval start
[in] double To : Time interval end
[out, retval] long *pIndex : returned list position index
Example
id = decisions.AddStaticRoutingDecision(1, 100.0)
SET decision = decisions.GetRoutingDecisionByNumber (id)
IF NOT (decision IS NOTHING) THEN
decision.AttValue1(“TIMEUNTIL”, 1) = 1799 ‘sets default time interval to [0-1799]
index = decision.AddTimeInterval(1800, 3600)
END IF
3.5.2.5 TrafficCompositions
The TrafficCompositions Net
object is a collection of
TrafficComposition TrafficCompositions TrafficComposition
objects (see page 185).
‘or also:
FOR i = 1 TO tcs.Count
SET tc = tcs(i) ‘or tcs.Item(i)
…
NEXT i
3.5.2.6 TrafficComposition
A TrafficComposition object TrafficCompositions TrafficComposition
represents a traffic com-
position element and belongs
to the TrafficCompositions
object.
It can be accessed through the TrafficCompositions object to in two ways:
► access via iteration through the collection
DIM tc As TrafficComposition
FOR EACH tc IN vissim.Net.TrafficCompositions
List.AddItem tc.ID
NEXT tc
► individual access via identifier
DIM tc As TrafficComposition
SET tc = vissim.Net.TrafficCompositions.GetTrafficCompositionByNumber(2)
The TrafficComposition object enables access to the properties of the traffic
composition through the ITrafficComposition interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow for the specified vehicle type.
Parameter: vehicle type number.
3.5.2.7 VehicleInputs
The VehicleInputs object is Net
a collection of VehicleInput
objects (see page 105). It
belongs to the Net object VehicleInputs VehicleInput
and can be accessed
through the VehicleInputs
property of the INet
interface.
It contains all vehicle inputs of the loaded network and allows the iteration
through all of them as well as individual access (see also VehicleInput
object).
Example
Instantiation of a VehicleInputs object and access to all its VehicleInput
objects:
DIM vissim As Vissim
DIM vehins As VehicleInputs
DIM vehin As VehicleInput
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set inputs = Vissim.Net.VehicleInputs
FOR EACH vehin IN vehins ‘access to _NewEnum to create an enumeration
…
NEXT vehin
‘or also:
FOR i = 1 TO vehins.Count
SET vehin = vehins(i) ‘or vehins.Item(i)
…
NEXT i
AddVehicleInput([in] long LinkID, [in] double From, [in] double To, [out,
retval] IVehicleInput** ppVehicleInput)
Adds a new vehicle input into the link <LinkID> and for time interval [From,
To].
Parameters
[in] long LinkID : link identifier number
[in] double From: from time
[in] double To : to time
[out, retval] IVehicleInput **ppVehicleInput : returned VehicleInput
Example
SET vehinp = vehinps.AddVehicleInput(10, 1200, 1800)
3.5.2.8 VehicleInput
A VehicleInput object represents a VehicleInputs VehicleInput
vehicle input element and belongs to
the VehicleInputs object. It can be
accessed through the VehicleInputs
object to in two ways:
► access via iteration through the collection
DIM vehin As VehicleInput
FOR EACH vehin IN vissim.Net.VehicleInputs
List.AddItem vehin.ID
NEXT vehin
► individual access via identifier
DIM vehin As VehicleInput
SET vehin = vissim.Net.VehicleInputs.GetVehicleInputByNumber (12)
The VehicleInput object enables access to the properties of the vehicle input
through the IVehicleInput interface.
Example
id = vehin.ID
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 LINK Link number
9 9 TIMEFROM Time interval start [s]
R W Attribute Description
9 9 TIMEUNTIL Time interval end [s]
9 9 TRAFFICCOMPOSITION Traffic Composition number
9 9 VOLUME Volume [Veh/h]
3.5.3 Transit
3.5.3.1 TransitLines
The TransitLines object is Net
a collection of Transit Line
objects (see page 109).
TransitLines TransitLine
It belongs to the Net object and can be accessed through the TransitLines
property of the INet interface. It contains all transit lines of the loaded
network and allows the iteration through all of them as well as individual
access (see also TransitLine object).
Example
Instantiation of a TransitLines object and access to all its TransitLine objects:
DIM vissim As Vissim
DIM transitlines As TransitLines
DIM transitline As TransitLine
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET transitlines = Vissim.Net.TransitLines
FOR EACH transitline IN transitlines ‘access to _NewEnum to create an enumeration
…
NEXT transitline
‘or also:
FOR i = 1 TO transitlines.Count
SET transitline = transitlines(i) ‘or transitlines.Item(i)
…
NEXT i
3.5.3.2 TransitLine
A TransitLine object represents a TransitLines TransitLine
transit line element and belongs to
the TransitLines object.
It can be accessed through the TransitLines object to in two ways:
► access via iteration through the collection
DIM transitline As TransitLine
FOR EACH transitline IN vissim.Net.TransitLines
List.AddItem transitline.ID
NEXT transitline
► individual access via identifier
DIM transitline As TransitLine
SET transitline = vissim.Net.TransitLines.
GetTransitLineByNumber (12)
The TransitLine object enables access to the properties of the transit line
through the ITransitLine interface.
Parameters
[in] BSTR Name : new name.
Example
transitline.Name = „XXX“
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
Attribute outline
R W Attribute Description
9 9 ALIGHTINGPROB Percentage of passengers that alight at
that stop.
9 9 DWELLTIME Dwell time distribution number to be used
to determine the stop time
3.5.3.3 TransitStops
The Transit Stops Net
object is a collection of
Transit Stop objects
TransitStops TransitStop
(see page 113).
It belongs to the Net object and can be accessed through the TransitStops
property of the INet interface. It contains all transit stops of the loaded
network and allows the iteration through all of them as well as individual
access (see also TransitStop object).
Example
Instantiation of a TransitStops object and access to all its TransitStop
objects:
DIM vissim As Vissim
DIM transitstops As TransitStops
DIM transitstop As TransitStop
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET transitstops = Vissim.Net.TransitStops
FOR EACH transitstop IN transitstops ‘access to _NewEnum to create an enumeration
…
NEXT transitstop
‘or also:
FOR i = 1 TO transitstops.Count
SET transitstop = transitstops(i) ‘or transitstops.Item(i)
…
NEXT i
3.5.3.4 TransitStop
A TransitStop object represents a TransitStops TransitStop
transit stop element and belongs to
the TransitStops object.
It can be accessed through the TransitStops object to in two ways:
► access via iteration through the collection
DIM transitstop As TransitStop
FOR EACH transitstop IN vissim.Net.TransitStops
List.AddItem transitstop.ID
NEXT transitstop
► individual access via identifier
DIM transitstop As TransitStop
SET transitstop = vissim.Net.TransitStops.
GetTransitStopByNumber (12)
The TransitStop object enables access to the properties of the transit stop
through the ITransitStop interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.5.4 Pedestrians
3.5.4.1 PedPedestrians
The PedPedestrians object is Net
a collection of PedPedestrian
objects (see page 117). It PedPedestrians PedPedestrian
belongs to the Net object and
can be accessed through the
PedPedestrians property of
the INet interface.
It contains all pedestrians currently traveling on the network during a
simulation, including the parked ones. It enables iteration through the
collection or individual access to a PedPedestrian object.
Example
Instantiation of a PedPedestrians object and access to all its PedPedestrian
objects:
DIM vissim As Vissim
DIM pedestrians As PedPedestrians
DIM pedestrian As PedPedestrian
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set pedestrians = Vissim.Net.PedPedestrians
FOR EACH pedestrian IN pedestrians ‘access to _NewEnum to create an enumeration
…
NEXT pedestrian
‘or also:
FOR i = 1 TO pedestrians.Count
SET pedestrian = pedestrians(i) ‘or pedestrians.Item(i)
…
NEXT i
3.5.4.2 PedPedestrian
A PedPedestrian object represents a PedPedestrians PedPedestrian
single pedestrian and belongs to the
PedPedestrians object. It can be
accessed through the
PedPedestrians object in two ways:
► access via iteration through the collection
DIM pedestrian As PedPedestrian
FOR EACH pedestrian IN vissim.Net.PedPedestrians
List.AddItem pedestrian.ID
NEXT pedestrian
► individual access via identifier number
DIM pedestrian As PedPedestrian
SET pedestrian = vissim.Net.PedPedestrians.PedPedestrianByNumber (101)
The PedPedestrian object enables access to the properties of the pedestrian
through the IPedPedestrian interface. It is not guaranteed that an
instantiated PedPedestrian object refers to a valid pedestrian in VISSIM after
the execution of a simulation step (please refer to the note at the end of this
section about the dynamic aspect of pedestrians). Use the property ID (see
below) for a validity check.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.5.4.3 PedInputs
The PedInputs object is a Net
collection of PedInput objects
(see page 120). It belongs to PedInputs PedInput
the Net object and can be
accessed through the
PedInputs property of the INet
interface.
It contains all pedestrian inputs of the loaded network and allows the
iteration through all of them as well as individual access (see also PedInput
object).
Example
Instantiation of a PedInputs object and access to all its PedInput objects:
DIM vissim As Vissim
DIM pedins As PedInputs
DIM pedin As PedInput
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set inputs = Vissim.Net.PedInputs
FOR EACH pedin IN pedins ‘access to _NewEnum to create an enumeration
…
NEXT pedin
‘or also:
FOR i = 1 TO pedins.Count
SET pedin = pedins(i) ‘or pedins.Item(i)
…
NEXT i
3.5.4.4 PedInput
A PedInput object represents a PedInputs PedInput
pedestrian input element and belongs
to the PedInputs object. It can be
accessed through the PedInputs
object to in two ways:
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 TIMEFROM Time interval start [s]
9 9 TIMEUNTIL Time interval end [s]
9 9 PEDCOMPOSITION Ped Composition number
9 9 VOLUME Volume [Ped/h]
3.5.4.5 PedRoutes
The PedRoutes object is a Net
collection of PedRoute objects
(see page 124). It belongs to PedRoutes PedRoute
the PedRouteDecision object
and can be accessed through
the PedRoutes property of the
IPedRouteDecision interface.
It contains all pedestrian routes of the routing decsion and allows the
iteration through all of them as well as individual access (see also PedRoute
object).
Example
Instantiation of a PedRoutes object and access to all its PedRoute objects:
‘or also:
FOR i = 1 TO pedroutes.Count
SET pedroute = pedroutes (i) ‘or pedroutes.Item(i)
…
NEXT i
3.5.4.6 PedRoute
A PedRoute object represents a PedRoutes PedRoute
pedestrian route element of a routing
decision and belongs to the
PedRoutes object. It can be accessed
through the PedRoutes object to in
two ways:
► access via iteration through the collection
DIM pedroutes As PedRoutes
DIM pedroute As PedRoute
SET pedroutes = Vissim.Net.PedRoutingDecisions(1).PedRoutes
FOR EACH pedroute IN pedroutes
List.AddItem pedroute.ID
NEXT pedroute
► individual access via identifier
DIM pedroute As PedRoute
SET pedroute = vissim.Net.PedRoutingDecisions(1).PedRoutes.PedRouteByNumber (12)
The PedRoute object enables access to the properties of the pedestrian
route through the IPedRoute interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 NAME Name
Parameters
[in] BSTR Attribute : attribute name (see below)
[in] VARIANT Parameter : attribute dependent parameter (see below)
[out, retval] VARIANT *pValue : returned value of the attribute
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow of time intervall. Parameter: time
interval index (1..n).
3.5.4.7 PedRoutingDecisions
The PedRoutingDecisions Net
‘or also:
FOR i = 1 TO decisions.Count
SET decision = decisions(i) ‘or decisions.Item(i)
…
NEXT i
3.5.4.8 PedRoutingDecision
A PedRoutingDecision PedRoutingDecisions PedRoutingDecision
object represents a routing
decision element and
belongs to the
PedRoutingDecisions object.
It can be accessed through the PedRoutingDecisions object to in two ways:
► access via iteration through the collection
DIM decision As PedRoutingDecision
FOR EACH decision IN vissim.Net.PedRoutingDecisions
List.AddItem decision.ID
NEXT decision
► individual access via identifier
DIM decision As PedRoutingDecision
SET decision = vissim.Net.PedRoutingDecisions.PedRoutingDecisionByNumber (12)
The PedRoutingDecision object enables access to the properties of the
routing decision through the IPedRoutingDecision interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 PEDCLASSES Affected pedestrian classes (Array of
numbers)
9 PEDTYPES Affected pedestrian types (Array of
numbers)
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow for the curring time intervall (the
first one if no simulation is running).
Parameter: routing number.
9 9 TIMEFROM Time interval start [s]. Parameter: interval
time order (1..n)
9 9 TIMEUNTIL Time interval end [s]. Parameter: interval time
order (1..n)
9 9 PEDCLASS TRUE if the pedestrian class is affected.
Parameter: pedestrian class number (0 for all
vehicle types)
PEDTYPE TRUE if the pedestrian class is affected.
Parameter: pedestrian type number.
Attribute outline
R W Attribute Description
9 9 RELATIVEFLOW Relative flow for time intervall and routing
number. Parameter1: routing number.
Parameter2: a time point of the requested
time interval.
AddTimeInterval ([in] double From, [in] double To, [out, retval] long
*pIndex)
Adds a new time interval. If successful, it returns the assigned list postion
index (1..n), otherwise 0.
Parameters
[in] double From : Time interval start
[in] double To : Time interval end
[out, retval] long *pIndex : returned list position index
Example
id = decisions.AddStaticPedRoutingDecision(1, 100.0)
SET decision = decisions.PedRoutingDecisionByNumber (id)
IF NOT (decision IS NOTHING) THEN
decision.AttValue1(“TIMEUNTIL”, 1) = 1799 ‘sets default time interval to [0-1799]
index = decision.AddTimeInterval(1800, 3600)
END IF
3.5.5.1 DynamicAssignment
The DynamicAssignment object belongs to Vissim
Vissim and can be accessed through the
property DynamicAssignment of the
DynamicAssignment
IVissim interface. It enables configuration
and control of dynamic assignment
options. A DynamicAssignment instance
references always the current dynamic
assignment options for the currently
opened network.
Example
DIM vissim AS Vissim
DIM dynassig AS DynamicAssignment
SET vissim = NEW Vissim
SET dynassig = vissim.DynamicAssignment
vissim.LoadNet “example.inp”
dynassig.AttValue(“STOREPATHS”)
Attribute outline
R W Attribute Description
9 9 APS Flag to check the Alternative Path
Search with stochastic edge
penalization
9 9 APSSPREAD Maximum spread share
9 9 APSPASSES Number of stochastic passes.
9 CONVERGEALL True if all active convergence
checks assert true
9 9 CONVERGENCETTEDGESC Flag to check edge travel times
HECK convergence
9 9 CONVERGENCETTEDGESF Factor edge travel times
ACTOR convergence [%]
9 9 CONVERGENCETTEDGESM Current maximal percentage
AX difference between old and new
edge travel times [%]
9 9 CONVERGENCETTPATHSC Flag to check path travel times
HECK convergence
9 9 CONVERGENCETTPATHSFA Factor path travel times
CTOR convergence [%]
R W Attribute Description
9 9 CONVERGENCETTPATHSM Current maximal percentage
AX difference between old and new
path travel times [%]
9 9 CONVERGENCEVOLEDGES Flag to check edge volumes
CHECK convergence
9 9 CONVERGENCEVOLEDGES Factor edge volumes
FACTOR convergence [Veh]
9 9 CONVERGENCEVOLEDGES Current maximal difference
MAX between old and new edge
volumes [%]
9 9 EVENTSMOOTHING Enable/Disable the event
EdgeSmoothing
9 9 EVENTROUTECHOICEDIST Enable/Disable the event
RouteChoiceDistribution
9 9 KIRCHHOFF Kirchhoff exponent for the route
choice
9 9 PSALLPAIRS Flag to search paths for O-D
pairs with zero volume
9 9 PSLIMIT Flag to llimit the number of paths
per parking lot relation
9 9 PSLIMITNUM Number of allowed paths per
parking lot relation
9 9 PSREJECTPATHS Check to reject paths with total
cost higher than the total cost of
the best path
9 9 PSREJECTPATHSFACTOR Thereshold factor to reject paths
9 9 SEARCHPATHS Flag to search new dynamic
assignment paths
9 9 STORECOSTS Flag to store costs to the BEW
file
9 9 STOREPATHS Flag to store paths to the WEG
file
9 9 VOLUME Scales the total volume [%]
vis.LoadNet “example.inp”)
dyn.AttValue(“EVENTSMOOTHING”) = TRUE
FOR nIteration = 1 TO 10
sim.RunContinuous
NEXT nIteration
vis.LoadNet “example.inp”)
dyn.AttValue(“EVENTROUTECHOICEDIST”) = TRUE
sim.RunContinuous
3.5.5.2 Paths
The Paths object is a Net
collection of Path objects.
It belongs to the Net object
and can be accessed Paths Path
through the Paths property
of the INet interface.
It contains all paths inserted using this interface (not the dynamic
assignment paths, see note at the end of this chapter) and enables iteration
through the collection or individual access to a Path object.
Example
Instantiation of Paths object and access to all its Path objects (see page
140):
DIM vissim AS Vissim
DIM paths AS Paths
DIM path AS Path
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET paths = Vissim.Net.Paths
FOR EACH path IN paths ‘access to the method _NewEnum to create an enumeration
…
NEXT path
‘or also:
FOR i = 1 TO paths.Count
SET path = paths(i) ‘or paths.Item(i)
…
NEXT i
Parameters
[out, retval] long *pCount : returned number of objects.
Useful to Know
Possible Errors
3.5.5.3 Path
A Path object represents a path element Paths Path
and belongs to the Paths object. It can
be accessed through the Paths object in
two ways:
► access via iteration through the collection
DIM paths AS Paths
DIM path AS Path
SET paths = Vissim.Net.Paths
FOR EACH path IN paths
List.AddItem path.ID
NEXT path
► individual access via identifier
DIM paths AS Paths
DIM path AS Path
SET paths = Vissim.Net.Paths
SET path = paths.GetPathByNumber (11)
The Path object enables access to the properties of the path through the
IPath interface.
As a difference to other network elements, the paths inserted through the
IPaths interface are not strictly the same as the dynamic assignment paths
(see the “Useful to Know” section on page 139 for more information)
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 LENGTH Length in the units of the current options
3.6.1 Non-signalized
3.6.1.1 StopSigns
The StopSigns object is a Net
collection of StopSign
objects (see page 49). It
belongs to the Net object StopSigns StopSign
and can be accessed
through the StopSigns
property of the INet
interface.
It contains all stop signs (not transit stops) of the loaded network and allows
the iteration through all of them as well as individual access (see also
StopSign object).
Example
Instantiation of a StopSigns object and access to all its StopSign objects:
DIM vissim As Vissim
DIM stops As StopSigns
DIM stop As StopSign
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set stops = Vissim.Net.StopSigns
FOR EACH stop IN stops ‘access to _NewEnum to create an enumeration
…
NEXT stop
‘or also:
FOR i = 1 TO stops.Count
SET stop = stops(i) ‘or stops.Item(i)
…
NEXT i
3.6.1.2 StopSign
A StopSign object represents a stop StopSigns StopSign
sign element and belongs to the
StopSigns object. It can be accessed
through the StopSigns object to in two
ways:
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
Attribute outline
R W Attribute Description
9 9 TIMEDIST Time distribution number for dwell time (Writeable
during simulation time). Parameter: vehicle class
number. Assign 0 to remove an assigned time
distribution to a vehicle class.
3.6.2.1 Detectors
The Detectors object is a SignalController
collection of Detector
objects (see page 156). It
belongs to a Detectors Detector
SignalController object and
can be accessed through
the Detectors property of
the ISignalController
interface.
It contains all detectors of the refered signal controller and enables iteration
through the collection or individual access to a Detector object.
Example
Instantiation of a Detectors object and access to all its Detector objects:
DIM vissim AS Vissim
DIM dets AS Detectors
DIM det AS Detector
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET dets = Vissim.Net.SignalControllers(1).Detectors
FOR EACH det IN dets ‘access to _NewEnum to create an enumeration
…
NEXT det
‘or also:
FOR i = 1 TO dets.Count
SET det = dets(i) ‘or dets.Item(i)
…
NEXT i
3.6.2.2 Detector
A Detector object belongs to a Detector Detectors
controller’s Detectors object.
Through this a detector can be
accessed in two ways:
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 CONTROLLER Signal controller identifier number
9 9 DETECTION Reading: 1 if there is or was a vehicle on
the detector since the previous signal
controller time step, else 0. Writing: will set
an impulse like a vehicle that arrives in the
current time step on the detector (i.e. a
front end is detected) but does not leave it
again during the current time step.
9 HEADWAY Time gap in seconds. 0 if the detector is
occupied at the end of the current signal
controller time step
9 IMPULSE Returns 1 if the impulse memory is 1 (i.e. a
vehicle front end has been detected in the
current signal controller time step).
Otherwise it returns 0
9 LINK Link identifier number
9 LANE Lane number
9 OCCUPANCY Time in seconds since the arrival of a
vehicle. 0 if no vehicle was detected at the
end of the current signal controller time
step 0
9 OCCUPANCYRATE Smoothed occupancy rate
9 PRESENCE 1 if a vehicle has been on the detector at
the end of the last simulation time step,
else 0. (Note: This is different from the
VAP function presence()!)
9 VEHICLEID If a vehicle front end has been detected in
the current simulation time step it returns
R W Attribute Description
the ID number of this vehicle. Otherwise 0.
If more than one vehicle front end has
been detected the result is unspecified.
9 VEHICLELENGTH Length (in the units of the current options)
LENGTH of the last vehicle that was detected within
the current signal controller time step. If no
vehicle was detected 0
9 VELOCITY Speed (in the units of the current options)
SPEED of the last vehicle that was detected within
VEHICLESPEED the current signal controller time step. If no
vehicle was detected 0
3.6.2.3 PTCallingPoints
The PTCallingPoints object Net
is a collection of Detector
objects, defined as public
transport calling point, (see PTCallingPoints Detector
page 156). It belongs to a
Net object and can be
accessed through the
PTCallingPoints property
of the INet interface.
It contains all PT calling points (special type of detector) of the the loaded
network and enables iteration through the collection or individual access to a
Detector object.
Example
Instantiation of a PTCallingPoints object and access to all its Detector
objects defined as public transport calling point:
DIM vissim AS Vissim
DIM ptcps AS PTCallingPoints
DIM det AS Detector
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET dets = Vissim.Net.PTCallingPoints
FOR EACH det IN ptcps ‘access to _NewEnum to create an enumeration
…
NEXT det
‘or also:
FOR i = 1 TO ptcps.Count
SET det = ptcps (i) ‘or ptcps.Item(i)
…
NEXT i
3.6.2.4 SignalControllers
The Signal- Net
Controllers object is
a collection of
Signal objects (see SiganlControllers SignalController
page 147). It
belongs to the Net
object and can be
accessed through
the Signal-
Controllers property
of the INet interface.
It contains all signal controllers of the loaded network and enables iteration
through the collection or individual access to a SignalController object.
Example
Instantiation of a SignalControllers object and access to all its
SignalController objects:
DIM vissim AS Vissim
DIM controllers AS SignalControllers
DIM controller AS SignalController
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET controllers = Vissim.Net.SignalControllers
FOR EACH controller IN controllers ‘access to _NewEnum to create an enumeration
…
NEXT controller
‘or also:
FOR i = 1 TO controllers.Count
SET controller = controllers(i) ‘or controllers.Item(i)
…
NEXT i
3.6.2.5 SignalController
A SignalController object belongs SignalControllers SignalController
to the network’s SignalControllers
object. Through this a signal
controller can be accessed in two
ways:
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 CYCLETIME Cylcle time [s]
9 9 LOGFILE Filename for the record file (*.ldp)
9 9 PROGRAM VAP program number
9 9 OFFSET Offset time [s]
9 9 TYPE Type (1: fixed, 2: SDM, 3: VS_PLUS, 4: TRENDS,
5: VAP, 6: TL, 7: VOS, 8: NEMA, 9: External)
3.6.2.6 SignalGroups
The SignalGroups object is SignalController
a collection of SignalGroup
objects (see page 158). It
belongs to a Signal- SignalGroups SignalGroup
Controller object and can
be accessed through the
SignalGroups property of
the ISignalController
interface.
It contains all signal groups of the refered signal controller and enables
iteration through the collection or individual access to a SignalGroup object.
Example
Instantiation of a SignalGroups object and access to all its SignalGroup
objects:
DIM vissim AS Vissim
DIM groups AS SignalGroups
DIM group AS SignalGroup
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET groups = Vissim.Net.SignalControllers(1).SignalGroups
FOR EACH group IN groups ‘access to _NewEnum to create an enumeration
…
NEXT group
‘or also:
FOR i = 1 TO groups.Count
SET group = groups (i) ‘or groups.Item(i)
…
NEXT i
Example
DIM sg AS SignalGroup
SET sg = groups.GetSignalGroupByNumber (1)
3.6.2.7 SignalGroup
A SignalGroup object SignalController
belongs to a controller’s
SignalGroups object.
Through this a signal group SignalGroups SignalGroup
can be accessed in two
ways:
► access via iteration through the collection
DIM groups As SignalGroups
DIM group As SignalGroup
SET groups = Vissim.Net.SignalControllers(1).SignalGroups
FOR EACH group IN groups
List.AddItem group.ID
NEXT group
► individual access via identifier
DIM groups As SignalGroups
DIM group As SignalGroup
SET groups = Vissim.Net.SignalControllers(1).SignalGroups
SET group = groups.GetSignalGroupByNumber(10)
The SignalGroup object enables access to the properties of the signal group
through the ISignalGroup interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 AMBER Amber time [s] (0 for switching off)
9 9 CONTROLLER Signal controller identifier number
9 9 GREENEND Green end [s]
9 9 GREENEND2 Additional green end [s] (negative or 0 when
non used)
9 9 REDAMBER Red/Amber time [s] (0 for switching off)
9 9 REDEND Red end [s]
9 9 REDEND2 Additional red end [s] (negative or 0 when
non used)
9 STATE 1 = Red, 2 = Redamber, 3 = Green, 4 =
Amber, 5 = Off, 6 = Undefined, 7 = Flashing
R W Attribute Description
Amber, 8 = Flashing Red, 9 = Flashing
Green, 10 = Flashing Redgreen, 11 =
Greenamber, 12 = Off_red
9 9 TYPE 1 = cycle, 2 = Permanent green, 3 =
Permanent Red
Attribute Description
Red Red
Redamber Red and amber
Green Green
Amber Amber
Off Off, meaning no light
Undefined State not defined
Amber_f Flashing amber
Red_f Flashing red
Green_f Flashing green
Redgreen_f Flashing red and green
Greenamber Green and amber
Off_red Off, meaning red
Parameters
[out, retval] SignalSate *pState : returned state
Example
DIM state AS SignalState
state = group.State
3.6.2.8 SignalHeads
The SignalHeads object is SignalGroup
a collection of SignalHead
objects (see page 162). It
belongs to a SignalGroup SignalHeads SignalHead
object and can be
accessed through the
SignalHeads property of
the ISignalGroup interface.
It contains all signal heads of the refered signal group and enables iteration
through the collection or individual access to a SignalHead object.
Example
Instantiation of a SignalHeads object and access to all its SignalHead
objects:
DIM vissim AS Vissim
DIM heads AS SignalHeads
DIM head AS SignalHead
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET heads = Vissim.Net.SignalControllers(1).SignalGroups(1).SignalHeads
FOR EACH head IN heads ‘access to _NewEnum to create an enumeration
…
NEXT head
‘or also:
FOR i = 1 TO heads.Count
SET head = heads(i) ‘or heads.Item(i)
…
NEXT i
3.6.2.9 SignalHead
A SignalHead object SignalGroup
belongs to a signal
group’s SignalHeads
object. Through this a SignalHeads SignalHead
signal head can be
accessed in two ways:
List.AddItem head.ID
NEXT heads
► individual access via identifier
DIM heads As SignalHeads
DIM head As SignalHeads
SET heads = Vissim.Net.SignalControllers(1).SignalGroups(1).SignalHeads
SET head = heads.GetSignalHeadByNumber(10)
The SignaHead object enables access to the properties of the signal head
through the ISignalHead interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 9 CONTROLLER Signal controller number
9 9 GROUP Signal group number
9 9 LINK Link identifier number
9 9 LANE Lane number
9 9 ORGROUP Alternative signal group
9 9 LINKCOORD Link coordinate (in current units)
3.7.1 Simulation
The Simulation object belongs to Vissim Vissim
and can be accessed through the property
Simulation of the IVissim interface. It Simulation
enables configuration and control of
simulation runs. VISSIM is a single project
program, i.e. it can simulate only one
network simultaneously. Therefore, a
Simulation instance always references the
current simulation and the parameters set
for the currently opened network.
Example
DIM vissim AS Vissim
DIM simulation AS Simulation
SET vissim = NEW Vissim
SET simulation = vissim.Simulation
vissim.LoadNet “example.inp”
simulation.RunContinuous ‘ it runs an entire simulation synchronously
Parameters
[in] long RandomSeed : new random seed.
Example
simulation.RandomSeed = 13
Attribute outline :
R W Attribute Description
9 9 ARCHIVEFILES Path and costs files (*.weg, *bew) backtrack
ing (True/False)
9 9 BREAKAT Break at a given simulation second
R W Attribute Description
9 9 COMMENT Comment as a string
9 9 CONTROLLERFRE Controller frequency: Number of passes per
QUENCY simulation second of signal controllers
9 9 DIRECTORY Output directory for multi-run processes
9 ELAPSEDTIME Simulated time seconds since start of
simulation [s]
9 ISRUNNING Simulation is running (True/False)
9 9 LEFTSIDETRAFFIC 0 for right-side traffic , ≠ 0 for left-side traffic
9 9 NUMRUNS Number of simulation runs for a multi-run
process
9 9 PERIOD Period in simulation seconds
9 9 RANDOMSEED Random seed
9 9 RANDOMSEEDINC Random seed increment for multi-runs
9 9 RESOLUTION Resolution in time steps per simulation
second
9 9 RUNINDEX Run index for evaluation with consecutive
simulation runs
9 9 SEARCHPATHS Flag to search new dynamic assignment
paths
9 9 SPEED Speed in simulation seconds per second. ≤
0 maximal speed
9 9 STARTTIME Start time as a string with the format
“hh:mm:ss”
9 9 STATUSLINE Enables/disables the status line when
simulating.
9 9 STORECOSTS Flag to store dynamic assignment costs to
the BEW file
9 9 STOREPATHS Flag to store dynamic assignment paths to
the WEG file
9 9 THREADS Number of threads for the simulation kernel.
To be set previous to the simulation start.
9 TIME Simulation time [hh:mm:ss]
9 9 VOLUME Dynamic Assignment volume increment for
multi-runs
RunContinuous
Starts or continues (if coming changing from single step mode) a simulation
run in continuous mode (see the BreakAt property for switching into single
step mode at a predetermined simulation time). If a simulation is currently
running it will be stopped before.
Example
simulation.RunContinuous
RunSingleStep
Executes a single simulation time step. It starts a simulation run if no
simulation is running.
Example
simulation.RunSingleStep
Stop
Stops a simulation run. If no simulation is running this command is ignored.
Example
simulation.Stop
vissim.Simulation.SaveSnapshot “c:\vissim\data\example.snp”
Examples
► Running the first 1000 simulation seconds in continuous mode and then
one additional single time step:
simulation.BreakAt = 1000
simulation.RunContinuous
simulation.RunSingleStep
► Running a simulation with possible manual stop:
FOR i = 0 TO simulation.Period ‘if resolution is 1 step per second
simulation.RunSingleStep
the_end:
simulation.Stop
► Running 10 simulations continuously with different run indices and
random seeds:
simulation.RunIndex = 0
FOR i = 0 to 10
simulation.RunContinuous
simulation.RunIndex = simulation.RunIndex + 1
simulation. RandomSeed = simulation.RandomSeed + 1
NEXT i
If you are using database evaluation start from index 0. Otherwise the
database won’t be created and an error will occur.
3.8.1 Graphics
The Graphics object belongs to Vissim and Vissim
can be accessed through the property
Graphics of the IVissim interface. It gives
access to the network graphics options. Graphics
These options are globally used for the
Vissim instance and affect all networks and
simulations during its existence. The VISSIM
internal set of default graphic options is used
for the creation of a new instance. Use the
IVissim method LoadLayout to load a stored
set of graphics.
Example
DIM vissim AS Vissim
DIM graphics AS Graphics
SET vissim = NEW Vissim
SET graphics = vissim.Graphics
Attribute outline
R W Attribute Description
9 9 3D 0 = 2D mode, 1 = 3d mode
9 9 DISPLAY 0 = normal, 1 = center line, 2 = invisible, 3 =
alternative
9 9 LAND Land color as a long in RGB format
9 9 LINKS Links color as a long in RGB format
9 9 SKY Sky color as a long in RGB format
9 9 VISUALIZATION Vehicles/aggregated values visualization on/off
(true/false)
Note: The color values passed to or returned from VISSIM must be/are in
RGB format. The valid range for a normal RGB color is 0 to 16,777,215
(&HFFFFFF). Each color setting (property or argument) is a 4-byte integer.
The high byte of a number in this range equals 0. The lower 3 bytes, from
least to most significant byte, determine the amount of red, green, and
blue, respectively. The red, green, and blue components are each
represented by a number between 0 and 255 (&HFF). In Visual Basic you
can use the RGB(red, green, blue) function to obtain the corresponding
integer.
If you are working with applications that require the byte order to be reversed
you can use one of the following methods in VB:
color = CLng(blue + (green*&H100) + (red*&H10000))
rgb = RGB(&HFF And (color\&H10000), &HFF And (color\&H100), &HFF And color)
Redraw ()
Redraw the network repainting all elements with the current graphic options.
Example
Dim vissim As Vissim
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
vissim.Graphics.Redraw
SetWindow ([in] BSTR WinName, [in] VARIANT Top, [in] VARIANT Left,
[in] VARIANT Bottom, [in] VARIANT Right, ,m[in, defaultvalue(0)] long
ID)
Set the position of the window specified with the name attribute WinName
and the optional ID number. The dimensions are given in screen coordinates
that are relative to the upper-left corner of the screen.
Parameters
[in] BSTR Attribute : Window name (see table below)
[in] VARIANT Top : the screen coordinate of the top edge
[in] VARIANT Left : the screen coordinate of the left edge
[in] VARIANT Bottom : the screen coordinate of the bottom edge
[in] VARIANT Right : the screen coordinate of the right edge
[in] long ID : Optional window ID number (see table below)
Example
SET gr = vissim.Graphics
gr.SetWindow “SIGNALTT”, 800, 1000, 900, 1100, 1
WinName ID Description
NETWORK - Currently the main window
SCDETRECORD SC Identifier number Signal Control Detector Record
window of the ID signal
controller.
SIGNALTT SC Identifier number Signal Times Table window of
the ID signal controller.
3.8.2 Presentation
The Presentation object belongs to Vissim Vissim
and can be accessed through the property
Presentation of the IVissim interface. It
allows to record and control presentations. Presentation
Example
DIM vissim AS Vissim
DIM present AS Presentation
SET vissim = NEW Vissim
SET present = vissim.Presentation
Attribute outline :
R W Attribute Description
9 9 BACKWARDS Backwards animation.
9 9 FORWARDS Forwards animation.
9 NINTERVALS Return the number of recorded time intervals
9 9 RECORDING Recording the animation during a simulation.
9 TIMEFROM Time intervals start [s]. Parameter: interval time
order (1..n)
9 TIMEUNTIL Time intervals end [s]. Parameter: interval time
order (1..n)
Currently the name for the animation file (*.ani) will be the same as the
name of the*.inp file. When recording, if this exists it will be overwritten.
Also, it is required to set the recording attribute previous to the simulation
start. If enabled the animation of the whole network will be recorded until
simulation stop.
RunContinuous
Start or continues (if coming changing from single step mode) a presentation
in continuous mode using the *.ani file named as the *.inp file. If a
presentation is currently running it will be stopped before.
Example
present.RunContinuous
RunSingleStep
Execute a single presentation time step. It starts a presentation if no
presentation is yet running. Uses the *.ani file named as the *.inp file.
Example
present.RunSingleStep
Stop
Stop a presentation. If no presentation is running this command is ignored.
Example
present.Stop
3.8.3 StaticObjects
The StaticObjects object is Net
a collection of StaticObject
objects (see page 185). It
belongs to the Net object StaticObjects StaticObject
and can be accessed
through the StaticObjects
property of the INet
interface.
It contains all 3D static obejcts of the loaded network and allows the iteration
through all of them as well as individual access (see also StaticObject
object).
Example
Instantiation of a StaticObjects object and access to all its StaticObject
objects:
DIM vissim As Vissim
DIM stobjs As StaticObjects
DIM stobj As StaticObject
SET vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
SET stobjs = Vissim.Net.StaticObjects
FOR EACH stobj IN stobjs ‘access to _NewEnum to create an enumeration
…
NEXT stobj
‘or also:
FOR i = 1 TO stobjs.Count
SET stobj = stobjs(i) ‘or stobjs.Item(i)
…
NEXT i
3.8.4 StaticObject
A StaticObject object represents a StaticObjects StaticObject
static object element and belongs to
the StaticObjects object. It can be
accessed through the StaticObjects
object to in two ways:
► access via iteration through the collection
DIM stobj As StaticObject
FOR EACH stobj IN vissim.Net.StaticObjects
List.AddItem stobj.ID
NEXT stobj
► individual access via identifier
DIM stobj As StaticObject
SET stobj = vissim.Net.StaticObjects.GetStaticObjectByName (“Biz-Man_suit.v3d”)
The StaticObject object enables access to the properties of the static object
through the IStaticObject interface.
Example
name = stobj.Name
Attribute outline
R W Attribute Description
9 ID Identifier number
9 NAME Name
9 NSTATES Number of possible 3D model states of the object.
9 POSITION World coordinates of the object position on the
network
9 9 STATE Current object 3D model state.
3.9 Results
3.9.1 Evaluation
The Evaluation object belongs to Vissim and Vissim
can be accessed through the property
Evaluation of the IVissim interface. It gives
access to the simulation evaluation options. Evaluation
These options are globally used for the
Vissim instance and affect all networks and
simulations during its existence. No set of
default evaluation options is used for the
creation of a new instance. Use the IVissim
method LoadLayout to load a stored set of
evaluations.
Example
DIM vissim AS Vissim
DIM eval AS Evaluation
SET vissim = NEW Vissim
SET eval = vissim.Evaluation
enabled = eval.AttValue(„VEHICLERECORD“)
Attribute outline
R W Attribute Description
9 9 ANALYZER Analyzer database (True/False)
9 9 CONVERGENCE Convergence evaluations (True/False)
9 9 DATACOLLECTION Data collections (True/False)
9 9 DELAY Delays (True/False)
9 9 EXPORT Export evaluations (True/False)
9 9 GREENTIMES Distance of Green times (True/False)
9 9 LANECHANGE Lane change evaluations (True/False)
9 9 LINK Link segment evaluations (True/False)
9 9 NETPERFORMANCE Net performance evaluations (True/False)
9 9 NODE Node evaluations (True/False)
9 9 PATHS Dynamic assignment path evaluations
(True/False)
9 9 PUBLICWAITTIME Bus/Tram waiting time (True/False)
9 9 OBSERVER Observer evaluations (True/False)
9 9 QUEUECOUNTER Queue counter (True/False)
9 9 SCDETRECORD Signal changes/Detector record
(True/False)
9 9 SIGNALCHANGES Signal changes protocol (True/False)
9 9 SPECIAL Special evaluations (True/False)
9 9 TRAVELTIME Travel times (True/False)
9 9 VEHICLEINPUT Vehicle inputs (True/False)
9 9 VEHICLERECORD Vehicle record (True/False)
3.9.2 AnalyzerEvaluation
This object allows the Evaluation AnalyzerEvaluation
configuration of analyzer
evaluations through the
methods and properties of
the IAnalyzerEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
ANALYZER of the IEvaluation interface on page 182).
Attribute outline
R W Attribute Description
9 9 FILE Write evaluation file flag (true/false)
Setting the FILE attribute to FALSE avoids writing the *.MDB database
evaluation file while collecting evaluation data (if Analyzer evaluation is
activated) for possible online requests. This attribute is specific to the COM
interface and is global to the VISSIM program (i.e. it will preserve its state
independently from the loaded *.INP file).
3.9.3 DataCollections
The DataCollections Net
object is a collection of
DataCollection objects
DataCollections DataCollection
(see page 189). It
belongs to the Net
object and can be
accessed through the
DataCollections
property of the INet
interface.
It contains all currently defined data collection measurements of the loaded
network and enables iteration through the collection or individual access to a
DataCollection object.
Example
Instantiation of a DataCollections object and access to all its DataCollection
objects:
Dim vissim As Vissim
Dim datacollections As DataCollections
Dim datacollection As DataCollection
Set vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set datacollections = Vissim.Net.DataCollections
FOR EACH datacollection IN datacollections ‘access to _NewEnum
…
NEXT datacollection
‘or also:
FOR i = 1 TO datacollections.Count
SET datacollection = datacollections(i) ‘or datacollections.Item(i)
…
NEXT i
3.9.4 DataCollection
A DataCollection object represents a DataCollections DataColection
data collection measurement (defined
through the configuration of Data
collection for Offline Analysis) and
belongs to the DataCollections object.
It can be accessed through the DataCollections object to in two ways:
► access via iteration through the collection
DIM datacollection As DataCollection
FOR EACH datacollection IN vissim.Net.DataCollections
List.AddItem datacollection.ID
NEXT datacollection
► individual access via identifier
DIM datacollection As DataCollection
SET datacollection = vissim.Net.DataCollections.GetDataCollectionByNumber (101)
The DataCollection object enables access to the properties of the data
collection through the IDataCollection interface.
datacollection.Name = „Friedhofeingang“
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
9 VEHICLEIDS Array of the current reported vehicle IDs within the
interval.
VEHICLEIDS refers always to the data collected during the last completed
time interval.
Parameters outline
Parameter Description
ACCELERATION Acceleration [m/s2] [ft/s2]. MIN, MAX, MEAN,
FREQUENCIES
LENGTH Vehicle length [m] [ft]. MIN, MAX, MEAN,
FREQUENCIES
MOTORTEMPERATURE Cooling water temperature [°C]. MIN, MAX,
MEAN, FREQUENCIES
NVEHICLES Number of vehicles. SUM
NPERSONS Number of people. MIN, MAX, MEAN, SUM,
FREQUENCIES
OCCUPANCYRATE Occupancy rate [%]. SUM
QUEUEDELTIME Total queue delay time [s]. MIN, MAX, MEAN,
SUM, FREQUENCIES
SPEED Speed [km/h] [mph]. MIN, MAX, MEAN,
FREQUENCIES
TACHO Total distance traveled in the network [m] [ft].
MIN, MAX, MEAN, FREQUENCIES
Functions outline
Function Description
MIN Maximum value
MAX Minimum value
MEAN Mean value
SUM Total sum
FREQUENCIES All configured frequencies in an array
3.9.5 DataCollectionEvaluation
This object allows the Evaluation DatatCollectionEvaluation
configuration of data
collection evaluations
through the methods and
properties of the IData-
CollectionEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
DATACOLLECTION of the IEvaluation interface on page 182) and online
evaluations are possible through the method GetResult() of the
IDataCollection interface.
Attribute outline
R W Attribute Description
9 9 COMPILED Write the flag for compiled output (true/false)
9 9 FILE Write evaluation file flag (true/false)
9 9 RAW Write the flag for raw data output (true/false)
Setting the FILE attribute to FALSE avoids writing the *.MES and *.MER
evaluation files while collecting evaluation data (if data collection evaluation
is activated) for possible online requests. This attribute is specific to the
COM interface and is global to the VISSIM program (i.e. it will preserve its
state independently from the loaded *.INP file).
3.9.6 Delays
The Delays object is a Net
collection of Delay
objects (see page
Delays Delay
212). It belongs to the
Net object and can be
accessed through the
Delays property of the
INet interface.
It contains all currently defined delay measurements of the loaded network
(during a simulation run including the temporary ones created for node
evaluation) and enables iteration through the collection or individual access
to a Delay object.
Example
Instantiation of a Delays object and access to all its Delay objects:
Dim vissim As Vissim
Dim delays As Delays
Dim delay As Delay
Set vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
‘or also:
FOR i = 1 TO delays.Count
SET delay = delays (i) ‘or delays.Item(i)
…
NEXT i
3.9.7 Delay
A Delay object represents a delay Delays Delay
measurement element and belongs to
the Delays object. It can be accessed
through the Delays object to in two
ways:
► access via iteration through the collection
DIM delay As Delay
FOR EACH delay IN vissim.Net.Delays
List.AddItem delay.ID
NEXT delay
► individual access via identifier
DIM delay As Delay
SET delay = vissim.Net. Delays.GetDelayByNumber (123)
The Delay object enables access to the properties of the delay through the
IDelay interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
GetResult ([in] double Time, [in] BSTR Parameter, [in] BSTR Function,
[in] long VehicleClass, [out, retval] VARIANT *pValue)
This method returns the collected result for the requested named parameter
(see parameters table below) and vehicle class. The returned value refers to
the data collected up to this moment for the time interval enclosing the
specified time point. The Function parameter has currently no meaning.
Parameters
[in] double Time : Time point in seconds
[in] BSTR Parameter : parameter name (see below)
[in] BSTR Function : not used
[in] long VehicleClass: vehicle class number. 0 for all vehicle types
[out, retval] VARIANT *pValue: returned value (real number)
Example
delay = delay.GetResult(600, „DELAY“,””, 0) ‘average total delay per vehicle
delay = delay.GetResult(600, „DELAY“,””, 1) ‘average total delay per vehicle for class 1
Parameters outline
Parameter Description
DELAY Average total delay per vehicle [s]
PERSONS Average total delay per person [s]
NPERSONS Persons throughput
NVEHICLES Vehicles throughput
NSTOPS Average number of stops per vehicle [s]
STOPPEDDELAY Average stand still time per vehicle [s]
To get results, the Offline Analysis option for delays must be enabled.
Otherwise the result will be 0.0.
Data for each defined vehicle class can be requested even if the vehicle
class is not selected for the delay measurement.
3.9.8 DelayEvaluation
This object allows the Evaluation DelayEvaluation
configuration of delay
evaluations through the
methods and properties of
the IDelayEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
DELAY of the IEvaluation interface on page 182).
Attribute outline
R W Attribute Description
9 9 COMPILED Write the flag for compiled output (true/false)
9 9 FILE Write evaluation file flag (true/false)
9 9 RAW Write the flag for raw data output (true/false)
Setting the FILE attribute to FALSE avoids writing the *.VLZ and *.VLR
evaluation files while collecting evaluation data (if delay evaluation is
activated) for possible online requests. This attribute is specific to the COM
interface and is global to the VISSIM program (i.e. it will preserve its state
independently from the loaded *.INP file).
3.9.9 LinkEvaluation
This object allows the configuration of Evaluation LinkEvaluation
link evaluations through the methods
and properties of the ILinkEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
LINK of the IEvaluation interface on page 182) and online evaluations are
possible through the method GetSegmentResult() of the ILink interface (refer
to page 51).
Example
Loading an existing link evaluation configuration (*.sak):
DIM linkeval As LinkEvaluation
SET linkeval = vissim.Evaluation.LinkEvaluation
linkeval.LoadConfiguration(“c:\vissim\daten\example.sak”)
Attribute outline
R W Attribute Description
9 9 DATABASE Database flag
9 9 EXPORT Export to VISUM
9 9 FILE Write evaluation file flag (true/false)
R W Attribute Description
9 9 FILENAME Path and filename for the configuration file
9 9 FROM First second
9 9 INTERVAL Data collection interval
9 9 PERLANE Separate Data collection for each lane
9 9 TABLENAME Database name
9 9 UNTIL Last second
Setting the FILE attribute to FALSE avoids writing the *.STR evaluation file
while collecting evaluation data (if link segment evaluation is activated) for
possible online requests. This attribute is specific to the COM interface and
is global to the VISSIM program (i.e. it will preserve its state independently
from the loaded *.INP file).
Parameter outline
R W Parameter Description
9 9 TIMESTEP Simulation time step [s]
9 9 SPEED Average speed [km/h] or [mph]
9 9 VOLUME Average volume [veh/h]
9 9 NVEHICLES Cumulated number of vehicles
9 9 DENSITY Average density [veh/km]
9 9 DELAY Relative lost time [s/s]
3.9.10 NodeEvaluation
This object allows the Evaluation NodeEvaluation
configuration of node
evaluations through the
methods and properties of
the INodeEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
NODE of the IEvaluation interface on page 182).
Attribute outline
R W Attribute Description
9 9 FILE Write evaluation file flag (true/false)
Setting the FILE attribute to FALSE avoids writing the *.KNA evaluation file
while collecting evaluation data (if node evaluation is activated) for possible
online requests. This attribute is specific to the COM interface and is global
to the VISSIM program (i.e. it will preserve its state independently from the
loaded *.INP file).
3.9.11 QueueCounters
The QueueCounters Net
object is a collection of
QueueCounter objects
QueueCounters QueueCounter
(see page 204). It
belongs to the Net
object and can be
accessed through the
QueueCounters
property of the INet
interface.
It contains all currently defined queue counters of the loaded network (during
a simulation run including the temporary ones created for node evaluation)
and enables iteration through the collection or individual access to a
QueueCounter object.
Example
Instantiation of a QueueCounters object and access to all its QueueCounter
objects:
Dim vissim As Vissim
Dim queuecounters As QueueCounters
Dim queuecounter As QueueCounter
Set vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set queuecounters = Vissim.Net.QueueCounters
FOR EACH queuecounter IN queuecounters ‘access to _NewEnum
…
NEXT queuecounter
‘or also:
FOR i = 1 TO queuecounters.Count
SET queuecounter = queuecounters (i) ‘or queuecounters.Item(i)
…
NEXT i
can use the statement FOR EACH…NEXT without using the property
_NewEnum, which VB calls internally (see QueueCounters example above).
Parameters
[out, retval] LPUNKNOWN *ppEnum : returned Enumeration
3.9.12 QueueCounter
A QueueCounter object represents a QueueCounters QueueCounter
queue counter element and belongs
to the QueueCounters object. It can
be accessed through the
QueueCounters object to in two ways:
Example
name = queuecounter.AttValue(„NAME“)
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
Parameters outline
Parameter Description
MEAN Average queue length ([m] or [ft], depending on current unit
selection)
MAX Maximum queue length ([m] or [ft], depending on current unit
selection)
Parameter Description
NSTOPS Number of stops in the queue area
To get results, the Offline Analysis option for queue counters must be
enabled. Otherwise the result will be 0.0.
3.9.13 QueueCounterEvaluation
This object allows the Evaluation QueueCounterEvaluation
configuration of queue
counter evaluations
through the methods and
properties of the
IQueueCounterEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
QUEUECOUNTER of the IEvaluation interface on page 182). and online
evaluations are possible through the method GetResult() of the
IQueueCounter interface.
Attribute outline
R W Attribute Description
9 9 FILE Write evaluation file flag (true/false)
Setting the FILE attribute to FALSE avoids writing the *.STZ evaluation file
while collecting evaluation data (if queue counter evaluation is activated)
for possible online requests. This attribute is specific to the COM interface
and is global to the VISSIM program (i.e. it will preserve its state
independently from the loaded *.INP file).
3.9.14 TravelTimes
The TravelTimes Net
object is a collection of
TravelTime objects
TravelTimes TravelTime
(see page 210). It
belongs to the Net
object and can be
accessed through the
TravelTimes property
of the INet interface.
It contains all currently defined travel time measurements of the loaded
network (during a simulation run including the temporary ones created for
node evaluation) and enables iteration through the collection or individual
access to a TravelTime object.
Example
Instantiation of a TravelTimes object and access to all its TravelTime
objects:
Dim vissim As Vissim
Dim traveltimes As TravelTimes
Dim traveltime As TravelTime
Set vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set traveltimes = Vissim.Net.TravelTimes
FOR EACH traveltime IN traveltimes ‘access to _NewEnum
…
NEXT traveltime
‘or also:
FOR i = 1 TO traveltimes.Count
SET traveltime = traveltimes (i) ‘or traveltimes.Item(i)
…
NEXT i
Parameters
[in] long Number : identifier number
[out, retval] ITravelTime **ppTT : returned TravelTime object
Example
DIM tt AS TravelTime
SET tt = TravelTimes.GetTravelTimeByNumber (123)
3.9.15 TravelTime
A TravelTime object represents a TravelTimes TravelTime
travel time measurement element and
belongs to the TravelTimes object. It
can be accessed through the
TravelTimes object to in two ways:
► access via iteration through the collection
DIM traveltime As TravelTime
FOR EACH traveltime IN vissim.Net.TravelTimes
List.AddItem traveltime.ID
NEXT traveltime
► individual access via identifier
DIM traveltime As TravelTime
SET traveltime = vissim.Net. TravelTimes.GetTravelTimeByNumber (123)
The TravelTime object enables access to the properties of the travel time
measurement through the ITravelTime interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
GetResult ([in] double Time, [in] BSTR Parameter, [in] BSTR Function,
[in] long VehicleClass, [out, retval] VARIANT *pValue)
This method returns the collected result for the requested named parameter
(see parameters table below) and vehicle class. The returned value refers to
the data collected up to this moment for the time interval enclosing the
specified time point (it includes only travel times of vehicles that have
already passed the travel time destination section). The Function parameter
has currently no meaning.
Parameters
[in] double Time : Time point in seconds
[in] BSTR Parameter : parameter name (see below)
[in] BSTR Function : not used
[in] long VehicleClass: vehicle class number. 0 for all vehicle types
[out, retval] VARIANT *pValue: returned value (real number)
Example
nv = traveltime.GetResult(600, „NVEHICLES“, “”, 0) ‘vehicle throughput
tt = traveltime.GetResult(600, “TRAVELTIME”, “”, 1) ‘travel time for vehicles of class 1
Parameters outline
Parameter Description
NVEHICLES Vehicle throughput (numbe of vehicle measured)
TRAVELTIME Travel time [s]
To get results, the Offline Analysis option for travel times must be enabled.
Otherwise the result will be 0.0.
Data for each defined vehicle class can be requested even if the vehicle
class is not selected for the travel time measurement.
3.9.16 TravelTimeEvaluation
This object allows the Evaluation TravelTimeEvaluation
configuration of travel time
evaluations through the
methods and properties of
the ITravelTimeEvaluation
interface.
Offline evaluations are possible setting the appropriated flag (see attribute
TRAVELTIME of the IEvaluation interface on page 182).
writtingfile = tteval.AttValue(„FILE“)
Attribute outline
R W Attribute Description
9 9 COMPILED Write the flag for compiled output (true/false)
9 9 FILE Write evaluation file flag (true/false)
9 9 RAW Write the flag for raw data output (true/false)
Setting the FILE attribute to FALSE avoids writing the *.RSZ and *.RSR
evaluation files while collecting evaluation data (if travel time evaluation is
activated) for possible online requests. This attribute is specific to the COM
interface and is global to the VISSIM program (i.e. it will preserve its state
independently from the loaded *.INP file).
3.9.17 PedTravelTimes
The PedTravelTimes object is Net
a collection of PedTravelTime
objects (see page 210). It PedTravelTimes PedTravelTime
belongs to the Net object and
can be accessed through the
PedTravelTimes property of
the INet interface.
It contains all currently defined pedestrian travel time measurements of the
loaded network (during a simulation run including the temporary ones
created for node evaluation) and enables iteration through the collection or
individual access to a PedTravelTime object.
Example
Instantiation of a PedTravelTimes object and access to all its PedTravelTime
objects:
Dim vissim As Vissim
Dim traveltimes As PedTravelTimes
Dim traveltime As PedTravelTime
Set vissim = NEW Vissim
vissim.LoadNet “c:\vissim\daten\example.inp”
Set traveltimes = Vissim.Net.PedTravelTimes
FOR EACH traveltime IN traveltimes ‘access to _NewEnum
…
NEXT traveltime
‘or also:
FOR i = 1 TO traveltimes.Count
SET traveltime = traveltimes (i) ‘or traveltimes.Item(i)
…
NEXT i
3.9.18 PedTravelTime
A PedTravelTime object PedTravelTimes PedTravelTime
represents a pedestrian travel
time measurement element
and belongs to the
PedTravelTimes object. It can
be accessed through the
PedTravelTimes object to in
two ways:
► access via iteration through the collection
DIM traveltime As PedTravelTime
FOR EACH traveltime IN vissim.Net.PedTravelTimes
List.AddItem traveltime.ID
NEXT traveltime
► individual access via identifier
DIM traveltime As PedTravelTime
SET traveltime = vissim.Net. PedTravelTimes.PedTravelTimeByNumber (123)
The PedTravelTime object enables access to the properties of the
pedestrian travel time measurement through the IPedTravelTime interface.
Attribute outline
R W Attribute Description
9 ID Identifier number
9 9 NAME Name
3.9.19 PedTravelTimeEvaluation
This object allows the Evaluation PedTravelTimeEvaluation
configuration of travel time
evaluations through the methods and properties of the
IPedTravelTimeEvaluation interface.
Offline evaluations are possible setting the appropriated flag (see attribute
TRAVELTIME of the IEvaluation interface on page 182).
Attribute outline
R W Attribute Description
9 9 COMPILED Write the flag for compiled output (true/false)
9 9 FILE Write evaluation file flag (true/false)
9 9 RAW Write the flag for raw data output (true/false)
Setting the FILE attribute to FALSE avoids writing the *.RSZ and *.RSR
evaluation files while collecting evaluation data (if travel time evaluation is
activated) for possible online requests. This attribute is specific to the COM
interface and is global to the VISSIM program (i.e. it will preserve its state
independently from the loaded *.INP file).
3.9.20 PedDataCollectionEvaluation
This object allows the Evaluation PedTravelTimeEvaluation
PedDataCollectionEvaluation
configuration of data
collection
evaluations through the methods and properties of the
IPedDataCollectionEvaluation interface.
Offline evaluations are possible setting the appropriated flag (see attribute
DATACOLLECTION of the IEvaluation interface on page 182).
Attribute outline
R W Attribute Description
9 9 COMPILED Write the flag for compiled output (true/false)
9 9 FILE Write evaluation file flag (true/false)
9 9 RAW Write the flag for raw data output (true/false)
Setting the FILE attribute to FALSE avoids writing the *.MEZP and *.MERP
evaluation files while collecting evaluation data (if data collection evaluation
is activated) for possible online requests. This attribute is specific to the
COM interface and is global to the VISSIM program (i.e. it will preserve its
state independently from the loaded *.INP file).
3.9.21 PedProtocolEvaluation
This object allows the Evaluation PedTravelTimeEvaluation
PedPrptocolEvaluation
configuration of data
collection
evaluations through the methods and properties of the
IPedProtocolEvaluation interface.
Offline evaluations are possible setting the appropriated flag (see attribute
PROTOCOL of the IEvaluation interface on page 182).
Attribute outline
R W Attribute Description
9 9 TIMEFROM Write the flag to define the start time for the
evaluation
9 9 TIMEUNTIL Write the flag to define the end time for the
evaluation
9 9 RESOLUTION Write the flag to set the time resolution of the
evaluation
Setting the FILE attribute to FALSE avoids writing the *.PP evaluation files
while collecting evaluation data (if protocol evaluation is activated) for
possible online requests. This attribute is specific to the COM interface and
is global to the VISSIM program (i.e. it will preserve its state independently
from the loaded *.INP file).
3.10.1 TriggeredScripting
The TriggeredScripting Vissim TriggeredScripting
object belongs to Vissim
and can be accessed through the property TriggeredScripting of the IVissim
interface. It gives access to the configuration and information of triggered
scripts and their specific interfaces.
Example (instantiation of a TriggeredScripting object):
DIM vissim AS Vissim
DIM trigscripting AS TriggeredScripting
SET vissim = NEW Vissim
SET trigscripting = vissimm.TriggeredScripting
ManagedLanesTollCalculation([out, retval]
IManagedLanesTollCalculation** ppManagedLanesTollCalc);
Creates an instance of a ManagedLanesTollCalculation object (see page
221), that gives access to the individual properties of the triggered scripting
for the toll calculation of managed lanes.
Parameters
[out, retval] IManagedLanesTollCalculation ** ppManagedLanesTollCalc: returned object
Example
DIM managlaneTollCalc AS ManagedLanesTollCalculation
SET managlaneTollCalc = trigscripting.ManagedLanesTollCalculation
3.10.2 ManagedLanesTollCalculation
TriggeredScripting ManagedLanesTollCalculation
4 COM Access
All VISSIM COM interfaces support automation – they are based on the
Microsoft standard interface IDispatch. Automation interfaces disclose the
COM objects allowing the use of generic programming environments like
Visual Basic or Script languages like Visual Basic Script (VBScript) or Java
Script (JScript).
With an active reference to the COM type information, Visual Basic is able to
list the possible object declarations and method calls during code editing:
Dim vissim As Vissim
Dim net As Net
Identifying the class name also provides Auto
List Member functionality. Each time you enter
the object variable name, you get the drop-
down list of the properties and methods
exposed by the object:
4.1.3 Arrays
Another language element for object sequences is the array. In the context
of the VISSIM COM server an array is a fixed n-dimensional sequence of
indexed elements. These elements can be VISSIM objects or Visual Basic
types and are encapsulated by a VARIANT type. The array type returned for
some of the VISSIM object methods conforms to automation and allows the
use of the Visual Basic array functionality as LBOUND and UBOUND to
ensure safe access within the array limits. To know which method returns or
needs an array as a parameter, refer to the respective specification in this
document. For example: to access to the link geometry the AttValue together
with the named attribute “POINTS” can be used. This attribute returns an
array of world xy-coordinates:
DIM polyline() ´array of VARIANT
polyline = link.AttValue(„POINTS“)
FOR i = LBOUND(polyline) TO UBOUND(polyline)
x = polyline (i).X
y = polyline (i).Y
NEXT i
Results from a data collection point (like speed or accelerations) will be
returned in a two dimensional array:
res = datacollection.GetResult(„ACCELERATION“, „FREQUENCIES“) ‘2-dim array
FOR i = LBOUND(res) TO UPBOUND(res)
from = res(i, 0)
to = res(i, 1)
val = res(i, 2)
NEXT i
Methods like AddPathAsNodeSequence from the IPaths interface, need an
array as a parameter. In this case the use of the Visual Basic function Array
is suggested, which creates an array as a VARIANT from a sequence of
given parameters:
DIM path AS Path
SET path = paths.AddPathAsNodeSequence (1, Array(10, 20, 30, 40))
NodesListbox.Clear
FOR EACH link IN links
NodesListbox.AddItem link.ID
NEXT link
excpetion:
MsgBox Err.Description ‘ use here the created Err object
END SUB
The error-handling routine – a section of code marked by a label, here
“exception” – should test or save relevant property values of the Err object
before any other error can occur or before a procedure that might cause an
error is called. The property values of the Err object reflect only the most
recent error. The error message associated with the property Err.Number is
contained in property Err.Description. See the annex on page 252 for a
summary of all error messages of the VISSIM server.
Other possible error handling mechanisms of Visual Basic are the On Error
Resume Next and On Error Goto 0. Refer to the VB manual for more details.
VB uses its own object services (and the referenced type library information)
when you use the NEW keyword either on the declaration or in the SET
statement. VB uses COM (with the register information) if you use the
CreateObject function (a reference to the VISSIM COM server type library is
not necessary in this case). This distinction can make a difference in how
you can develop your application and how it executes.
Furthermore it is possible to create an instance of a Vissim object class
remotely using the optional parameter of CreateObject:
‘ 3) creation through the register information of a remote machine
DIM v AS Object
SET v = CreateObject(“VISSIM.Vissim”, “MyServer”) ‘ name or IP address
Please refer to the remote access chapter on page 249 for details.
When using early binding a reference to the VISSIM COM server type
library must be set within the VB programming environment. This can
cause some conflicts when installing newer versions of VISSIM, which
could have modified the type library. Unselecting and selecting again the
reference to the VISSIM COM server forces VB to reinterpret the type
library. Please refer to the annex “Tips and hints” on page 259 for details
about VISSIM versions and its COM server interface.
4.2.3 Arrays
The Automation type for arrays is the SAFEARRAY. A SAFEARRAY is a
self-descriptive, multidimensional vector type. It was introduced originally by
Visual Basic and therefore this type is identical to the Visusal Basic array. In
C++ it is necessary some help to deal with them. We purpose here two
possibilites to deal with SAFEARRAYS with C++: 1) using API functions and
2) using the Active Template Library ATL wrappers (starting at version ATL
7.0).
The use of the API function SafeArrayCreate() is somehow more tediuos and
implies more lines of code. For example to create an arry containing
long ids[] = {1, 2, 5, 11, 3, 7};
VARIANT var;
VariantInit(&var);
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
long rgindice[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = sizeof ids / sizeof *ids;
psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
for (long i = 0; i < sizeof ids / sizeof *ids; i++) {
rgindice[0] = i;
var.lVal = ids[i];
var.vt = VT_I4;
SafeArrayPutElement(psa, rgindice, &var);
}
var.parray = psa;
var.vt = VT_ARRAY | VT_VARIANT;
spPaths->AddPathAsNodeSequence(1, var);
The available SAFEARRAY wrapper classe introduced in ATL7
CComSafeArray<T>, simplify the construction and access:
CComSafeArray<VARIANT> array(sizeof ids / sizeof *ids);
for (long i = 0; i < sizeof ids / sizeof *ids; i++) {
array.SetAt(i, CComVariant(ids[i]));
}
spPaths->AddPathAsNodeSequence(1, CComVariant(array));
pEI->GetDescription (&description);
}
}
cout << "Client: Calling CoUninitialize()" << endl;
CoUninitialize ();
return 0;
}
vis.LoadNet(“example.inp")
sim = vis.Simulation
sim.RunContinuous()
Please, refer to the chapter “Upgrading from Visual Basic 6.0” of the MSDN
for a description of the differences between the Visual Basic and Visual
Basic .NET.
using VISSIM_COMSERVERLib;
System.Console.WriteLine("Hello, World!");
}
}
Please, refer to the chapter “Upgrading from Visual J++ 6.0” of the MSDN
for a description of the differences between the Visual J++ and Visual J#.
4.3.2 Arrays
The corresponding .NET Framework built-in type for the COM Automation
type VARIANT is the System.Object type. Because array in VISSIM are
passed as VARIANTs and the managed arrays of the .NET Framework are
System.Objects, we can use directly the managed array operator __gc[ ] to
construct array for VISSIM. Methods like AddPathAsNodeSequence() from
the IPaths interface, need and array of VARIANTs therefore we need also to
encapsulate the values on System.Objects. For this purpose we use the
keyword __box:
System::Object* array __gc[] = {__box(1), __box(2), __box(5), __box(7)};
pPaths->AddPathAsNodeSequence(1, array);
The variable array is here a managed array of System.Objects which will be
passed as an Object itself and marshaled by default into a VARIANT.
Similarly in Visual Basic .Net it would be:
Dim array() As Object = {1, 2, 5, 11, 3, 7}
paths.AddPathAsNodeSequence(1, array)
4.3.3 Events
Some objects of the VISSIM COM Server (see the description of the
DynmamicAssignment on page 182 for an example) sent events to the
client. To consume an event in a client application, you must provide an
event handler (an event-handling method) that executes program logic in
response to the event and register the event handler with the event source.
The WithEvents statement and the Handles clause provide a declarative way
of specifying event handlers. Events raised by an object declared with the
WithEvents keyword can be handled by any procedure with a Handles
statement for that event. The following Visual Basic .NET code illustrates
how to do this, taking the example of the DynamicAssignment object and its
event EdgeSmoothing:
Dim WithEvents dyn As DynamicAssignemnt
Private Function dyn_EventHandler(ByVal a As Double, ByVal b As Double) As Double Handles
dyn.EdgeSmoothing
Return (1.0# - 1.0# / nIt) * a + 1.0# / nIt * b
End Function
The EdgeSmoothing events raised by the obejct dyn will be handled by the
function dyn_EventHandler.
sim.runContinuous();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Please refer to the documentation of the used Java-COM bridge for the use
of Automations types.
4.5 Delphi
Similary to Microsoft Visual Studio, the Borland Developer Studio Delphi
offers also the possibility to import a Type Library. This chapter introduces
briefly to the use of the VISSIM COM interface using Delphi 2006 and with
an example using Object Pascal.
1. From the Delphi IDE select the Import Component submenu form the
Component Menu.
2. Select “Import a Type Library”.
3. Select the VISSIMCOM_Server library from the registered Type Libraries
list and click “Next >>”
the path for the unit file to be generated. This file is named
VISSIM_COMSERVERLib_TLB.pas.
Example
The following code illustrates the use of the COM interface in Object Pascal.
Note that the unit “VISSIM_COMSERVERLib_TLB” is included in the uses
list:
unit VISSIMCOM_Delphi;
interface
uses
Windows, Messages , SysUtils, Variants, Classes, VISSIMCOMSERVERLib_TLB;
implementation
procedure start;
var
intfVISSIM : TVissim;
intfSIMULATION : TSimulation
begin
intfVISSIM := TVissim.Create(Self);
intfSIMULATION := intfVISSIM.Simulation;
intfSIMULATION.RunContinuous;
intfVISSIM.Exit;
intfVISSIM.Free;
end;
end.
Some issues must be taken in account when accessing the VISSIM COM
Server from a client on a remote machine. First of all, VISSIM must be
registered on the server machine as usual (see page 11 about registration).
Second, launch and access permissions must be properly set in order to
allow the client’s identification to run and use the registered VISSIM COM
server.
In order to configure the security matters the DCOMCNFG.EXE is suggested
(please refer to the Windows documentation for the use of this tool). This
tool allows mainly to set properly the necessary permissions flags for the
authentication level, the launch permission and the access permission. It
also allows you to select the identity (or the RunAs register) for the server
process 1) interactive user, 2) launching user and 3) a specific user:
If you choose interactive user, you're commanding COM to assign the server
process the identity of the person logged in at the server console -the
"interactive user"- when a launch occurs. Interactive is the only option that
permits to start VISSIM normally with its GUI. But it can't be launched if
there's no one logged in on the server -that is, if there is no interactive user.
The launching user simply tells COM to assign the server process the
identity of the remote client process that did the launching. This enables the
process to launch even if no interactive user is logged in, which means that
the VISSIM will work in underground mode without a GUI.
The "This user" option sets up a special user account for each server to run
under. If a COM server is configured to run as Vissim Object, and if Vissim
Object is a valid account on the server, then when launched, the remote
server process is assigned the identity of Vissim Object. It matters not who's
logged in on the server (or if anyone is logged in at all) or who launched the
process.
6.4 Registry
The Windows Registry plays a central role during the creation and use of
COM objects. The VISSIM COM Server must be appropriately registered
before a client can use some of its interfaces (see chapter 1.1 License and
Registration on page 11 on how to do this registration).
Different types of information are registered in the system for the use of the
VISSIM COM Server. The following detailed list of entries can be used to
check the correctness of the registration, when necessary (For notational
convenience HKEY_CLASSES_ROOT will be abbreviated to HKCR):
ProgID
[HKEY_CLASSES_ROOT\VISSIM.Vissim]
@="Vissim Class"
[HKEY_CLASSES_ROOT\VISSIM.Vissim\CLSID]
@="{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}"
[HKEY_CLASSES_ROOT\VISSIM.Vissim\CurVer]
@="VISSIM.Vissim.500"
[HKEY_CLASSES_ROOT\VISSIM.Vissim.500]
@="Vissim Class"
[HKEY_CLASSES_ROOT\VISSIM.Vissim.500\CLSID]
@="{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}"
AppID
[HKEY_CLASSES_ROOT\AppID\{79C4AA74-E6DB-4727-B5A9-2E6D16917263}]
@="VISSIM_COMServer"
[HKEY_CLASSES_ROOT\AppID\VISSIM_COMServer.EXE]
"AppID"="{79C4AA74-E6DB-4727-B5A9-2E6D16917263}"
Type library ID
[HKEY_CLASSES_ROOT\TypeLib\{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}]
[HKEY_CLASSES_ROOT\TypeLib\{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}\1.0]
@="VISSIM_COMServer 1.0 Type Library"
[HKEY_CLASSES_ROOT\TypeLib\{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}\1.0\0]
[HKEY_CLASSES_ROOT\TypeLib\{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}\1.0\0\win32]
@="C:\Programme\PTV_Vision\VISSIM\Exe\VISSIM.exe"
[HKEY_CLASSES_ROOT\TypeLib\{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}\1.0\FLAGS]
@="0"
[HKEY_CLASSES_ROOT\TypeLib\{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}\1.0\HELPDIR]
@="C:\Programme\PTV_Vision\VISSIM\Exe\VISSIM.exe"
VISSIM class object ID
[HKCR\CLSID\{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}]
@="Vissim Class"
"AppID"="{79C4AA74-E6DB-4727-B5A9-2E6D16917263}"
[HKCR\CLSID\{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}\LocalServer32]
@="C:\Programme\PTV_Vision\VISSIM\Exe\VISSIM.exe"
[HKCR\CLSID\{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}\ProgID]
@="VISSIM.Vissim.500"
[HKCR\CLSID\{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}\Programmable]
[HKCR\CLSID\{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}\TypeLib]
@="{0B9A4ADC-F3E4-4513-A129-9F0983C149E9}"
[HKCR\CLSID\{2FFFE6E8-47C1-4ad4-97ED-C8E284C9B806}\VersionIndependentProgID]
@="VISSIM.Vissim"