
The latter half of 2024 has been an incredibly exciting time for the Utility Network community! Versions 200.5 and 200.6 of the ArcGIS Maps SDKs for Native apps saw the completion of many crucial capabilities for associations, network topology, and traceability.
This blog will cover the changes that wrap up this body of work for Utility Networks in addition to metadata enhancements and support for Utility Network Schema version 7.
Code examples for this blog are written in C# using ArcGIS Maps SDK for .NET but all concepts apply to the Qt, Swift, and Kotlin Maps SDKs.
Editing Enhancements
Association Editing

Associations allow us to create digital representations of real-world relationships between two features. The following types of associations are supported by ArcGIS Maps SDKs for Native Apps:
- Connectivity associations allow connectivity to be established between two features that are not geometrically coincident.
- Containment associations tell us that one of the features is contained inside the other.
- Structural attachment associations are dedicated to connections between network features and structure network features that are physically attached, such as an electric device that is connected to a pole.
ArcGIS Maps SDK version 200.5 introduced the following new routines to association editing:
New API | Use when… |
---|---|
AddAssociationAsync(UtilityAssociation) | Creating a new association or updating an existing one |
CanAddAssociationAsync(UtilityAssociation) | Verifying that a utility network can accept new associations prior to adding or updating one |
DeleteAssociationAsync(UtilityAssociation)/ | Deleting one or more associations from a utility network |
CanDeleteAssociations | Verifying that associations can be deleted from the utility network |
UtilityAssociation(UtilityAssociationType, UtilityElement, UtilityElement) | Creating a new association object |
UtilityAssociation(UtilityAssociationType, UtilityElement, UtilityElement, Boolean) | Creating a new association object with containment visibility specified |
UtilityAssociation(UtilityAssociationType, UtilityElement, UtilityElement, Double) | Creating a new association specifying the relative location of a junction along the non-spatial edge |
As an example: a high voltage transformer needs to connect to the low-side terminal of a medium voltage connector. Since the association is currently set to the high-side terminal, the user will need to update the association accordingly. This can be done by creating a copy of the existing association with updates applied and replacing the old one with the new one. Below is an example of how this can be done:
Validate Network Topology
Editing utility network features creates dirty area features. These features indicate areas of the network where feature edits are out of sync with the network index. Version 200.3 of the Native Maps SDKs provides access to Validate Network Topology. This process updates the network topology with any valid edits that have taken place. Error features are created if invalid connectivity is detected. This works the same as Validate Network Topology on other platforms, such as ArcGIS Pro. This reconciles discrepancies between the two tables, allowing for trace. If the edits comply with the relevant network topology rules, the edits are applied to the topology table. Otherwise, the dirty area representing that change becomes an error feature that prevents syncing and tracing so that these operations won’t unintentionally produce inaccurate results. Check out our samples to see this process in action!
If your utility network has schema version 4 or later, you can verify NetworkState is supported, then identify any existing dirty areas or errors in the utility network using UtilityNetwork.GetStateAsync(). If errors are present, they must be resolved. If no errors are present, but there are dirty areas, you can ValidateNetworkTopology() to resolve them.

New metadata
Version 200.6 of the Native Maps SDKs adds two properties to the AssetType class:
A Linear Connectivity Policy, defined as a property of AssetType, specifies the connectivity policy for edges in the network. There are three options available:
- AnyVertex: Connectivity can be established anywhere along the edge
- EndVertex: Connectivity can only be established at the first or last vertex of the edge
- None: This value is returned if the AssetType represents a junction, indicating, “not applicable”.
When a container feature is split, the AssetType’s Container Split Policy specifies whether the contents of that container are split. The options are as follows:
- SplitContent: Content features are split at the same location, and each part is associated with the appropriated container.
- DoNotSplitContent: Content features are not split. The content is associated with both of the resulting containers.
- None: This value is returned on asset types that are not edge containers.
Please note that, while ArcGIS Maps SDK do not currently support splitting, the metadata given here can be used to create a custom split tool that behaves correctly.
Tracing Enhancements
ValidateConsistency trace option
Validate Consistency is a trace configuration option that adds a check for dirty areas to a trace operation. If Validate Consistency is set to true and the trace encounters a dirty area, the trace will fail. Most traces will set this value to ensure correct results.
Validate Consistency is explained in more detail in ArcGIS Pro documentation.
Flow direction-based trace
A typical subnetwork trace will traverse outward from a given starting point until one or more subnetwork controllers are found. This method is an upstream trace. Conversely, a downstream trace will traverse the network from the starting point away from subnetwork controllers.
Some utilities, particularly in the gas and water markets, prefer to maintain flow without the extra costs of maintaining subnetworks. They do this by creating a flow-based network. Starting in 200.7, the Native Maps SDKs will support tracing against these data models.
In a flow direction-based network, each linear feature contains a field called “FLOWDIRECTION” with one of three values, each of which represents the intended flow direction:
- “With digitized”, means resources flow from the From point on the edge to the To point on the edge – i.e., the order that the line was originally drawn.
- “Against digitized,” is the opposite. This option represents a flow from the To point to the From point.
- “indeterminate” means resources can flow in either direction.
Flow direction-based tracing can be enabled as a property of a trace configuration. Set “UseDigitizedDirection” to true and the trace will follow the direction given by the value of the “FLOWDIRECTION” field.
More information on flow direction-based networks can be found in the “Introducing Tracing using Digitized Direction in the Utility Network” ArcGIS Blog post.
Support for schema version 7
A Utility Network schema provides the template upon which a utility network’s tables are built. Thus, the capabilities available to a particular utility network are initially defined by its schema version.
The Utility Network Management Release ArcGIS Blog post from May 2024 was closely followed by ArcGIS Maps SDKs for Native Apps version 200.5, which introduced support for utility network schema version 7. The highlight of version 7 is the addition of 64-bit object IDs and big integer fields, a change introduced to UNs created in ArcGIS Pro from version 3.3 on.
A few more updates have been made to the fields and domains of some standard utility network feature classes, with support for new data types added. Details can be found in ArcGIS Pro documentation.
Summary
With versions 200.5 and 200.6 of the ArcGIS Maps SDKs for Native Apps, we’ve wrapped up work on a number of utility network capabilities and are excited to present them to our users.
Association editing allows us to create digital representations of the relationships between features. The introduction of validate network topology will give users the ability to reconcile edits into the source data’s topology table, allowing for trace in user applications. Furthermore, flow direction-based traces can configure the direction of a trace based on the direction in which line features were digitized. Finally, updates to network metadata and support for utility network schema version 7 provide upgraded capability for developing apps that support bigger, more versatile operations.
If you’d like to learn more about how to build utility network capabilities into your applications, check out the following Native Maps SDKs samples:
We can’t wait to hear how these tools benefit our users’ ability to develop utility network-based applications! We’d love to hear your feedback – join the discussion on the Esri Community forums and share your thoughts, ideas and questions. Your feedback helps us improve and shape future releases.
Commenting is not enabled for this article.