The Restrictions tab shows all the restrictions available for the network dataset. You can also select a restriction to view how it is configured.
Restrictions can be configured on a network data source such that, during an analysis, traversing roads with certain characteristics is prohibited entirely, avoided, or even preferred. For example, restrictions could be used to prevent pedestrians from walking on highways or to prevent tall trucks from traveling on roads with insufficient overhead clearance.
Restrictions can be turned on or off at solve time so that they are either obeyed or ignored for your particular analysis. The preferred method for controlling which restrictions are used for a particular analysis is through travel modes. You can configure a travel mode with various analysis properties, including restrictions, to appropriately model the vehicle you are routing. At solve time, selecting a predefined travel mode allows you to efficiently and consistently set the restrictions and other properties that are appropriate for the mode of travel you intend to model.
A restriction attribute can be configured to have parameters with default values that can be overridden by a travel mode that uses that restriction. For example, you could add a Vehicle Height parameter to a restriction attribute. The parameter value indicates the height of the vehicle modeled in the analysis.
In all cases, a restriction attribute is configured to return a Boolean (true or false) value for each network element of the network data source. For a given network element, if the restriction returns true, it means to apply the usage type to that element during analysis for travel modes that include the restriction; false means the restriction has no impact on that particular network element being evaluated. Restrictions also have a Usage Type property that can be set to one of the following seven values:
- Avoid (high)
- Avoid (low)
- Prefer (low)
- Prefer (high)
The value assigned to this property determines whether the restriction attribute prohibits, avoids, or prefers the network elements it is associated with. Furthermore, the degree to which network elements are avoided or preferred can be defined by choosing High, Medium, or Low. The three sections below introduce the general restriction usages.
Prohibit network elements
The most common use of a restriction is to prohibit traversal. For example, one-way streets can be modeled with a restriction attribute so they can only be traversed from one end to another, but not in the reverse direction. Similarly, a restriction attribute on walkways can completely prohibit traversal so that the network elements identified as walkways are excluded from any route that is generated for a motorized vehicle.
Avoid network elements
Instead of prohibiting traversal on certain network elements, you might want to partially relax a prohibit restriction whereby the solver avoids traversing the elements, unless it is impossible or too costly to do so. For instance, if you are routing commercial delivery vehicles and want them to avoid driving on private roads, you can use a restriction attribute and set its Usage Type property to Avoid. This way, private roads are avoided in most cases, but if a delivery happens to be on a private road, the route is still able to reach the destination. Also, if avoiding a private road while en route to a stop is too costly (that is, the detour around the private road is too long), the solver allows the exception and sends the vehicle through the private road.
Prefer network elements
The third type of restriction attribute usage type is a prefer restriction. Restriction attribute can be configured with a prefer usage type. Consider a truck carrying hazardous materials (hazmat). There are some roads where transporting hazmat is illegal, some where it is allowed, and some where it is preferred because an accident occurring along those roads would be easiest for emergency responders to reach and contain. You can model these rules by configuring a restriction attribute with a Usage Type value of Prohibited on roads where it is illegal to transport hazmat and configuring another restriction attribute with a Usage Type value of Prefer on roads where hazmat transport is favored. The result is that your vehicles will never be routed on prohibited roads and will tend to be routed along preferred roads.
The Restrictions tab displays the restriction attributes that are available with the network data source in the upper section, and in the lower section, properties associated with the selected restriction are displayed.
Properties—This section displays how the selected restriction is configured. It lists the metadata such as the Name and Usage Type associated with the restriction attribute and the details on how the parameters and evaluators are configured.
Parameters—These are placeholders for values that you can change for a particular analysis. They each have a meaningful default value that can be dynamically overridden by the user when needed without rebuilding the network dataset.
Evaluators—Each attribute defined in the network must provide values for each source and direction (along and against for edges) participating in the network. An evaluator assigns values for the attribute of each source and travel direction, and a default evaluator for each element is used for those sources and directions that do not have an assigned evaluator for an attribute.
The best practice for editing network attributes in a network dataset is in a project which does not involve layers that use the network dataset. Some editing might get blocked on the network dataset properties dialog box if there are layers in the project that uses this network dataset. It is therefore recommended to create a blank project, add connection to the geodatabase that contains the network dataset, and make edits in this project. When the layers using this network dataset are opened in an ArcGIS Pro session, you won't be able to add, delete, or rename a cost or a restriction attribute. This is to ensure the network dataset schema updates succeed and that the layers using it are initialized properly when opened.