Network attributes

Network attributes are associated with attributes on feature classes and object tables in your network. They are derived from the network feature's attributes and cached inside the network topology to aid in performance while attributes are evaluated during a trace or while performing subnetwork management tasks. The values stored as attributes for features and objects are reflected or updated in the associated network attribute each time you validate the network topology.

You can view existing network attributes in a utility network on the Layer Properties dialog box for the utility network. The Attributes and Assignments section on the Network properties tab includes detailed properties of existing network attributes and their assignments (feature class or table and field the network attribute is assigned to). This includes the system-provided and user-defined network attributes for a utility network that are available for tracing and subnetwork management tasks.

The following system-provided network attributes in a utility network are listed in the Attributes and Assignments section of the network properties:

  • Source ID—Unique identifier for the network source in the utility network.
  • Terminal ID—Identifier for the terminal names defined in the utility network's terminal configurations.
  • Asset group—Associated with the Asset group field on network feature classes and tables that provides the major classification for all classes in the structure and domain networks.
  • Asset type—Associated with the Asset type field on network feature classes and tables that provides the minor classification for all classes in the structure and domain networks.
  • Is subnetwork controller—Associated with the Is Subnetwork Controller field on the Device feature class and JunctionObject table. This is assigned to a system-maintained field that is altered when a network feature is set as a subnetwork controller.
  • Tier name—Associated with the Tier name field on the Device feature class and JunctionObject table. This is assigned to a system-maintained field that is altered when a tier is created using the Add Tier tool.
  • Position from—Used to determine position along an edge for midspan connectivity.
  • Position to—Used to determine position along an edge for midspan connectivity.
  • Flow direction—Not implemented. This is reserved for future use.
  • Shape length—Associated with the Shape_Length field on line feature classes in the network. This is an apportionable network attribute that you can use to calculate the total length of a trace, for example, a group of pipes or a portion of a pipe.

Create and assign network attributes

User-defined network attributes are created using the Add Network Attribute tool and assigned to an attribute field using the Set Network Attribute tool.

When configuring network attributes, take the following considerations into account:

  • To assign a network attribute to an attribute field using the Set Network Attribute tool, it must have a compatible data type, as listed above. If an attribute field with the correct data type is not present to set the network attribute, add one using the Add Field tool.
  • You can only assign network attributes that do not allow nulls to fields that are not nullable.
  • You can assign a network attribute to multiple feature classes or object tables in a utility network.
  • A feature class or object table in the utility network can have multiple unique network attribute assignments; however, you can assign a user-defined network attribute to only one field per class. This means that once a user-defined network attribute is assigned to a class for a specific field, that network attribute can no longer be assigned to the same class again.
Note:

When a new network attribute is added, existing named versions can inherit the change by using the reconcile process.

When creating a network attribute using the Add Network Attribute tool, the data type selected for the Attribute Type parameter determines which options are available to define the network attribute. This also determines which attribute fields you can assign the network attribute to after it is created using the Set Network Attribute tool, as the data types must match.

The Attribute Type parameter that is used when creating a network attribute determines which properties are available:

  • Short
    • In Line—Domain Name required for attribute domain
    • Nullable—Supports null values
  • Long
    • In Line—Domain Name required for attribute domain
    • Substitution—Available when In Line is false
    • Nullable—Supports null values
  • Double
    • Apportionable
    • Nullable—Supports null values
  • Date
    • Nullable—Supports null values

Network attribute properties include the following:

In Line—Specifies whether the network attribute is persisted inline. Store the most frequently used network attributes with the In Line property set to True. You can only set this property when the Attribute Type option is an integer data type of Short or Long. Creating a network attribute using the In Line option requires an input attribute domain that is used to calculate the number of bits to store in the network topology. You must assign the same attribute domain used to create the In Line network attribute to the field the network is set on. Also, the values for the field must be positive. If the same network attribute is assigned to multiple classes and attributes, the expectation is that the network attribute has the same representation across classes.

Learn more about calculating the bit size for In Line network attributes

Apportionable—Specifies whether the network attribute will be apportioned across multiple edges belonging to the same network feature. The distribution of the value depends on the percentage along each edge element with respect to the from point of the original network feature. You can only set this property to True when the Attribute Type property is Double.

Learn more about apportionable network attributes

Substitution—Specifies whether the network attribute can be configured for attribute substitution. You can only set the Substitution property to True for network attributes with an Attribute Type property of Long when the In Line property is False.

Calculate the bit size for In Line network attributes

There are a total of 64 bits available in the network topology for the storage of In Line network attributes (both system-provided and user-defined network attributes). The number of bits available for user-defined network attributes created using the In Line option varies depending on the release of ArcGIS Pro used to create the utility network dataset. The ArcGIS Pro release used to create the utility network dataset can be found in the General section on the Network Properties tab of the Utility Network Properties dialog box.

The ArcGIS Pro release used to create the utility network dataset and the number of bits available for user-defined In Line network attributes are provided in the following table:

ArcGIS Pro ReleaseBits available for user-defined In Line network attributes

ArcGIS Pro 3.0 and later

25

ArcGIS Pro 2.9

21

ArcGIS Pro 2.8 and earlier

20

When creating In Line network attributes, it is important to understand how to calculate the bit size storage. The Attributes and Assignments section of the network properties lists how many bits are used for existing network attributes under the Inline (Bit Size) column. Note that there are additional system-provided network attributes used internally that are not listed in the network properties.

When creating network attributes that have the In Line property set as True, you must specify an attribute domain to determine the bit size for storage. To determine the bit size needed to store the attributes, the maximum coded domain value is used. You can calculate the bit size by providing the maximum coded value for the domain into the following binary logarithm as the value n:

ceiling(log2(n + 1))

For example, the LifeCycleStatus coded value domain has four code/description pairs (0: unknown, 1: In-service, 2: Proposed, 3: Abandoned). The maximum coded value of 3 in this example requires two bits to store the network attribute:

log2(3+1)=2

Note:

In the above example, if the inline network attribute was defined as nullable, another bit would be required, log2(3+1)+1=3.

The table below can be used to determine the bit size needed for the inline network attribute. The maximum value for the coded value domain must be less than or equal to the maxDomainValue.

Bit Size

1

2

3

4

5

6

7

8

9

10

11

maxDomainValue

1

3

7

15

31

63

127

255

511

1023

2047

The bit size required for storage of In line network attributes is defined by the maxDomainValue. Nullable network attributes use an additional bit added to the overall bit size.

Work with network attributes

Tracing and network diagrams rely on network attribute information stored in a network topology. If changes are made to an attribute on a feature that is associated with a network attribute, a dirty area is generated to mark the feature for validation. When working with junction and edge objects, dirty areas are created for spatial features in their containment or attachment hierarchy. Validating the network topology helps ensure that information in the network topology is consistent for analytic events.

When updating a subnetwork, you can use network attributes to define the features and records that will be updated. This is controlled by the subnetwork definition set for a tier. Filters are used to apply the update to only network features with a specific attribute value—for example, only AB phase, where phase is the network attribute and AB is the filter value.

Network attributes are also used as weights to control traversability and to model the cost of tracing paths in the network. For example, in a water network, a specific amount of pressure is lost when traveling the length of a transmission main due to surface friction in the pipes. The network attribute value in this example is derived from the length attribute of the transmission mains.

Apportionable network attributes

Apportionable network attributes are configured with the apportionable property set to True. You can assign network attributes with the apportionable property to fields in the line, polygon, and junction feature classes as well as to junction and edge object tables, but only line features and edge objects will display apportioned behavior.

For apportionable network attributes, analytic results are more precise because apportionable values such as line length, impedance, and other flow characteristics are computed for more accurate locations of tap features on a line. This means that trace analytics using apportionable network attributes with a function (Add, Average, Count, Max, Min, and Subtract) will return apportionable results based on edge elements of the network features.

The image below provides two examples:

  • The top image shows a connected line feature with a single edge. The example has one line feature and two junction features. Two line end junction features are spatially coincident with the end vertices of the line. This is the simple case of a connected line feature in a utility network.
  • The bottom image shows a connected line with two edges. The example has one line feature and three junction features. A tap junction feature is added and snapped to a vertex. This logically divides the line feature into subparts that are called edges. An edge is a set of one or more line segments between two junction features that are connected to a line feature. When doing analysis on apportionable network attributes, edges are collected to more precisely define the scope of analysis.
Edges and lines in a utility network
To reflect real utility systems, the utility network allows you to place many junction features on the vertices of a long line feature. This is useful when you want to model many service points over a single line feature that extends some distance. Secondary lines are then connected to the junction features.

To learn more about tracing with network attributes, see Configure a trace.

Also, see Subnetwork trace configuration to learn how network attributes are used within the subnetwork definition of a tier.

Advanced network attribute configuration

It is appropriate to use network attributes when modeling a characteristic of assets with more than one state (for example, phase or pressure). Network attributes are used during attribute propagation and attribute substitution. Propagation uses network attributes to propagate calculated values during a trace or subnetwork management event. Substitutions allow you to swap propagated values out for other values; for example, AC becomes BC. To work with attribute substitution, you must create the network attribute with the Substitution property set to True and a Network Attribute to Substitute value defined.

To learn more about these configurations, see Attribute propagation and Attribute substitution.