Skip to content

Route

Type ISIAPIRoute · Interface
Namespace SIDRASolutions.SI.API
Assembly SIDRASolutions.SI.API.dll
COM CLSID 86BE04E8-CC7C-4EFA-BCF2-75F768B58D78

Declaration

[Guid("86BE04E8-CC7C-4EFA-BCF2-75F768B58D78")]
public interface ISIAPIRoute

Members

Properties

Property Type Summary
Name string
RouteID string
Position int The Route Position in the Network's Routes collection. It is a zero-base integer.
Title string
LOSMethod int Network Level of Service Method
RouteSummaryOption int Route Summary Output Option
IsIncludedInOutputNetworkByRoutes bool
IsIncludedInSignalOffsetCal bool
SignalOffsetPriority int The priority of the Route in the Signal Offset Calculation.
SignalOffsetMethod int The method of this Route for the program calculation of Signal Offsets
SignalOffsetCalMCClass int Movement Class in this Route for the program calculation of Signal Offsets
Created_date DateTime
Created_by string
Created_by_company string
Created_version string
Modified_date DateTime
Modified_by string
Modified_by_company string
Modified_version string
RouteNwSites ISIAPIRouteNwSites Collection of Network Sites in the Route
Network ISIAPINetwork
OutputRoute ISIAPIOutputNetwork Route Output Data, this data structure is same as the OutputNetwork but it is a different set of output data.
LastErrorMessage string
IsIncludedInProjectSummary bool
Is_time_distance_reverse_included bool
Time_distance_direction int Main Route Direction in the Time-Distance Display
RouteMCs ISIAPIRouteMCs
ShowSecondaryPlatoons bool

Methods

Method Returns Summary
AddRouteNwSite(ISIAPINetworkSite, int, int) ISIAPIRouteNwSite Add a Network Site to the Route to build the path of the Route.
CheckIsValidForSignalOffsetCalc() bool
UpdateModifiedInfo() bool Update the Last Modified Information, such as Date, User Name, Organisation Name, Software Version Number
Process() bool Process this Route. The Network needs to be processed before Route statistics can be calculated. If the Network has not been processed, process the Network. The Routes in the Network will be processed as well. If the Route is created after the Network is processed, call this method to process this Route only.
RemoveRouteNwSite(ISIAPIRouteNwSite) bool Remove a Network Site from the Route. The Network Sites that are after this one in the Route will also be removed.
RemoveOutputData() bool Remove this Route Output data.

Properties

Name

string Name { get; set; }

Type string

Code samples
string name = route.Name;
route.Name = @"Example";
CComBSTR name;
route->get_Name(&name);
route->put_Name(CComBSTR(L"Example"));
name = route.Name
route.Name = r"Example"
$name = $route.Name
$route.Name = "Example"

RouteID

string RouteID { get; set; }

Type string

Code samples
string routeID = route.RouteID;
route.RouteID = @"id-1";
CComBSTR routeID;
route->get_RouteID(&routeID);
route->put_RouteID(CComBSTR(L"id-1"));
route_id = route.RouteID
route.RouteID = r"id-1"
$routeID = $route.RouteID
$route.RouteID = "id-1"

Position

The Route Position in the Network's Routes collection. It is a zero-base integer.

int Position { get; }

Type int

Code samples
int position = route.Position;
long position;
route->get_Position(&position);
position = route.Position
$position = $route.Position

Title

string Title { get; set; }

Type string

Code samples
string title = route.Title;
route.Title = @"value";
CComBSTR title;
route->get_Title(&title);
route->put_Title(CComBSTR(L"value"));
title = route.Title
route.Title = r"value"
$title = $route.Title
$route.Title = "value"

LOSMethod

Network Level of Service Method

int LOSMethod { get; set; }

Type int

Value

One of:

  • 1 - SIDRA Speed Efficiency
  • 2 - HCM 2010 Speed Efficiency
  • 3 - HCM 6 Speed Efficiency
Code samples
int lOSMethod = route.LOSMethod;
route.LOSMethod = 0;
long lOSMethod;
route->get_LOSMethod(&lOSMethod);
route->put_LOSMethod(0);
los_method = route.LOSMethod
route.LOSMethod = 0
$lOSMethod = $route.LOSMethod
$route.LOSMethod = 0

RouteSummaryOption

Route Summary Output Option

int RouteSummaryOption { get; set; }

Type int

Value

One of:

  • 1 - Movements
  • 2 - Approaches
  • 3 - Sites
Code samples
int routeSummaryOption = route.RouteSummaryOption;
route.RouteSummaryOption = 0;
long routeSummaryOption;
route->get_RouteSummaryOption(&routeSummaryOption);
route->put_RouteSummaryOption(0);
route_summary_option = route.RouteSummaryOption
route.RouteSummaryOption = 0
$routeSummaryOption = $route.RouteSummaryOption
$route.RouteSummaryOption = 0

IsIncludedInOutputNetworkByRoutes

bool IsIncludedInOutputNetworkByRoutes { get; set; }

Type bool

Code samples
bool isIncludedInOutputNetworkByRoutes = route.IsIncludedInOutputNetworkByRoutes;
route.IsIncludedInOutputNetworkByRoutes = true;
VARIANT_BOOL isIncludedInOutputNetworkByRoutes;
route->get_IsIncludedInOutputNetworkByRoutes(&isIncludedInOutputNetworkByRoutes);
route->put_IsIncludedInOutputNetworkByRoutes(VARIANT_TRUE);
is_included_in_output_network_by_routes = route.IsIncludedInOutputNetworkByRoutes
route.IsIncludedInOutputNetworkByRoutes = True
$isIncludedInOutputNetworkByRoutes = $route.IsIncludedInOutputNetworkByRoutes
$route.IsIncludedInOutputNetworkByRoutes = $true

IsIncludedInSignalOffsetCal

bool IsIncludedInSignalOffsetCal { get; set; }

Type bool

Code samples
bool isIncludedInSignalOffsetCal = route.IsIncludedInSignalOffsetCal;
route.IsIncludedInSignalOffsetCal = true;
VARIANT_BOOL isIncludedInSignalOffsetCal;
route->get_IsIncludedInSignalOffsetCal(&isIncludedInSignalOffsetCal);
route->put_IsIncludedInSignalOffsetCal(VARIANT_TRUE);
is_included_in_signal_offset_cal = route.IsIncludedInSignalOffsetCal
route.IsIncludedInSignalOffsetCal = True
$isIncludedInSignalOffsetCal = $route.IsIncludedInSignalOffsetCal
$route.IsIncludedInSignalOffsetCal = $true

SignalOffsetPriority

The priority of the Route in the Signal Offset Calculation.

int SignalOffsetPriority { get; set; }

Type int

Remarks

When Network Signal Offset Option is set to Program, i.e. SIAPINetwork.SignalOffsetOption = 0, the program will use selected Signal valid Routes to calculate the Signals Offsets. Call SIAPIRoute.CheckIsValidForSignalOffsetCalc() method to determine if the Route is valid for Signal Offset Calculation. This method will initialise the SignalOffsetPriority value. Set SIAPIRoute.IsIncludedInSignalOffsetCal = true to include the Route into the program calculation of Signal Offsets.

If the Route is not valid for the program calculation of Signals Offsets, its SignalOffsetPriority will be larger than 1000 and cannot be changed.

Code samples
int signalOffsetPriority = route.SignalOffsetPriority;
route.SignalOffsetPriority = 0;
long signalOffsetPriority;
route->get_SignalOffsetPriority(&signalOffsetPriority);
route->put_SignalOffsetPriority(0);
signal_offset_priority = route.SignalOffsetPriority
route.SignalOffsetPriority = 0
$signalOffsetPriority = $route.SignalOffsetPriority
$route.SignalOffsetPriority = 0

SignalOffsetMethod

The method of this Route for the program calculation of Signal Offsets

int SignalOffsetMethod { get; set; }

Type int

Value

One of:

  • 1 - Start of Green (Leading)
  • 2 - End of Green (Trailing)
  • 3 - Middle of Green
  • 4 - Simultaneous
Code samples
int signalOffsetMethod = route.SignalOffsetMethod;
route.SignalOffsetMethod = 0;
long signalOffsetMethod;
route->get_SignalOffsetMethod(&signalOffsetMethod);
route->put_SignalOffsetMethod(0);
signal_offset_method = route.SignalOffsetMethod
route.SignalOffsetMethod = 0
$signalOffsetMethod = $route.SignalOffsetMethod
$route.SignalOffsetMethod = 0

SignalOffsetCalMCClass

Movement Class in this Route for the program calculation of Signal Offsets

int SignalOffsetCalMCClass { get; set; }

Type int

Code samples
int signalOffsetCalMCClass = route.SignalOffsetCalMCClass;
route.SignalOffsetCalMCClass = 0;
long signalOffsetCalMCClass;
route->get_SignalOffsetCalMCClass(&signalOffsetCalMCClass);
route->put_SignalOffsetCalMCClass(0);
signal_offset_cal_mc_class = route.SignalOffsetCalMCClass
route.SignalOffsetCalMCClass = 0
$signalOffsetCalMCClass = $route.SignalOffsetCalMCClass
$route.SignalOffsetCalMCClass = 0

Created_date

DateTime Created_date { get; }

Type DateTime

Code samples
var created_date = route.Created_date;
VARIANT created_date;
route->get_Created_date(&created_date);
created_date = route.Created_date
$created_date = $route.Created_date

Created_by

string Created_by { get; }

Type string

Code samples
string created_by = route.Created_by;
CComBSTR created_by;
route->get_Created_by(&created_by);
created_by = route.Created_by
$created_by = $route.Created_by

Created_by_company

string Created_by_company { get; }

Type string

Code samples
string created_by_company = route.Created_by_company;
CComBSTR created_by_company;
route->get_Created_by_company(&created_by_company);
created_by_company = route.Created_by_company
$created_by_company = $route.Created_by_company

Created_version

string Created_version { get; }

Type string

Code samples
string created_version = route.Created_version;
CComBSTR created_version;
route->get_Created_version(&created_version);
created_version = route.Created_version
$created_version = $route.Created_version

Modified_date

DateTime Modified_date { get; }

Type DateTime

Code samples
var modified_date = route.Modified_date;
VARIANT modified_date;
route->get_Modified_date(&modified_date);
modified_date = route.Modified_date
$modified_date = $route.Modified_date

Modified_by

string Modified_by { get; }

Type string

Code samples
string modified_by = route.Modified_by;
CComBSTR modified_by;
route->get_Modified_by(&modified_by);
modified_by = route.Modified_by
$modified_by = $route.Modified_by

Modified_by_company

string Modified_by_company { get; }

Type string

Code samples
string modified_by_company = route.Modified_by_company;
CComBSTR modified_by_company;
route->get_Modified_by_company(&modified_by_company);
modified_by_company = route.Modified_by_company
$modified_by_company = $route.Modified_by_company

Modified_version

string Modified_version { get; }

Type string

Code samples
string modified_version = route.Modified_version;
CComBSTR modified_version;
route->get_Modified_version(&modified_version);
modified_version = route.Modified_version
$modified_version = $route.Modified_version

RouteNwSites

Collection of Network Sites in the Route

ISIAPIRouteNwSites RouteNwSites { get; }

Type ISIAPIRouteNwSites

Code samples
var routeNwSites = route.RouteNwSites;
CComPtr<ISIAPIRouteNwSites> routeNwSites;
route->get_RouteNwSites(&routeNwSites);
route_nw_sites = route.RouteNwSites
$routeNwSites = $route.RouteNwSites

Network

ISIAPINetwork Network { get; }

Type ISIAPINetwork

Code samples
var network = route.Network;
CComPtr<ISIAPINetwork> network;
route->get_Network(&network);
network = route.Network
$network = $route.Network

OutputRoute

Route Output Data, this data structure is same as the OutputNetwork but it is a different set of output data.

ISIAPIOutputNetwork OutputRoute { get; }

Type ISIAPIOutputNetwork

Code samples
var outputRoute = route.OutputRoute;
CComPtr<ISIAPIOutputNetwork> outputRoute;
route->get_OutputRoute(&outputRoute);
output_route = route.OutputRoute
$outputRoute = $route.OutputRoute

LastErrorMessage

string LastErrorMessage { get; }

Type string

Code samples
string lastErrorMessage = route.LastErrorMessage;
CComBSTR lastErrorMessage;
route->get_LastErrorMessage(&lastErrorMessage);
last_error_message = route.LastErrorMessage
$lastErrorMessage = $route.LastErrorMessage

IsIncludedInProjectSummary

bool IsIncludedInProjectSummary { get; set; }

Type bool

Code samples
bool isIncludedInProjectSummary = route.IsIncludedInProjectSummary;
route.IsIncludedInProjectSummary = true;
VARIANT_BOOL isIncludedInProjectSummary;
route->get_IsIncludedInProjectSummary(&isIncludedInProjectSummary);
route->put_IsIncludedInProjectSummary(VARIANT_TRUE);
is_included_in_project_summary = route.IsIncludedInProjectSummary
route.IsIncludedInProjectSummary = True
$isIncludedInProjectSummary = $route.IsIncludedInProjectSummary
$route.IsIncludedInProjectSummary = $true

Is_time_distance_reverse_included

bool Is_time_distance_reverse_included { get; set; }

Type bool

Code samples
bool is_time_distance_reverse_included = route.Is_time_distance_reverse_included;
route.Is_time_distance_reverse_included = true;
VARIANT_BOOL is_time_distance_reverse_included;
route->get_Is_time_distance_reverse_included(&is_time_distance_reverse_included);
route->put_Is_time_distance_reverse_included(VARIANT_TRUE);
is_time_distance_reverse_included = route.Is_time_distance_reverse_included
route.Is_time_distance_reverse_included = True
$is_time_distance_reverse_included = $route.Is_time_distance_reverse_included
$route.Is_time_distance_reverse_included = $true

Time_distance_direction

Main Route Direction in the Time-Distance Display

int Time_distance_direction { get; set; }

Type int

Value

One of:

  • 0 - Up (Vertical)
  • 1 - Down (Vertical)
  • 2 - Left to Right (Horizontal)
  • 3 - Right to Left (Horizontal)
Code samples
int time_distance_direction = route.Time_distance_direction;
route.Time_distance_direction = 0;
long time_distance_direction;
route->get_Time_distance_direction(&time_distance_direction);
route->put_Time_distance_direction(0);
time_distance_direction = route.Time_distance_direction
route.Time_distance_direction = 0
$time_distance_direction = $route.Time_distance_direction
$route.Time_distance_direction = 0

RouteMCs

ISIAPIRouteMCs RouteMCs { get; }

Type ISIAPIRouteMCs

Code samples
var routeMCs = route.RouteMCs;
CComPtr<ISIAPIRouteMCs> routeMCs;
route->get_RouteMCs(&routeMCs);
route_m_cs = route.RouteMCs
$routeMCs = $route.RouteMCs

ShowSecondaryPlatoons

bool ShowSecondaryPlatoons { get; set; }

Type bool

Code samples
bool showSecondaryPlatoons = route.ShowSecondaryPlatoons;
route.ShowSecondaryPlatoons = true;
VARIANT_BOOL showSecondaryPlatoons;
route->get_ShowSecondaryPlatoons(&showSecondaryPlatoons);
route->put_ShowSecondaryPlatoons(VARIANT_TRUE);
show_secondary_platoons = route.ShowSecondaryPlatoons
route.ShowSecondaryPlatoons = True
$showSecondaryPlatoons = $route.ShowSecondaryPlatoons
$route.ShowSecondaryPlatoons = $true

Methods

AddRouteNwSite(ISIAPINetworkSite, int, int)

Add a Network Site to the Route to build the path of the Route.

ISIAPIRouteNwSite AddRouteNwSite(ISIAPINetworkSite networkSite, int origin, int destination)

Parameters

Name Type Description
networkSite ISIAPINetworkSite The Network Site to add into the Route
origin int The origin of the vehicle movement on the Network Site that will be added into the Route
destination int The destination of the vehicle movement on the Network Site that will be added into the Route

Returns ISIAPIRouteNwSite - A new added Route Network Site

Code samples
var result = route.AddRouteNwSite(null, 0, 0);
CComPtr<ISIAPIRouteNwSite> result;
route->AddRouteNwSite(NULL, 0, 0, &result);
result = route.AddRouteNwSite(None, 0, 0)
$result = $route.AddRouteNwSite($null, 0, 0)

CheckIsValidForSignalOffsetCalc()

bool CheckIsValidForSignalOffsetCalc()

Returns bool

Code samples
bool result = route.CheckIsValidForSignalOffsetCalc();
VARIANT_BOOL result;
route->CheckIsValidForSignalOffsetCalc(&result);
result = route.CheckIsValidForSignalOffsetCalc()
$result = $route.CheckIsValidForSignalOffsetCalc()

UpdateModifiedInfo()

Update the Last Modified Information, such as Date, User Name, Organisation Name, Software Version Number

bool UpdateModifiedInfo()

Returns bool

Code samples
bool result = route.UpdateModifiedInfo();
VARIANT_BOOL result;
route->UpdateModifiedInfo(&result);
result = route.UpdateModifiedInfo()
$result = $route.UpdateModifiedInfo()

Process()

Process this Route. The Network needs to be processed before Route statistics can be calculated. If the Network has not been processed, process the Network. The Routes in the Network will be processed as well. If the Route is created after the Network is processed, call this method to process this Route only.

bool Process()

Returns bool - true if this Route is processed successfully.

Code samples
bool result = route.Process();
VARIANT_BOOL result;
route->Process(&result);
result = route.Process()
$result = $route.Process()

RemoveRouteNwSite(ISIAPIRouteNwSite)

Remove a Network Site from the Route. The Network Sites that are after this one in the Route will also be removed.

bool RemoveRouteNwSite(ISIAPIRouteNwSite routeNwSite)

Parameters

Name Type Description
routeNwSite ISIAPIRouteNwSite The Network Site to remove.

Returns bool - true if the Network Site is successfully removed; otherwise, false. This method also returns false if the Network Site does not exist in this Route.

Code samples
bool result = route.RemoveRouteNwSite(null);
VARIANT_BOOL result;
route->RemoveRouteNwSite(NULL, &result);
result = route.RemoveRouteNwSite(None)
$result = $route.RemoveRouteNwSite($null)

RemoveOutputData()

Remove this Route Output data.

bool RemoveOutputData()

Returns bool - true if the Output data are successfully removed

Code samples
bool result = route.RemoveOutputData();
VARIANT_BOOL result;
route->RemoveOutputData(&result);
result = route.RemoveOutputData()
$result = $route.RemoveOutputData()