Conditional restricted turns based on vehicle length

08-21-2012 08:21 AM
New Contributor
I want to restrict turns at particular intersections if a vehicle is greater than a specified length.  In other words,  any vehicle over 65 feet cannot turn left or right, but driving straight through the intersection is OK.  Further, any vehicle under 65 feet can turn in any direction.

My approach is:  In the network dataset, first I created a new feature class (named:  LengthTurnRestrictions).  I have created turn features, snapping them to the edges of the network (see the illustration below).  I added a field to the attribute table named "LengthRestiction" and have coded all of these new features as LengthRestriction = "TRUE". 


In the Network dataset properties, I have created a turn restriction attribute (named: LengthTurnRestriction).  I've also created a network attribute parameter (named: VehicleLength and set the default value to 0).  Finally, I know that I need to set the attribute evaluator to use that parameter, but I'm not sure exactly what to do. 

My thought was to set the evaluator Type be set to VB Script and the value "restricted" using VB script like: 
Select Case UCase([LengthTurnRestriction])
  Case "TRUE":restricted =TRUE
End Select

This did not work as I'd hoped.  Please comment about my approach, or better yet, let me know just what I need to do to enforce length-based turn restrictions.
Tags (2)
0 Kudos
1 Reply
Occasional Contributor III
You are most likely looking for parameterized restriction attributes. Here is the help documentation on using those restrictions to model vehicle height/weight/length parameters.

The doc suggests that you:

Create a descriptor attribute called MaxVehicleLength.
Create a restriction attribute called VehicleLengthRestriction.
The restriction attribute should have a parameter called VehicleLength.

Have the descriptor read in field values from your turn source with the maximum length vehicle allowed to make the turn.  Say, "64".
Have the restriction attribute be a function evaluator that checks if MaxVehicleLength < VehicleLength, the turn is restricted.

So, for edges and junctions, your restriction attribute will always return false (not restricted).  But for your Turn source, it should check the function evaluator to decide if the VehicleLength is greater than the MaxVehicleLength.

You can set a default VehicleLength that will be used automatically.  Then, in your analysis properties, for each analysis layer you work with, you can set a VehicleLength specific to that analysis.
0 Kudos