Available with Network Analyst license.
Each attribute defined in the network must have values for each source participating in the network. An evaluator assigns values for the attribute of each source. The field script evaluator assigns an evaluator from a field of a network source to a combination of a network attribute, source, and direction. In addition, there are other types of evaluators that can be used, including constant, function, and element script evaluators.
The evaluators are described below.
The most common way to assign values for a network attribute is by identifying a single field that will be used to evaluate the network attribute when the network dataset is built. For example, a field evaluator can be used in cases in which the value describes a measurement, such as the length of each road segment in meters.
For cost attributes with units of distance, use the Shape field in the Field Script evaluator to return the geodesic length of the line feature in the units of the network attribute. This is in contrast to using the system-managed Shape_Length field that contains the planar length of each line feature in the feature class's coordinate system, which is subject to the coordinate system's distortions.
Note that the Shape and Shape_Length fields are found in file geodatabase feature classes. For enterprise geodatabases, the geometry and length fields may be named differently depending on your DBMS.
The field evaluator can be modified to take a field expression as the value instead of a single field. For example, if the units of the network attribute are in meters but the units of source data are in feet, you can create an expression to convert the feet to meters when the network dataset is built.
Field expression evaluators written in VBScript execute faster than those written in Python. You should use VBScript for this reason; however, keep in mind the following when choosing a scripting language:
Attributes can be assigned a constant value. The value can be numeric for cost, descriptor, and hierarchy attributes, or a Boolean data type of Use Restriction or Ignore Restriction for a restriction attribute.
The function evaluator calculates attribute values by performing a simple mathematical operation or logical comparison on another attribute value and a parameter value or constant. For numeric attribute types, the values can be derived by multiplying, dividing, adding, or subtracting another network attribute and a constant or parameter value. For Boolean attribute types, the values are derived from an expression that compares another attribute value to a parameter value or constant, for example, MaxHeight < VehicleHeight.
Note:The addition + and subtraction - operators cannot be used on a cost attribute.
The addition + and subtraction - operators were added at ArcGIS Pro 2.3. The evaluators will produce an error in older versions of the software.
The turn category evaluator assigns a default cost value for transitioning between two edge elements. The cost is based on the deflection angle between the two edges and the road class (primary, secondary, or local) of the edges that are traversed. It can also depend on the category of the crossroad being crossed by the turn movement. For example, you can use the turn category evaluator to make all left turns, which are determined by deflection angles, from local roads onto secondary roads take longer than left turns from local roads onto other local roads. You can also specify added costs for other transitions, such as adding a 10-second delay when continuing straight at an intersection of two secondary roads.
Attributes can be assigned from the result of executing a VBScript or Python script. This provides a way to model complex attributes. Unlike other evaluators, the element script evaluator does not assign values when a network is built. Instead, it assigns values when a network analysis requires the use of that attribute, which can occur at solve time. If the values of an attribute change constantly, the use of the element script evaluator can ensure that attributes are updated for each network analysis.
Since the element script evaluator calculates its values at the time of analysis, this evaluator tends to negatively affect analysis performance. Use another evaluator if possible.
The element script evaluators written in VBScript execute faster than those written in Python. You should use VBScript for this reason; however, keep in mind the following when choosing a scripting language:
Traffic evaluators are designed for traffic data. They can provide travel times for a given time of day and day of the week using historical or live data. They include fallback cost attributes that provide weekday and weekend travel times when specific time-of-day travel times are not available. Traffic evaluators also have a time-independent cost attribute that Network Analyst references when sequencing stops in a route analysis or visits in a vehicle routing problem, and also when the analysis does not specify arrival or departure time.
The Public Transit evaluator calculates the travel time along a public transit line segment based on the scheduled public transit service. The travel time returned includes the wait time until the next scheduled transit trip begins plus the travel time along the transit line segment from one end to the other. Use this evaluator to model people traveling by public transit. It's not designed to model the travel time of buses driving along roads.
The Public Transit evaluator is only available for time-based cost attributes on edge sources known as LineVariantElements when the network dataset's feature dataset and geodatabase contain all the feature classes and tables required by the Network Analyst public transit data model.
Same as Default
There is a default evaluator type for each Source category. When a source evaluator type is set to Same as Default, it uses the evaluator that is set as the default.
Same as Along
When a source evaluator type in the Edges category is set to Same as Along, it uses the evaluator that is used by the source feature Street (Along).
You'll need to rebuild network datasets if the changes you make require the network dataset to access its source feature classes. For instance, creating a field evaluator that pulls time costs from a source feature class requires the network to be rebuilt. Changing the geometry of source features requires the network dataset to be rebuilt. However, the network doesn't need to be rebuilt with other types of evaluators, since these evaluators don't draw information directly from the source feature classes.