Skip to main content

AttributeEvaluator

Summary

A base class for a network attribute custom evaluator.

Discussion

This class is used as the base class when creating a custom evaluator class (class MyCustEval(arcpy.nax.AttributeEvaluator):).

The attribute_name property is the attribute that the custom evaluator will apply to and is required. If an attribute by that name is not found, the custom evaluator will not be attached to the network dataset.

A list of specific source feature class names that the custom evaluator will apply to is optional. If the specific_sources argument is not provided, the custom evaluator will apply to all sources.

The attribute, networkQuery, and attached properties are set after the custom evaluator is associated with a specific network dataset.

Syntax

AttributeEvaluator(attribute_name, {specific_sources})

Name Explanation Data type

attribute_name

The name of the network attribute.

String

specific_sources

(Optional)

A list of network source names. The source names can be of type string or none.

The default value is None.

List

Properties

Name Explanation Data type

attached

(Read only)

Indicates whether the evaluator is attached to a network.

Boolean

attribute

(Read only)

The network attribute that the custom evaluator applies to.

Attribute

attributeName

(Read only)

The network attribute name that the custom evaluator applies to.

String

networkQuery

(Read only)

The network query object for the network that the attribute evaluator is attached to.

NetworkQuery

sourceNames

(Read only)

The list of network source names that the custom evaluator applies to. The list is comprised of string types.

String

Methods

attach(network_query)

Indicates whether the custom evaluator will be applied to the network, such as checking whether the required attributes exist. This method is invoked when a custom evaluator is attached to the network dataset.

Note:

The method may be invoked multiple times depending on the number of threads accessing the network.

Name Explanation Data type

network_query

The network query instance for the current network dataset.

NetworkQuery

Return value

Data type Explanation

Boolean

True, if the network has the specified attribute.

refresh()

Manages the state of a custom evaluator object. The method can be used to refresh an evaluator's state, such as re-reading specific resources or refreshing object-specific caches. This method is automatically invoked before each solve is run.

edgeValue(edge)

The final evaluated attribute value for an edge. Custom logic can be applied in this method to determine the final attribute value. The method is invoked at the end of the solver's evaluation of the edge.

Name Explanation Data type

edge

The edge being evaluated.

Edge

Return value

Data type Explanation

Object

The attribute value. This can be an integer, a float or, a boolean.

edgeValueAtTime(edge, time, time_usage)

The final evaluated attribute value for an edge when time is used. Custom logic can be applied in this method to determine the final attribute value. The method is invoked at the end of the solver's evaluation of the edge when time has been used (for evaluators that support time).

Name Explanation Data type

edge

The edge being evaluated.

Edge

time

The time the edge will be encountered along the route.

DateTime

time_usage

The time usage type.

NetworkTimeUsage

Return value

Data type Explanation

Object

The attribute value. This can be an integer, a float or, a boolean value.

junctionValue(junction)

The final evaluated attribute value for a junction. Custom logic can be applied in this method to determine the final attribute value. This method is invoked at the end of the solver's evaluation of the junction.

Name Explanation Data type

junction

The junction being evaluated.

Junction

Return value

Data type Explanation

Object

The attribute value. This can be an integer, a float, or a boolean value.

junctionValueAtTime(junction, time, time_usage)

The final evaluated attribute value for a junction when time is used. Custom logic can be applied in this method to determine the final attribute value. The method is invoked at the end of the solver's evaluation of the junction when time has been used (for evaluators that support time).

Name Explanation Data type

junction

The junction being evaluated.

Junction

time

The time the junction will be encountered along the route.

DateTime

time_usage

The time usage type.

NetworkTimeUsage

Return value

Data type Explanation

Object

The attribute value. This can be an integer, a float, or a boolean value.

turnValue(turn)

The final evaluated attribute value for a turn. Custom logic can be applied in this method to determine the final attribute value. The method is invoked at the end of the solver's evaluation of the turn.

Name Explanation Data type

turn

The turn being evaluated.

Turn

Return value

Data type Explanation

Object

The attribute value. This can be an integer, a float, or a boolean value.

turnValueAtTime(turn, time, time_usage)

The final evaluated attribute value for a turn when time is used. Custom logic can be applied in this method to determine the final attribute value. The method is invoked at the end of the solver's evaluation of the turn when time has been used (for evaluators that support time).

Name Explanation Data type

turn

The turn being evaluated.

Turn

time

The time the turn will be encountered along the route.

DateTime

time_usage

The time usage type.

NetworkTimeUsage

Return value

Data type Explanation

Object

The attribute value. This can be an integer, a float, or a boolean value.