Skip to content

ISIAPILeg Interface

Namespace: SIDRASolutions.SI.API
Assembly: SIDRASolutions.SI.API.dll COM CLSID: 98300C8A-D0D4-4078-BB07-9CA446AA4D14

Declaration

[Guid("98300C8A-D0D4-4078-BB07-9CA446AA4D14")]
public interface ISIAPILeg

Get an instance

// Navigate to the ISIAPILeg you need via the ISIAPI tree.
// See ISIAPI for the activation root.
var leg = /* ... */;
' Navigate to the ISIAPILeg you need via the ISIAPI tree.
' See ISIAPI for the activation root.
Dim leg As ISIAPILeg = Nothing
# Navigate to the ISIAPILeg you need via the ISIAPI tree.
# See ISIAPI for the activation root.
leg = ...
# Navigate to the ISIAPILeg you need via the ISIAPI tree.
# See ISIAPI for the activation root.
$leg = $null

Properties

Orientation

Leg Orientation

int Orientation { get; }

Type int

Value

One of:

  • 0 - South
  • 1 - South East
  • 2 - East
  • 3 - North East
  • 4 - North
  • 5 - North West
  • 6 - West
  • 7 - South West
Code samples
int orientation = leg.Orientation;
Dim orientation As Integer = leg.Orientation
orientation = leg.Orientation
$orientation = $leg.Orientation

Name

string Name { get; set; }

Type string

Code samples
string name = leg.Name;
leg.Name = @"Example";
Dim name As String = leg.Name
leg.Name = "Example"
name = leg.Name
leg.Name = r"Example"
$name = $leg.Name
$leg.Name = "Example"

Approach_distance

float Approach_distance { get; set; }

Type float

Code samples
float approach_distance = leg.Approach_distance;
leg.Approach_distance = 0.0;
Dim approach_distance As Single = leg.Approach_distance
leg.Approach_distance = 0.0
approach_distance = leg.Approach_distance
leg.Approach_distance = 0.0
$approach_distance = $leg.Approach_distance
$leg.Approach_distance = 0.0

Exit_distance_user

bool Exit_distance_user { get; set; }

Type bool

Code samples
bool exit_distance_user = leg.Exit_distance_user;
leg.Exit_distance_user = true;
Dim exit_distance_user As Boolean = leg.Exit_distance_user
leg.Exit_distance_user = true
exit_distance_user = leg.Exit_distance_user
leg.Exit_distance_user = True
$exit_distance_user = $leg.Exit_distance_user
$leg.Exit_distance_user = $true

Exit_distance

float Exit_distance { get; set; }

Type float

Code samples
float exit_distance = leg.Exit_distance;
leg.Exit_distance = 0.0;
Dim exit_distance As Single = leg.Exit_distance
leg.Exit_distance = 0.0
exit_distance = leg.Exit_distance
leg.Exit_distance = 0.0
$exit_distance = $leg.Exit_distance
$leg.Exit_distance = 0.0

Extra_bunching_user

bool Extra_bunching_user { get; set; }

Type bool

Code samples
bool extra_bunching_user = leg.Extra_bunching_user;
leg.Extra_bunching_user = true;
Dim extra_bunching_user As Boolean = leg.Extra_bunching_user
leg.Extra_bunching_user = true
extra_bunching_user = leg.Extra_bunching_user
leg.Extra_bunching_user = True
$extra_bunching_user = $leg.Extra_bunching_user
$leg.Extra_bunching_user = $true

Extra_bunching

float Extra_bunching { get; set; }

Type float

Code samples
float extra_bunching = leg.Extra_bunching;
leg.Extra_bunching = 0.0;
Dim extra_bunching As Single = leg.Extra_bunching
leg.Extra_bunching = 0.0
extra_bunching = leg.Extra_bunching
leg.Extra_bunching = 0.0
$extra_bunching = $leg.Extra_bunching
$leg.Extra_bunching = 0.0

Area_type_factor

Area Type Factor, for Legs in Signalised Site only

float Area_type_factor { get; set; }

Type float

Code samples
float area_type_factor = leg.Area_type_factor;
leg.Area_type_factor = 0.0;
Dim area_type_factor As Single = leg.Area_type_factor
leg.Area_type_factor = 0.0
area_type_factor = leg.Area_type_factor
leg.Area_type_factor = 0.0
$area_type_factor = $leg.Area_type_factor
$leg.Area_type_factor = 0.0

Approach_control

Approach Control Type, for Legs in Sign Controlled Site only

int Approach_control { get; set; }

Type int

Value

One of:

  • 1 - Major Road
  • 2 - Giveway
  • 3 - Stop
Code samples
int approach_control = leg.Approach_control;
leg.Approach_control = 0;
Dim approach_control As Integer = leg.Approach_control
leg.Approach_control = 0
approach_control = leg.Approach_control
leg.Approach_control = 0
$approach_control = $leg.Approach_control
$leg.Approach_control = 0

Is_departure_headway_awsc_applied

bool Is_departure_headway_awsc_applied { get; set; }

Type bool

Code samples
bool is_departure_headway_awsc_applied = leg.Is_departure_headway_awsc_applied;
leg.Is_departure_headway_awsc_applied = true;
Dim is_departure_headway_awsc_applied As Boolean = leg.Is_departure_headway_awsc_applied
leg.Is_departure_headway_awsc_applied = true
is_departure_headway_awsc_applied = leg.Is_departure_headway_awsc_applied
leg.Is_departure_headway_awsc_applied = True
$is_departure_headway_awsc_applied = $leg.Is_departure_headway_awsc_applied
$leg.Is_departure_headway_awsc_applied = $true

LegGeometry

Leg Geometry

int LegGeometry { get; set; }

Type int

Value

One of:

  • 0 - No Leg
  • 1 - Two Way
  • 2 - One-Way Approach
  • 3 - One-Way Exit

Remarks

Cannot remove a Leg by setting LegGeometry to 0. Call ISIAPILegs.RemoveLeg() method to remove a Leg.

Code samples
int legGeometry = leg.LegGeometry;
leg.LegGeometry = 0;
Dim legGeometry As Integer = leg.LegGeometry
leg.LegGeometry = 0
leg_geometry = leg.LegGeometry
leg.LegGeometry = 0
$legGeometry = $leg.LegGeometry
$leg.LegGeometry = 0

LastErrorMessage

string LastErrorMessage { get; }

Type string

Code samples
string lastErrorMessage = leg.LastErrorMessage;
Dim lastErrorMessage As String = leg.LastErrorMessage
last_error_message = leg.LastErrorMessage
$lastErrorMessage = $leg.LastErrorMessage

Site

ISIAPISite Site { get; }

Type ISIAPISite

Code samples
var site = leg.Site;
Dim site As ISIAPISite = leg.Site
site = leg.Site
$site = $leg.Site

Leg_roundabout

ISIAPILeg_roundabout Leg_roundabout { get; }

Type ISIAPILeg_roundabout

Code samples
var leg_roundabout = leg.Leg_roundabout;
Dim leg_roundabout As ISIAPILeg_roundabout = leg.Leg_roundabout
leg_roundabout = leg.Leg_roundabout
$leg_roundabout = $leg.Leg_roundabout

LaneApproachs

ISIAPILaneApproachs LaneApproachs { get; }

Type ISIAPILaneApproachs

Code samples
var laneApproachs = leg.LaneApproachs;
Dim laneApproachs As ISIAPILaneApproachs = leg.LaneApproachs
lane_approachs = leg.LaneApproachs
$laneApproachs = $leg.LaneApproachs

LaneExits

ISIAPILaneExits LaneExits { get; }

Type ISIAPILaneExits

Code samples
var laneExits = leg.LaneExits;
Dim laneExits As ISIAPILaneExits = leg.LaneExits
lane_exits = leg.LaneExits
$laneExits = $leg.LaneExits

Islands

ISIAPIIslands Islands { get; }

Type ISIAPIIslands

Code samples
var islands = leg.Islands;
Dim islands As ISIAPIIslands = leg.Islands
islands = leg.Islands
$islands = $leg.Islands

MovementPedSlipLane_Existing

ISIAPIMovement_ped MovementPedSlipLane_Existing { get; }

Type ISIAPIMovement_ped

Code samples
var movementPedSlipLane_Existing = leg.MovementPedSlipLane_Existing;
Dim movementPedSlipLane_Existing As ISIAPIMovement_ped = leg.MovementPedSlipLane_Existing
movement_ped_slip_lane__existing = leg.MovementPedSlipLane_Existing
$movementPedSlipLane_Existing = $leg.MovementPedSlipLane_Existing

Is_uturn_before_intersection

bool Is_uturn_before_intersection { get; set; }

Type bool

Code samples
bool is_uturn_before_intersection = leg.Is_uturn_before_intersection;
leg.Is_uturn_before_intersection = true;
Dim is_uturn_before_intersection As Boolean = leg.Is_uturn_before_intersection
leg.Is_uturn_before_intersection = true
is_uturn_before_intersection = leg.Is_uturn_before_intersection
leg.Is_uturn_before_intersection = True
$is_uturn_before_intersection = $leg.Is_uturn_before_intersection
$leg.Is_uturn_before_intersection = $true

Is_uturn_before_intersection_excluded_from_signal_analysis

bool Is_uturn_before_intersection_excluded_from_signal_analysis { get; set; }

Type bool

Code samples
bool is_uturn_before_intersection_excluded_from_signal_analysis = leg.Is_uturn_before_intersection_excluded_from_signal_analysis;
leg.Is_uturn_before_intersection_excluded_from_signal_analysis = true;
Dim is_uturn_before_intersection_excluded_from_signal_analysis As Boolean = leg.Is_uturn_before_intersection_excluded_from_signal_analysis
leg.Is_uturn_before_intersection_excluded_from_signal_analysis = true
is_uturn_before_intersection_excluded_from_signal_analysis = leg.Is_uturn_before_intersection_excluded_from_signal_analysis
leg.Is_uturn_before_intersection_excluded_from_signal_analysis = True
$is_uturn_before_intersection_excluded_from_signal_analysis = $leg.Is_uturn_before_intersection_excluded_from_signal_analysis
$leg.Is_uturn_before_intersection_excluded_from_signal_analysis = $true

Extra_bunching_nw_user

bool Extra_bunching_nw_user { get; set; }

Type bool

Code samples
bool extra_bunching_nw_user = leg.Extra_bunching_nw_user;
leg.Extra_bunching_nw_user = true;
Dim extra_bunching_nw_user As Boolean = leg.Extra_bunching_nw_user
leg.Extra_bunching_nw_user = true
extra_bunching_nw_user = leg.Extra_bunching_nw_user
leg.Extra_bunching_nw_user = True
$extra_bunching_nw_user = $leg.Extra_bunching_nw_user
$leg.Extra_bunching_nw_user = $true

Extra_bunching_nw

float Extra_bunching_nw { get; set; }

Type float

Code samples
float extra_bunching_nw = leg.Extra_bunching_nw;
leg.Extra_bunching_nw = 0.0;
Dim extra_bunching_nw As Single = leg.Extra_bunching_nw
leg.Extra_bunching_nw = 0.0
extra_bunching_nw = leg.Extra_bunching_nw
leg.Extra_bunching_nw = 0.0
$extra_bunching_nw = $leg.Extra_bunching_nw
$leg.Extra_bunching_nw = 0.0

Approach_start_point

ISIAPIMapCoordinate Approach_start_point { get; }

Type ISIAPIMapCoordinate

Code samples
var approach_start_point = leg.Approach_start_point;
Dim approach_start_point As ISIAPIMapCoordinate = leg.Approach_start_point
approach_start_point = leg.Approach_start_point
$approach_start_point = $leg.Approach_start_point

Exit_start_point_user

bool Exit_start_point_user { get; set; }

Type bool

Code samples
bool exit_start_point_user = leg.Exit_start_point_user;
leg.Exit_start_point_user = true;
Dim exit_start_point_user As Boolean = leg.Exit_start_point_user
leg.Exit_start_point_user = true
exit_start_point_user = leg.Exit_start_point_user
leg.Exit_start_point_user = True
$exit_start_point_user = $leg.Exit_start_point_user
$leg.Exit_start_point_user = $true

Exit_start_point

ISIAPIMapCoordinate Exit_start_point { get; }

Type ISIAPIMapCoordinate

Code samples
var exit_start_point = leg.Exit_start_point;
Dim exit_start_point As ISIAPIMapCoordinate = leg.Exit_start_point
exit_start_point = leg.Exit_start_point
$exit_start_point = $leg.Exit_start_point

Approach_end_point

ISIAPIMapCoordinate Approach_end_point { get; }

Type ISIAPIMapCoordinate

Code samples
var approach_end_point = leg.Approach_end_point;
Dim approach_end_point As ISIAPIMapCoordinate = leg.Approach_end_point
approach_end_point = leg.Approach_end_point
$approach_end_point = $leg.Approach_end_point

Exit_end_point_user

bool Exit_end_point_user { get; set; }

Type bool

Code samples
bool exit_end_point_user = leg.Exit_end_point_user;
leg.Exit_end_point_user = true;
Dim exit_end_point_user As Boolean = leg.Exit_end_point_user
leg.Exit_end_point_user = true
exit_end_point_user = leg.Exit_end_point_user
leg.Exit_end_point_user = True
$exit_end_point_user = $leg.Exit_end_point_user
$leg.Exit_end_point_user = $true

Exit_end_point

ISIAPIMapCoordinate Exit_end_point { get; }

Type ISIAPIMapCoordinate

Code samples
var exit_end_point = leg.Exit_end_point;
Dim exit_end_point As ISIAPIMapCoordinate = leg.Exit_end_point
exit_end_point = leg.Exit_end_point
$exit_end_point = $leg.Exit_end_point

PedMainCrossingVolumeOption

Pedestrian Volume Data Option for Main Crossing (Full and Staged)

int PedMainCrossingVolumeOption { get; set; }

Type int

Value

One of:

  • 0 - Overall Value for Full and Staged Crossings (All Stages)
  • 1 - Separate Value for Full and Staged Crossings

The default is 0.

Remarks

When this Option is set to 0 (Overall Value), the overall pedestrian volume data (Volume, Peak Flow Factor, Flow Scale and Growth Rate) in the ISIAPILeg object are applied for the Pedestrian Full and Staged Crossing Movements. The volume data in the corresponding ISIAPIMovement_ped objects are ignored.

When this Option is set to 1 (Separate Value), the volume data in the corresponding ISIAPIMovement_ped objects are applied.

This option does not affect the volume data of Slip/Bypass Lane Crossing. The volume data in the corresponding ISIAPIMovement_ped object for the Slip/Bypass Lane Crossing are applied.

This option does not affect the Pedestrian Movement Data (e.g. Exists or not, Crossing Distance, Opposing Pedestrian Factor, Walking Speed, etc.). These data in the corresponding ISIAPIMovement_ped object are applied.

Code samples
int pedMainCrossingVolumeOption = leg.PedMainCrossingVolumeOption;
leg.PedMainCrossingVolumeOption = 0;
Dim pedMainCrossingVolumeOption As Integer = leg.PedMainCrossingVolumeOption
leg.PedMainCrossingVolumeOption = 0
ped_main_crossing_volume_option = leg.PedMainCrossingVolumeOption
leg.PedMainCrossingVolumeOption = 0
$pedMainCrossingVolumeOption = $leg.PedMainCrossingVolumeOption
$leg.PedMainCrossingVolumeOption = 0

PedMainCrossingVolume

float PedMainCrossingVolume { get; set; }

Type float

Code samples
float pedMainCrossingVolume = leg.PedMainCrossingVolume;
leg.PedMainCrossingVolume = 0.0;
Dim pedMainCrossingVolume As Single = leg.PedMainCrossingVolume
leg.PedMainCrossingVolume = 0.0
ped_main_crossing_volume = leg.PedMainCrossingVolume
leg.PedMainCrossingVolume = 0.0
$pedMainCrossingVolume = $leg.PedMainCrossingVolume
$leg.PedMainCrossingVolume = 0.0

PedMainCrossingPeakFlowFactor

float PedMainCrossingPeakFlowFactor { get; set; }

Type float

Code samples
float pedMainCrossingPeakFlowFactor = leg.PedMainCrossingPeakFlowFactor;
leg.PedMainCrossingPeakFlowFactor = 0.0;
Dim pedMainCrossingPeakFlowFactor As Single = leg.PedMainCrossingPeakFlowFactor
leg.PedMainCrossingPeakFlowFactor = 0.0
ped_main_crossing_peak_flow_factor = leg.PedMainCrossingPeakFlowFactor
leg.PedMainCrossingPeakFlowFactor = 0.0
$pedMainCrossingPeakFlowFactor = $leg.PedMainCrossingPeakFlowFactor
$leg.PedMainCrossingPeakFlowFactor = 0.0

PedMainCrossingFlowScale

float PedMainCrossingFlowScale { get; set; }

Type float

Code samples
float pedMainCrossingFlowScale = leg.PedMainCrossingFlowScale;
leg.PedMainCrossingFlowScale = 0.0;
Dim pedMainCrossingFlowScale As Single = leg.PedMainCrossingFlowScale
leg.PedMainCrossingFlowScale = 0.0
ped_main_crossing_flow_scale = leg.PedMainCrossingFlowScale
leg.PedMainCrossingFlowScale = 0.0
$pedMainCrossingFlowScale = $leg.PedMainCrossingFlowScale
$leg.PedMainCrossingFlowScale = 0.0

PedMainCrossingGrowthRate

float PedMainCrossingGrowthRate { get; set; }

Type float

Code samples
float pedMainCrossingGrowthRate = leg.PedMainCrossingGrowthRate;
leg.PedMainCrossingGrowthRate = 0.0;
Dim pedMainCrossingGrowthRate As Single = leg.PedMainCrossingGrowthRate
leg.PedMainCrossingGrowthRate = 0.0
ped_main_crossing_growth_rate = leg.PedMainCrossingGrowthRate
leg.PedMainCrossingGrowthRate = 0.0
$pedMainCrossingGrowthRate = $leg.PedMainCrossingGrowthRate
$leg.PedMainCrossingGrowthRate = 0.0

Methods

InsertApproachLane(int)

Insert an new Approach Lane to the Leg at the specified position. The Approach Lane is created automatically.

ISIAPILaneApproach InsertApproachLane(int positionOnLeg)

Parameters

Name Type Description
positionOnLeg int Postion on the Leg, a one-based integer, counts Approach Lanes, Exit Lanes and Islands from left to right looking to the centre of the Intersection.

Returns ISIAPILaneApproach - The new Approach Lane

Code samples
var result = leg.InsertApproachLane(0);
Dim result As ISIAPILaneApproach = leg.InsertApproachLane(0)
result = leg.InsertApproachLane(0)
$result = $leg.InsertApproachLane(0)

InsertExitLane(int)

Insert an new Exit Lane to the Leg at the specified position. The Exit Lane is created automatically.

ISIAPILaneExit InsertExitLane(int positionOnLeg)

Parameters

Name Type Description
positionOnLeg int Postion on the Leg, a one-based integer, counts Approach Lanes, Exit Lanes and Islands from left to right looking to the centre of the Intersection.

Returns ISIAPILaneExit - The new Exit Lane

Code samples
var result = leg.InsertExitLane(0);
Dim result As ISIAPILaneExit = leg.InsertExitLane(0)
result = leg.InsertExitLane(0)
$result = $leg.InsertExitLane(0)

InsertIsland(int)

Insert an new Island to the Leg at the specified position. The Island is created automatically.

ISIAPIIsland InsertIsland(int positionOnLeg)

Parameters

Name Type Description
positionOnLeg int Postion on the Leg, a one-based integer, counts Approach Lanes, Exit Lanes and Islands from left to right looking to the centre of the Intersection.

Returns ISIAPIIsland - The new Island

Code samples
var result = leg.InsertIsland(0);
Dim result As ISIAPIIsland = leg.InsertIsland(0)
result = leg.InsertIsland(0)
$result = $leg.InsertIsland(0)

InsertIsland_RoundaboutSplitter(int)

Insert an new Roundabout Splitter Island to the Leg at the specified position. The Island is created automatically.

ISIAPIIsland InsertIsland_RoundaboutSplitter(int positionOnLeg)

Parameters

Name Type Description
positionOnLeg int Postion on the Leg, a one-based integer, counts Approach Lanes, Exit Lanes and Islands from left to right looking to the centre of the Intersection.

Returns ISIAPIIsland - The new Roundabout Splitter Island

Code samples
var result = leg.InsertIsland_RoundaboutSplitter(0);
Dim result As ISIAPIIsland = leg.InsertIsland_RoundaboutSplitter(0)
result = leg.InsertIsland_RoundaboutSplitter(0)
$result = $leg.InsertIsland_RoundaboutSplitter(0)

RemoveItem(int)

Remove the item at the specified position on the Leg. The item could be an Approach Lane, Exit Lane or Island.

bool RemoveItem(int positionOnLeg)

Parameters

Name Type Description
positionOnLeg int Postion on the Leg, a one-based integer, counts Approach Lanes, Exit Lanes and Islands from left to right looking to the centre of the Intersection.

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

Code samples
bool result = leg.RemoveItem(0);
Dim result As Boolean = leg.RemoveItem(0)
result = leg.RemoveItem(0)
$result = $leg.RemoveItem(0)