Skip to content

Site

Type ISIAPISite · Interface
Namespace SIDRASolutions.SI.API
Assembly SIDRASolutions.SI.API.dll
COM CLSID 44804DC5-326B-4BA7-B90C-F1D7FDD3AC22

SIDRA INTERSECTION Site wrapper interface

Declaration

[Guid("44804DC5-326B-4BA7-B90C-F1D7FDD3AC22")]
public interface ISIAPISite

Members

Properties

Property Type Summary
Name string Site name
Intersectionid string Site ID in the Intersection dialog and reports. It was named as "Intersection ID" in the old versions.
Position int The Site Position in the Site Folder's Sites collection. It is a zero-base integer.
Site_id string The GUID of the Site object.
MovementClasses ISIAPIMovementClasses Collection of the Site's Movement Classes
Legs ISIAPILegs
MovementVehicleODs ISIAPIMovement_vehicle_ods Collection of the Site's Vehicle Approach Movements
MovementPeds ISIAPIMovement_peds Collection of the Site's Pedestrian Movements
Sequences ISIAPISequences
ModelSetting ISIAPIModelSetting
Analysis ISIAPIAnalysis
GapAcceptanceTurnOnRed ISIAPIGapAcceptanceSpecificApp
TwoWaySignControlAdjMajorNumLanes ISIAPITwoWaySignControlAdjMajorNumLanes
TwoWaySignControlAdjGeometryControls ISIAPITwoWaySignControlAdjGeometryControls
Outputset ISIAPIOutputset Site output data
Project ISIAPIProject
ProcessingError string Error message after a failed call to Process
ProcessingWarnings string Processing warnings generated during a call to Process
HasWarnings bool Flag indicating whether warnings were generated during a call to Process
LastErrorMessage string
DiagnosticStatus int Diagnostic Status
DiagnosticMsgs ISIAPIDiagnosticMsgs
Sitetype int Site Intersection type
Sitecontroltype int Control method used at site
Driveonleft bool Flag indicating the "Drive Rule" of the site
Units int General unit system used for data within the site
Hcm bool Flag indicating whether the site uses HCM
Modelsignature string The internal SIDRA INTERSECTION Software Setup signature GUID used by this site
ModelName string The internal SIDRA INTERSECTION Software Setup name
Freeway_orientation int
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
Description string Site description
Title string Site title
Unittimeforvolumes int Unit time for traffic volumes in minutes
Peakflowperiod int Peak flow period in minutes
Signal_analysis_method int Signalised Site analysis method
Costunit string
Rou_stopline_setback_dist float
Rou_metered_start_loss float
Rou_metered_end_gain float
Rou_controlling_detector_setback_dist float
Rou_metered_leg_orientation int
Rou_controlling_leg_orientation int
Category string Site Category
IsIncludedInProjectSummary bool
SiteFolder ISIAPISiteFolder
Is_multi_sequence_enabled bool
IsUserModel bool Flag indicating whether the internal SIDRA INTERSECTION Software Setup that is used by this Site is a User Software Setup or a Standard Software Setup.
SiteScenarios ISIAPISiteScenarios Collection of the Site Scenarios
MapCoordinate ISIAPIMapCoordinate
IsInputDataCompatible bool
IsOutputDataCompatible bool
MinViableVersionL1 string Minimum Viable SIDRA INTERSECTION Version for this Site's Level 1 Compatibility
MinViableVersionL2 string Minimum Viable SIDRA INTERSECTION Version for this Site's Level 2 Compatibility
MinViableVersionL3 string Minimum Viable SIDRA INTERSECTION Version for this Site's Level 3 Compatibility

Methods

Method Returns Summary
Process() bool Processes the Site
ResetMovementVehicleODMCExists() bool Reset all Movement_vehicle_od_mc.Exists values according to the LaneApproachMovementMC.Exists values (i.e. Lane Disciplines)
ResetLaneMovements() bool Reset the Lane Movements to the default vaules
ResetSitePrioritiesData() bool Reset Priority Data to the default vaules
UpdateModifiedInfo() bool Update the Last Modified Information, such as Date, User Name, Organisation Name, Software Version Number
AddLeg(int) ISIAPILeg Add a new Leg to the Site at the specified orientation. The Leg is created automatically without any Approach Lane, Exit Lane or Island.
AddLegWithLanes(int, int) ISIAPILeg Add a new Leg to the Site at the specified orientation. The Leg is created automatically with a default set of Approach Lanes, Exit Lanes and / or Island depending on the legGeometry parameter.
RemoveLeg(int) bool Remove a Leg from the Site.
Rotate(int) bool Rotate the Site.
UpdateGeometryData() bool Update the Geometry Data. Call this method manually after Leg(s) are added / removed, or after Lane(s) are added / removed.
AddSequence(string) ISIAPISequence Add a Sequence. A new Sequence is created and added to this Site.
RemoveSequence(ISIAPISequence) bool Remove a Sequence from the Site.
CreateLayoutPngData() byte[]
CreateLayoutPngFile(string) bool
CloneSequence(ISIAPISequence) ISIAPISequence Clone a Sequence.
MoveSequenceTo(ISIAPISequence, int) bool Move a Sequence to a new position.
RemoveOutputData() bool Remove this Site and relevant Networks' Output data.
AddSiteScenario(ISIAPISiteVolumeBin) ISIAPISiteScenario Add a new Site Scenario that links to a Site Volume Bin.
RemoveSiteScenario(ISIAPISiteScenario) bool Remove a Site Scenario from this Site.
CloneSiteScenario(ISIAPISiteScenario) ISIAPISiteScenario Clone a Site Scenario.
MoveSiteScenarioTo(ISIAPISiteScenario, int) bool Move a Site Scenario to a new position in the collection.

Properties

Name

Site name

string Name { get; set; }

Type string

Value

The site name, max length = 100.

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

Intersectionid

Site ID in the Intersection dialog and reports. It was named as "Intersection ID" in the old versions.

string Intersectionid { get; set; }

Type string

Value

Site ID, max length = 10.

Code samples
string intersectionid = site.Intersectionid;
site.Intersectionid = @"id-1";
CComBSTR intersectionid;
site->get_Intersectionid(&intersectionid);
site->put_Intersectionid(CComBSTR(L"id-1"));
intersectionid = site.Intersectionid
site.Intersectionid = r"id-1"
$intersectionid = $site.Intersectionid
$site.Intersectionid = "id-1"

Position

The Site Position in the Site Folder's Sites collection. It is a zero-base integer.

int Position { get; }

Type int

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

Site_id

The GUID of the Site object.

string Site_id { get; }

Type string

Code samples
string site_id = site.Site_id;
CComBSTR site_id;
site->get_Site_id(&site_id);
site_id = site.Site_id
$site_id = $site.Site_id

MovementClasses

Collection of the Site's Movement Classes

ISIAPIMovementClasses MovementClasses { get; }

Type ISIAPIMovementClasses

Code samples
var movementClasses = site.MovementClasses;
CComPtr<ISIAPIMovementClasses> movementClasses;
site->get_MovementClasses(&movementClasses);
movement_classes = site.MovementClasses
$movementClasses = $site.MovementClasses

Legs

ISIAPILegs Legs { get; }

Type ISIAPILegs

Code samples
var legs = site.Legs;
CComPtr<ISIAPILegs> legs;
site->get_Legs(&legs);
legs = site.Legs
$legs = $site.Legs

MovementVehicleODs

Collection of the Site's Vehicle Approach Movements

ISIAPIMovement_vehicle_ods MovementVehicleODs { get; }

Type ISIAPIMovement_vehicle_ods

Code samples
var movementVehicleODs = site.MovementVehicleODs;
CComPtr<ISIAPIMovement_vehicle_ods> movementVehicleODs;
site->get_MovementVehicleODs(&movementVehicleODs);
movement_vehicle_o_ds = site.MovementVehicleODs
$movementVehicleODs = $site.MovementVehicleODs

MovementPeds

Collection of the Site's Pedestrian Movements

ISIAPIMovement_peds MovementPeds { get; }

Type ISIAPIMovement_peds

Code samples
var movementPeds = site.MovementPeds;
CComPtr<ISIAPIMovement_peds> movementPeds;
site->get_MovementPeds(&movementPeds);
movement_peds = site.MovementPeds
$movementPeds = $site.MovementPeds

Sequences

ISIAPISequences Sequences { get; }

Type ISIAPISequences

Code samples
var sequences = site.Sequences;
CComPtr<ISIAPISequences> sequences;
site->get_Sequences(&sequences);
sequences = site.Sequences
$sequences = $site.Sequences

ModelSetting

ISIAPIModelSetting ModelSetting { get; }

Type ISIAPIModelSetting

Code samples
var modelSetting = site.ModelSetting;
CComPtr<ISIAPIModelSetting> modelSetting;
site->get_ModelSetting(&modelSetting);
model_setting = site.ModelSetting
$modelSetting = $site.ModelSetting

Analysis

ISIAPIAnalysis Analysis { get; }

Type ISIAPIAnalysis

Code samples
var analysis = site.Analysis;
CComPtr<ISIAPIAnalysis> analysis;
site->get_Analysis(&analysis);
analysis = site.Analysis
$analysis = $site.Analysis

GapAcceptanceTurnOnRed

ISIAPIGapAcceptanceSpecificApp GapAcceptanceTurnOnRed { get; }

Type ISIAPIGapAcceptanceSpecificApp

Code samples
var gapAcceptanceTurnOnRed = site.GapAcceptanceTurnOnRed;
CComPtr<ISIAPIGapAcceptanceSpecificApp> gapAcceptanceTurnOnRed;
site->get_GapAcceptanceTurnOnRed(&gapAcceptanceTurnOnRed);
gap_acceptance_turn_on_red = site.GapAcceptanceTurnOnRed
$gapAcceptanceTurnOnRed = $site.GapAcceptanceTurnOnRed

TwoWaySignControlAdjMajorNumLanes

ISIAPITwoWaySignControlAdjMajorNumLanes TwoWaySignControlAdjMajorNumLanes { get; }

Type ISIAPITwoWaySignControlAdjMajorNumLanes

Code samples
var twoWaySignControlAdjMajorNumLanes = site.TwoWaySignControlAdjMajorNumLanes;
CComPtr<ISIAPITwoWaySignControlAdjMajorNumLanes> twoWaySignControlAdjMajorNumLanes;
site->get_TwoWaySignControlAdjMajorNumLanes(&twoWaySignControlAdjMajorNumLanes);
two_way_sign_control_adj_major_num_lanes = site.TwoWaySignControlAdjMajorNumLanes
$twoWaySignControlAdjMajorNumLanes = $site.TwoWaySignControlAdjMajorNumLanes

TwoWaySignControlAdjGeometryControls

ISIAPITwoWaySignControlAdjGeometryControls TwoWaySignControlAdjGeometryControls { get; }

Type ISIAPITwoWaySignControlAdjGeometryControls

Code samples
var twoWaySignControlAdjGeometryControls = site.TwoWaySignControlAdjGeometryControls;
CComPtr<ISIAPITwoWaySignControlAdjGeometryControls> twoWaySignControlAdjGeometryControls;
site->get_TwoWaySignControlAdjGeometryControls(&twoWaySignControlAdjGeometryControls);
two_way_sign_control_adj_geometry_controls = site.TwoWaySignControlAdjGeometryControls
$twoWaySignControlAdjGeometryControls = $site.TwoWaySignControlAdjGeometryControls

Outputset

Site output data

ISIAPIOutputset Outputset { get; }

Type ISIAPIOutputset

Code samples
var outputset = site.Outputset;
CComPtr<ISIAPIOutputset> outputset;
site->get_Outputset(&outputset);
outputset = site.Outputset
$outputset = $site.Outputset

Project

ISIAPIProject Project { get; }

Type ISIAPIProject

Code samples
var project = site.Project;
CComPtr<ISIAPIProject> project;
site->get_Project(&project);
project = site.Project
$project = $site.Project

ProcessingError

Error message after a failed call to Process

string ProcessingError { get; }

Type string

Value

Error message

Code samples
string processingError = site.ProcessingError;
CComBSTR processingError;
site->get_ProcessingError(&processingError);
processing_error = site.ProcessingError
$processingError = $site.ProcessingError

ProcessingWarnings

Processing warnings generated during a call to Process

string ProcessingWarnings { get; }

Type string

Code samples
string processingWarnings = site.ProcessingWarnings;
CComBSTR processingWarnings;
site->get_ProcessingWarnings(&processingWarnings);
processing_warnings = site.ProcessingWarnings
$processingWarnings = $site.ProcessingWarnings

HasWarnings

Flag indicating whether warnings were generated during a call to Process

bool HasWarnings { get; }

Type bool

Value

True if warnings were generated. False otherwise.

Code samples
bool hasWarnings = site.HasWarnings;
VARIANT_BOOL hasWarnings;
site->get_HasWarnings(&hasWarnings);
has_warnings = site.HasWarnings
$hasWarnings = $site.HasWarnings

LastErrorMessage

string LastErrorMessage { get; }

Type string

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

DiagnosticStatus

Diagnostic Status

int DiagnosticStatus { get; }

Type int

Value

One of:

  • 1 - Processed
  • 2 - Not Processed
  • 3 - Input Warning
  • 4 - Processing Warning
  • 5 - Error
Code samples
int diagnosticStatus = site.DiagnosticStatus;
long diagnosticStatus;
site->get_DiagnosticStatus(&diagnosticStatus);
diagnostic_status = site.DiagnosticStatus
$diagnosticStatus = $site.DiagnosticStatus

DiagnosticMsgs

ISIAPIDiagnosticMsgs DiagnosticMsgs { get; }

Type ISIAPIDiagnosticMsgs

Code samples
var diagnosticMsgs = site.DiagnosticMsgs;
CComPtr<ISIAPIDiagnosticMsgs> diagnosticMsgs;
site->get_DiagnosticMsgs(&diagnosticMsgs);
diagnostic_msgs = site.DiagnosticMsgs
$diagnosticMsgs = $site.DiagnosticMsgs

Sitetype

Site Intersection type

int Sitetype { get; }

Type int

Value

One of:

  • 0 - At-Grade Intersection
  • 1 - Roundabout (Unsignalised)
  • 2 - Giveway/Yield (Two-Way)
  • 3 - Stop (Two-Way)
  • 4 - Stop (All-Way)
  • 5 - Single Point Interchange (Signals)
  • 6 - Pedestrian Crossing (Signalised)
  • 7 - Roundabout (Metering Signals)
  • 8 - Pedestrian Crossing (Unsignalised)
  • 9 - Arterial Segment
  • 10 - Freeway Basic Segment
  • 11 - Freeway Segment with Ramps (Two-Way)
  • 12 - Freeway Segment with Ramps (One-Way)
  • 13 - Turbo Roundabout
Code samples
int sitetype = site.Sitetype;
long sitetype;
site->get_Sitetype(&sitetype);
sitetype = site.Sitetype
$sitetype = $site.Sitetype

Sitecontroltype

Control method used at site

int Sitecontroltype { get; }

Type int

Value

One of:

  • 0 - Signals
  • 1 - Roundabout
  • 2 - Sign Control
  • 3 - All Way Stop
  • 4 - Uninterrupted
Code samples
int sitecontroltype = site.Sitecontroltype;
long sitecontroltype;
site->get_Sitecontroltype(&sitecontroltype);
sitecontroltype = site.Sitecontroltype
$sitecontroltype = $site.Sitecontroltype

Driveonleft

Flag indicating the "Drive Rule" of the site

bool Driveonleft { get; }

Type bool

Value

True if driving on the left. False if driving on the right.

Code samples
bool driveonleft = site.Driveonleft;
VARIANT_BOOL driveonleft;
site->get_Driveonleft(&driveonleft);
driveonleft = site.Driveonleft
$driveonleft = $site.Driveonleft

Units

General unit system used for data within the site

int Units { get; }

Type int

Value

One of:

  • 0 - Metric
  • 1 - US Units
Code samples
int units = site.Units;
long units;
site->get_Units(&units);
units = site.Units
$units = $site.Units

Hcm

Flag indicating whether the site uses HCM

bool Hcm { get; }

Type bool

Value

True, if site uses HCM, False otherwise.

Code samples
bool hcm = site.Hcm;
VARIANT_BOOL hcm;
site->get_Hcm(&hcm);
hcm = site.Hcm
$hcm = $site.Hcm

Modelsignature

The internal SIDRA INTERSECTION Software Setup signature GUID used by this site

string Modelsignature { get; }

Type string

Code samples
string modelsignature = site.Modelsignature;
CComBSTR modelsignature;
site->get_Modelsignature(&modelsignature);
modelsignature = site.Modelsignature
$modelsignature = $site.Modelsignature

ModelName

The internal SIDRA INTERSECTION Software Setup name

string ModelName { get; }

Type string

Code samples
string modelName = site.ModelName;
CComBSTR modelName;
site->get_ModelName(&modelName);
model_name = site.ModelName
$modelName = $site.ModelName

Freeway_orientation

int Freeway_orientation { get; }

Type int

Code samples
int freeway_orientation = site.Freeway_orientation;
long freeway_orientation;
site->get_Freeway_orientation(&freeway_orientation);
freeway_orientation = site.Freeway_orientation
$freeway_orientation = $site.Freeway_orientation

Created_date

DateTime Created_date { get; }

Type DateTime

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

Created_by

string Created_by { get; }

Type string

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

Created_by_company

string Created_by_company { get; }

Type string

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

Created_version

string Created_version { get; }

Type string

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

Modified_date

DateTime Modified_date { get; }

Type DateTime

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

Modified_by

string Modified_by { get; }

Type string

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

Modified_by_company

string Modified_by_company { get; }

Type string

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

Modified_version

string Modified_version { get; }

Type string

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

Description

Site description

string Description { get; set; }

Type string

Value

Site description, max length = 500.

Code samples
string description = site.Description;
site.Description = @"value";
CComBSTR description;
site->get_Description(&description);
site->put_Description(CComBSTR(L"value"));
description = site.Description
site.Description = r"value"
$description = $site.Description
$site.Description = "value"

Title

Site title

string Title { get; set; }

Type string

Value

Site title, max length = 500.

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

Unittimeforvolumes

Unit time for traffic volumes in minutes

int Unittimeforvolumes { get; set; }

Type int

Code samples
int unittimeforvolumes = site.Unittimeforvolumes;
site.Unittimeforvolumes = 0;
long unittimeforvolumes;
site->get_Unittimeforvolumes(&unittimeforvolumes);
site->put_Unittimeforvolumes(0);
unittimeforvolumes = site.Unittimeforvolumes
site.Unittimeforvolumes = 0
$unittimeforvolumes = $site.Unittimeforvolumes
$site.Unittimeforvolumes = 0

Peakflowperiod

Peak flow period in minutes

int Peakflowperiod { get; set; }

Type int

Code samples
int peakflowperiod = site.Peakflowperiod;
site.Peakflowperiod = 0;
long peakflowperiod;
site->get_Peakflowperiod(&peakflowperiod);
site->put_Peakflowperiod(0);
peakflowperiod = site.Peakflowperiod
site.Peakflowperiod = 0
$peakflowperiod = $site.Peakflowperiod
$site.Peakflowperiod = 0

Signal_analysis_method

Signalised Site analysis method

int Signal_analysis_method { get; set; }

Type int

Value

One of:

  • 0 - Fixed-Time/Pretimed
  • 1 - Actuated
Code samples
int signal_analysis_method = site.Signal_analysis_method;
site.Signal_analysis_method = 0;
long signal_analysis_method;
site->get_Signal_analysis_method(&signal_analysis_method);
site->put_Signal_analysis_method(0);
signal_analysis_method = site.Signal_analysis_method
site.Signal_analysis_method = 0
$signal_analysis_method = $site.Signal_analysis_method
$site.Signal_analysis_method = 0

Costunit

string Costunit { get; set; }

Type string

Code samples
string costunit = site.Costunit;
site.Costunit = @"value";
CComBSTR costunit;
site->get_Costunit(&costunit);
site->put_Costunit(CComBSTR(L"value"));
costunit = site.Costunit
site.Costunit = r"value"
$costunit = $site.Costunit
$site.Costunit = "value"

Rou_stopline_setback_dist

float Rou_stopline_setback_dist { get; set; }

Type float

Code samples
float rou_stopline_setback_dist = site.Rou_stopline_setback_dist;
site.Rou_stopline_setback_dist = 0.0;
double rou_stopline_setback_dist;
site->get_Rou_stopline_setback_dist(&rou_stopline_setback_dist);
site->put_Rou_stopline_setback_dist(0.0);
rou_stopline_setback_dist = site.Rou_stopline_setback_dist
site.Rou_stopline_setback_dist = 0.0
$rou_stopline_setback_dist = $site.Rou_stopline_setback_dist
$site.Rou_stopline_setback_dist = 0.0

Rou_metered_start_loss

float Rou_metered_start_loss { get; set; }

Type float

Code samples
float rou_metered_start_loss = site.Rou_metered_start_loss;
site.Rou_metered_start_loss = 0.0;
double rou_metered_start_loss;
site->get_Rou_metered_start_loss(&rou_metered_start_loss);
site->put_Rou_metered_start_loss(0.0);
rou_metered_start_loss = site.Rou_metered_start_loss
site.Rou_metered_start_loss = 0.0
$rou_metered_start_loss = $site.Rou_metered_start_loss
$site.Rou_metered_start_loss = 0.0

Rou_metered_end_gain

float Rou_metered_end_gain { get; set; }

Type float

Code samples
float rou_metered_end_gain = site.Rou_metered_end_gain;
site.Rou_metered_end_gain = 0.0;
double rou_metered_end_gain;
site->get_Rou_metered_end_gain(&rou_metered_end_gain);
site->put_Rou_metered_end_gain(0.0);
rou_metered_end_gain = site.Rou_metered_end_gain
site.Rou_metered_end_gain = 0.0
$rou_metered_end_gain = $site.Rou_metered_end_gain
$site.Rou_metered_end_gain = 0.0

Rou_controlling_detector_setback_dist

float Rou_controlling_detector_setback_dist { get; set; }

Type float

Code samples
float rou_controlling_detector_setback_dist = site.Rou_controlling_detector_setback_dist;
site.Rou_controlling_detector_setback_dist = 0.0;
double rou_controlling_detector_setback_dist;
site->get_Rou_controlling_detector_setback_dist(&rou_controlling_detector_setback_dist);
site->put_Rou_controlling_detector_setback_dist(0.0);
rou_controlling_detector_setback_dist = site.Rou_controlling_detector_setback_dist
site.Rou_controlling_detector_setback_dist = 0.0
$rou_controlling_detector_setback_dist = $site.Rou_controlling_detector_setback_dist
$site.Rou_controlling_detector_setback_dist = 0.0

Rou_metered_leg_orientation

int Rou_metered_leg_orientation { get; set; }

Type int

Code samples
int rou_metered_leg_orientation = site.Rou_metered_leg_orientation;
site.Rou_metered_leg_orientation = 0;
long rou_metered_leg_orientation;
site->get_Rou_metered_leg_orientation(&rou_metered_leg_orientation);
site->put_Rou_metered_leg_orientation(0);
rou_metered_leg_orientation = site.Rou_metered_leg_orientation
site.Rou_metered_leg_orientation = 0
$rou_metered_leg_orientation = $site.Rou_metered_leg_orientation
$site.Rou_metered_leg_orientation = 0

Rou_controlling_leg_orientation

int Rou_controlling_leg_orientation { get; set; }

Type int

Code samples
int rou_controlling_leg_orientation = site.Rou_controlling_leg_orientation;
site.Rou_controlling_leg_orientation = 0;
long rou_controlling_leg_orientation;
site->get_Rou_controlling_leg_orientation(&rou_controlling_leg_orientation);
site->put_Rou_controlling_leg_orientation(0);
rou_controlling_leg_orientation = site.Rou_controlling_leg_orientation
site.Rou_controlling_leg_orientation = 0
$rou_controlling_leg_orientation = $site.Rou_controlling_leg_orientation
$site.Rou_controlling_leg_orientation = 0

Category

Site Category

string Category { get; set; }

Type string

Value

Site Category, max length = 100.

Code samples
string category = site.Category;
site.Category = @"value";
CComBSTR category;
site->get_Category(&category);
site->put_Category(CComBSTR(L"value"));
category = site.Category
site.Category = r"value"
$category = $site.Category
$site.Category = "value"

IsIncludedInProjectSummary

bool IsIncludedInProjectSummary { get; set; }

Type bool

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

SiteFolder

ISIAPISiteFolder SiteFolder { get; }

Type ISIAPISiteFolder

Code samples
var siteFolder = site.SiteFolder;
CComPtr<ISIAPISiteFolder> siteFolder;
site->get_SiteFolder(&siteFolder);
site_folder = site.SiteFolder
$siteFolder = $site.SiteFolder

Is_multi_sequence_enabled

bool Is_multi_sequence_enabled { get; set; }

Type bool

Code samples
bool is_multi_sequence_enabled = site.Is_multi_sequence_enabled;
site.Is_multi_sequence_enabled = true;
VARIANT_BOOL is_multi_sequence_enabled;
site->get_Is_multi_sequence_enabled(&is_multi_sequence_enabled);
site->put_Is_multi_sequence_enabled(VARIANT_TRUE);
is_multi_sequence_enabled = site.Is_multi_sequence_enabled
site.Is_multi_sequence_enabled = True
$is_multi_sequence_enabled = $site.Is_multi_sequence_enabled
$site.Is_multi_sequence_enabled = $true

IsUserModel

Flag indicating whether the internal SIDRA INTERSECTION Software Setup that is used by this Site is a User Software Setup or a Standard Software Setup.

bool IsUserModel { get; }

Type bool

Value

True if the Software Setup is a User Software Setup. False if the Software Setup is a Standard Software Setup.

Code samples
bool isUserModel = site.IsUserModel;
VARIANT_BOOL isUserModel;
site->get_IsUserModel(&isUserModel);
is_user_model = site.IsUserModel
$isUserModel = $site.IsUserModel

SiteScenarios

Collection of the Site Scenarios

ISIAPISiteScenarios SiteScenarios { get; }

Type ISIAPISiteScenarios

Remarks

The first Local Scenario is created when creating a Site. This Scenario's Volume Type == 0 (Local). The Site's local volumes defined in the Vehicle Approach Movement by Movement Class data (ISIAPIMovement_vehicle_od_mc.Volume) are applied.

More Scenarios that link to Site Volume Bins can be added into a Site.

Code samples
var siteScenarios = site.SiteScenarios;
CComPtr<ISIAPISiteScenarios> siteScenarios;
site->get_SiteScenarios(&siteScenarios);
site_scenarios = site.SiteScenarios
$siteScenarios = $site.SiteScenarios

MapCoordinate

ISIAPIMapCoordinate MapCoordinate { get; }

Type ISIAPIMapCoordinate

Code samples
var mapCoordinate = site.MapCoordinate;
CComPtr<ISIAPIMapCoordinate> mapCoordinate;
site->get_MapCoordinate(&mapCoordinate);
map_coordinate = site.MapCoordinate
$mapCoordinate = $site.MapCoordinate

IsInputDataCompatible

bool IsInputDataCompatible { get; }

Type bool

Code samples
bool isInputDataCompatible = site.IsInputDataCompatible;
VARIANT_BOOL isInputDataCompatible;
site->get_IsInputDataCompatible(&isInputDataCompatible);
is_input_data_compatible = site.IsInputDataCompatible
$isInputDataCompatible = $site.IsInputDataCompatible

IsOutputDataCompatible

bool IsOutputDataCompatible { get; }

Type bool

Code samples
bool isOutputDataCompatible = site.IsOutputDataCompatible;
VARIANT_BOOL isOutputDataCompatible;
site->get_IsOutputDataCompatible(&isOutputDataCompatible);
is_output_data_compatible = site.IsOutputDataCompatible
$isOutputDataCompatible = $site.IsOutputDataCompatible

MinViableVersionL1

Minimum Viable SIDRA INTERSECTION Version for this Site's Level 1 Compatibility

string MinViableVersionL1 { get; }

Type string

Remarks

Level 1 Compatibility means that this Site's Input and Output data are fully compatible with the current SIDRA INTERSECTION version.

Code samples
string minViableVersionL1 = site.MinViableVersionL1;
CComBSTR minViableVersionL1;
site->get_MinViableVersionL1(&minViableVersionL1);
min_viable_version_l1 = site.MinViableVersionL1
$minViableVersionL1 = $site.MinViableVersionL1

MinViableVersionL2

Minimum Viable SIDRA INTERSECTION Version for this Site's Level 2 Compatibility

string MinViableVersionL2 { get; }

Type string

Remarks

Level 2 Compatibility means that some of this Site's Input and Output data are incompatible with the current SIDRA INTERSECTION version but the current version is still able to edit these Input data, proccess the Site,
and access the Output data.

If the current SIDRA INTERSECTION Version is smaller than the MinViableVersionL2, ISIAPISite.IsInputDataCompatible return false.

Code samples
string minViableVersionL2 = site.MinViableVersionL2;
CComBSTR minViableVersionL2;
site->get_MinViableVersionL2(&minViableVersionL2);
min_viable_version_l2 = site.MinViableVersionL2
$minViableVersionL2 = $site.MinViableVersionL2

MinViableVersionL3

Minimum Viable SIDRA INTERSECTION Version for this Site's Level 3 Compatibility

string MinViableVersionL3 { get; }

Type string

Remarks

Level 3 Compatibility means that this Site's Input data are not compatible with the current SIDRA INTERSECTION version but the Output data are compatible. The current version cannot access the Input data or process the Site but can access the Output data that were prepared by a later version of SIDRA INTERSECTION.

If the current SIDRA INTERSECTION Version is smaller than the MinViableVersionL3, the Site's Input and Output data are not accessible. The Site cannot be processed. ISIAPISite.IsOutputDataCompatible return false.

Code samples
string minViableVersionL3 = site.MinViableVersionL3;
CComBSTR minViableVersionL3;
site->get_MinViableVersionL3(&minViableVersionL3);
min_viable_version_l3 = site.MinViableVersionL3
$minViableVersionL3 = $site.MinViableVersionL3

Methods

Process()

Processes the Site

bool Process()

Returns bool - True, if processing was successful. False, if errors were generated during processing - check SIDRASolutions.SI.API.ISIAPISite.ProcessingError for details. Note: The SIDRASolutions.SI.API.ISIAPISite.HasWarnings property should always be checked after processing in case warnings were generated. Warnings may occur even if processing was successful.

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

ResetMovementVehicleODMCExists()

Reset all Movement_vehicle_od_mc.Exists values according to the LaneApproachMovementMC.Exists values (i.e. Lane Disciplines)

bool ResetMovementVehicleODMCExists()

Returns bool

Code samples
bool result = site.ResetMovementVehicleODMCExists();
VARIANT_BOOL result;
site->ResetMovementVehicleODMCExists(&result);
result = site.ResetMovementVehicleODMCExists()
$result = $site.ResetMovementVehicleODMCExists()

ResetLaneMovements()

Reset the Lane Movements to the default vaules

bool ResetLaneMovements()

Returns bool

Remarks

This needs to be called manually after Approach / Exit Lanes are added or removed, or after SIAPILaneApproachMovementMC.Exists (i.e. Lane Discipline) values are changed.

Code samples
bool result = site.ResetLaneMovements();
VARIANT_BOOL result;
site->ResetLaneMovements(&result);
result = site.ResetLaneMovements()
$result = $site.ResetLaneMovements()

ResetSitePrioritiesData()

Reset Priority Data to the default vaules

bool ResetSitePrioritiesData()

Returns bool

Code samples
bool result = site.ResetSitePrioritiesData();
VARIANT_BOOL result;
site->ResetSitePrioritiesData(&result);
result = site.ResetSitePrioritiesData()
$result = $site.ResetSitePrioritiesData()

UpdateModifiedInfo()

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

bool UpdateModifiedInfo()

Returns bool

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

AddLeg(int)

Add a new Leg to the Site at the specified orientation. The Leg is created automatically without any Approach Lane, Exit Lane or Island.

ISIAPILeg AddLeg(int orientation)

Parameters

Name Type Description
orientation int One of: - 0 - South - 1 - South East - 2 - East - 3 - North East - 4 - North - 5 - North West - 6 - West - 7 - South West

Returns ISIAPILeg - The new added Leg

Remarks

Call ISIAPISite.UpdateGeometryData() manually after Leg(s) are added or removed.

Code samples
var result = site.AddLeg(0);
CComPtr<ISIAPILeg> result;
site->AddLeg(0, &result);
result = site.AddLeg(0)
$result = $site.AddLeg(0)

AddLegWithLanes(int, int)

Add a new Leg to the Site at the specified orientation. The Leg is created automatically with a default set of Approach Lanes, Exit Lanes and / or Island depending on the legGeometry parameter.

ISIAPILeg AddLegWithLanes(int orientation, int legGeometry)

Parameters

Name Type Description
orientation int One of: - 0 - South - 1 - South East - 2 - East - 3 - North East - 4 - North - 5 - North West - 6 - West - 7 - South West
legGeometry int One of: - 1 - Two Way - 2 - One-Way Approach - 3 - One-Way Exit

Returns ISIAPILeg - The new added Leg

Remarks

Call ISIAPISite.UpdateGeometryData() manually after Leg(s) are added or removed.

Code samples
var result = site.AddLegWithLanes(0, 0);
CComPtr<ISIAPILeg> result;
site->AddLegWithLanes(0, 0, &result);
result = site.AddLegWithLanes(0, 0)
$result = $site.AddLegWithLanes(0, 0)

RemoveLeg(int)

Remove a Leg from the Site.

bool RemoveLeg(int orientation)

Parameters

Name Type Description
orientation int One of: - 0 - South - 1 - South East - 2 - East - 3 - North East - 4 - North - 5 - North West - 6 - West - 7 - South West

Returns bool - true if the Leg is successfully removed. This method returns false if the Leg does not exist.

Remarks

Call ISIAPISite.UpdateGeometryData() manually after Leg(s) are added or removed.

Code samples
bool result = site.RemoveLeg(0);
VARIANT_BOOL result;
site->RemoveLeg(0, &result);
result = site.RemoveLeg(0)
$result = $site.RemoveLeg(0)

Rotate(int)

Rotate the Site.

bool Rotate(int step)

Parameters

Name Type Description
step int If step is a positive integer, rotate the Site clockwise. If step is a negative integer, rotate the Site anti-clockwise. One step equals 45 degrees.

Returns bool

Remarks

If the Site Geometry has been changed, e.g. a Leg or Lane has been added or removed, call the method UpdateGeometryData() to update the Geometry Data before calling this.

Code samples
bool result = site.Rotate(0);
VARIANT_BOOL result;
site->Rotate(0, &result);
result = site.Rotate(0)
$result = $site.Rotate(0)

UpdateGeometryData()

Update the Geometry Data. Call this method manually after Leg(s) are added / removed, or after Lane(s) are added / removed.

bool UpdateGeometryData()

Returns bool

Code samples
bool result = site.UpdateGeometryData();
VARIANT_BOOL result;
site->UpdateGeometryData(&result);
result = site.UpdateGeometryData()
$result = $site.UpdateGeometryData()

AddSequence(string)

Add a Sequence. A new Sequence is created and added to this Site.

ISIAPISequence AddSequence(string name)

Parameters

Name Type Description
name string The name of the new Sequence.

Returns ISIAPISequence - The new Sequence

Code samples
var result = site.AddSequence(@"Example");
CComPtr<ISIAPISequence> result;
site->AddSequence(CComBSTR(L"Example"), &result);
result = site.AddSequence(r"Example")
$result = $site.AddSequence("Example")

RemoveSequence(ISIAPISequence)

Remove a Sequence from the Site.

bool RemoveSequence(ISIAPISequence sequence)

Parameters

Name Type Description
sequence ISIAPISequence The Sequence to remove.

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

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

CreateLayoutPngData()

byte[] CreateLayoutPngData()

Returns byte[]

Code samples
var result = site.CreateLayoutPngData();
VARIANT result;
site->CreateLayoutPngData(&result);
result = site.CreateLayoutPngData()
$result = $site.CreateLayoutPngData()

CreateLayoutPngFile(string)

bool CreateLayoutPngFile(string filename)

Parameters

Name Type Description
filename string

Returns bool

Code samples
bool result = site.CreateLayoutPngFile(@"C:\path\to\project.sipx");
VARIANT_BOOL result;
site->CreateLayoutPngFile(CComBSTR(L"C:\\path\\to\\project.sipx"), &result);
result = site.CreateLayoutPngFile(r"C:\path\to\project.sipx")
$result = $site.CreateLayoutPngFile("C:\path\to\project.sipx")

CloneSequence(ISIAPISequence)

Clone a Sequence.

ISIAPISequence CloneSequence(ISIAPISequence sequence)

Parameters

Name Type Description
sequence ISIAPISequence The Sequence to be cloned.

Returns ISIAPISequence - The new cloned Sequence.

Code samples
var result = site.CloneSequence(null);
CComPtr<ISIAPISequence> result;
site->CloneSequence(NULL, &result);
result = site.CloneSequence(None)
$result = $site.CloneSequence($null)

MoveSequenceTo(ISIAPISequence, int)

Move a Sequence to a new position.

bool MoveSequenceTo(ISIAPISequence sequence, int newPosition)

Parameters

Name Type Description
sequence ISIAPISequence The Sequence to move.
newPosition int The zero-based position that the Sequence should be moved to.

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

Code samples
bool result = site.MoveSequenceTo(null, 0);
VARIANT_BOOL result;
site->MoveSequenceTo(NULL, 0, &result);
result = site.MoveSequenceTo(None, 0)
$result = $site.MoveSequenceTo($null, 0)

RemoveOutputData()

Remove this Site and relevant Networks' Output data.

bool RemoveOutputData()

Returns bool - true if the Output data are successfully removed

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

AddSiteScenario(ISIAPISiteVolumeBin)

Add a new Site Scenario that links to a Site Volume Bin.

ISIAPISiteScenario AddSiteScenario(ISIAPISiteVolumeBin siteVolumeBin)

Parameters

Name Type Description
siteVolumeBin ISIAPISiteVolumeBin The Site Volume Bin to be linked to the new Site Scenario.

Returns ISIAPISiteScenario - The new added Site Scenario.

Code samples
var result = site.AddSiteScenario(null);
CComPtr<ISIAPISiteScenario> result;
site->AddSiteScenario(NULL, &result);
result = site.AddSiteScenario(None)
$result = $site.AddSiteScenario($null)

RemoveSiteScenario(ISIAPISiteScenario)

Remove a Site Scenario from this Site.

bool RemoveSiteScenario(ISIAPISiteScenario siteScenario)

Parameters

Name Type Description
siteScenario ISIAPISiteScenario The Site Scenario to remove.

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

Remarks

The first Site Local Scenario that links to the Site Local Volumes data cannot be removed.

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

CloneSiteScenario(ISIAPISiteScenario)

Clone a Site Scenario.

ISIAPISiteScenario CloneSiteScenario(ISIAPISiteScenario siteScenario)

Parameters

Name Type Description
siteScenario ISIAPISiteScenario The Site Scenario to be cloned.

Returns ISIAPISiteScenario - The new cloned Site Scenario.

Remarks

The first Site Local Scenario that links to the Site Local Volumes data cannot be cloned.

Code samples
var result = site.CloneSiteScenario(null);
CComPtr<ISIAPISiteScenario> result;
site->CloneSiteScenario(NULL, &result);
result = site.CloneSiteScenario(None)
$result = $site.CloneSiteScenario($null)

MoveSiteScenarioTo(ISIAPISiteScenario, int)

Move a Site Scenario to a new position in the collection.

bool MoveSiteScenarioTo(ISIAPISiteScenario siteScenario, int newPosition)

Parameters

Name Type Description
siteScenario ISIAPISiteScenario The Site Scenario to move.
newPosition int The zero-based position that the Site Scenario should be moved to. The newPosition cannot be 0 because it is for the Site Local Scenario that links to the Site Local Volumes data.

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

Remarks

The first Site Local Scenario that links to the Site Local Volumes data cannot be moved. The other Scenarios cannot be moved to the first, i.e. Position 0.

Code samples
bool result = site.MoveSiteScenarioTo(null, 0);
VARIANT_BOOL result;
site->MoveSiteScenarioTo(NULL, 0, &result);
result = site.MoveSiteScenarioTo(None, 0)
$result = $site.MoveSiteScenarioTo($null, 0)