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.

Existing network attributes in a utility network can be viewed 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—The 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 rank—Associated with the Tier rank 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.
  • 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 can be used 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, the following considerations need to be taken 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, one can be added using the Add Field tool.
  • Network attributes that do not allow nulls can only be assigned to fields that are not nullable.
  • A network attribute can be assigned 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, a user-defined network attribute can be assigned 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.

When creating a network attribute using the Add Network Attribute tool, the data type chosen for the Attribute Type parameter will determine what options are available to define the network attribute. This will also determine what attribute fields the network attribute can be assigned to after it is created using the Set Network Attribute tool, as the data types must match.

The Attribute Type parameter used when creating a network attribute determines what 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. The most frequently used network attributes should be stored with the In Line property set to True. This property can only be set when the Attribute Type 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. The same attribute domain used to create the In Line network attribute must also be assigned 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. This property can only be set to True when the Attribute Type is Double.

Learn more about apportionable network attributes

Substitution—Specifies whether the network attribute can be configured for attribute substitution. The Substitution property can only be set to True for network attributes with an Attribute Type 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; this includes user-defined and system-provided network attributes. A total of 20 bits are reserved in the network topology for user-defined network attributes that are created using the In Line option. 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, an attribute domain must be specified to determine the bit size for storage. To determine the bit size needed to store the attributes, the max coded domain value is used. The bit size can be calculated by entering the max coded value for the domain into the following binary logarithm as the value n.

ceiling(log2(n + 1))
Note:
In line network attributes defined as nullable require an extra bit to be added to the total bit size.

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

log2(3+1)=2

Also refer to the table below; the maximum value for the coded value domain must be less than or equal to the maxDomainValue to determine the bit size used for the network attribute.

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

In line network attributes defined as nullable use an extra bit for 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 information in the network topology is consistent for analytic events.

When updating a subnetwork, network attributes can be used 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 certain 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 certain 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. Network attributes with the apportionable property can be assigned 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, or 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, the network attribute must be created with the Substitution property set to True and a Network Attribute to Substitute defined.

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