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 Release | Bits 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 line network attributes defined as nullable require an extra bit to be added to the total bit size.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 |
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.
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.