Select to view content in your preferred language

Resolving topology errors

4031
0
03-04-2025 05:53 AM
RobertKrisher
Esri Regular Contributor
4 0 4,031

Update: Comments are now locked on this thread. If you have questions, please ask in them in the ArcGIS Utility Network Questions community.

In the Analyzing topology errors article we showed you how you can use the new Analyze Network Data tool to identify topology errors in your utility network data. In this article we will show you how you can use the resulting database and the Apply Error Resolutions tool to resolve the topology errors the tools discovered.

Sample workflow for identifying and resolving topology errors.Sample workflow for identifying and resolving topology errors.

The Apply Error Resolutions tool is best used during the data migration process, before the network topology has been enabled and before data has been loaded into an enterprise geodatabase. This tool must be run on a utility network with a disabled topology. The tool can be used to apply resolutions against data that has been loaded into an enterprise geodatabase if the data is not registered as versioned, and the tool is run as a user that has permissions to edit the corresponding feature classes using the database connection.

While there can be many causes and resolutions for each error, this article will discuss the most common approaches to addressing each error along with resources you can use to help you determine the most appropriate path forward. The errors in this article are listed from most common to least common, for the errors that the Analyze Network Data tool can identify. For more information on why Analyze Network Data only supports certain errors, read the Analyzing topology errors article. Errors with no automated resolutions are included in this article with references to additional resources which can help you resolve the errors.

Below you will find a summary of the different types of errors the tool can detect.

Topology Error

Description

Actions Available

Ambiguous connectivity 

This occurs when there is more than one rule available for a potential connection.

None

Duplicate vertices 

This occurs when a line has two or more duplicate vertices.

Delete (Vertex)

Empty Geometry 

This error occurs when a line feature has a zero or near-zero length.

Delete (Feature)

Edge connectivity policy 

This occurs when a line has a connection that violates its edge-connectivity policy.

None

Invalid terminal 

This occurs when the from terminal id or to terminal id field of a line is not valid for one of the devices/junctions its connected to.

None

Midspan terminal device 

This occurs when a device that has a terminal configuration is drawn midspan on a line.

None

Missing junction 

This occurs when two features with a different asset type are connected without a junction or device.

Create

Rule missing 

This occurs when two features are potentially connected but there is not a rule that permits it.

None

Self-intersecting line 

This occurs when the geometry of a line intersects itself.

Delete (Vertex)

Shape length 

This error occurs when a line feature has a zero or near-zero length.

Delete (Feature)

Stacked points 

This occurs when two or more junctions or devices are within a tolerance (xy) and occupy the same z location.

Delete (Feature)

Update (Feature)

Subnetwork tap 

This error occurs when a feature with the subnetwork tap category is drawn at the end point of a single line or at the endpoint intersection of two lines.

None

Note: There are two delete actions: Delete All and Delete All But First. The table above lists both these actions as simply Delete, because either action is appropriate. Additionally, the table above specifies whether the delete applies to the entire feature or just the vertex in error even though this information isn't specified in the action.

When reviewing errors using the attribute table, consider changing the row height of your table so you can see all the asset types on an error. You can change this by going to Project > Options > Table > Columns and rows > Row Height and set it to triple or double.

RobertKrisher_0-1741033229070.png

Error Resolutions

Manually cleaning up data is something that many customers do in preparation for their data migration. However, certain errors lend themselves better to automated cleanup, or you may decide that for your first attempt at migrating to the utility network you want to quickly apply automated fixes to your data.

Regardless of the reason for your decision, you can specify automated resolutions to your data using the Error Resolutions table. The Error Resolutions table has the following columns:

  • Error code – The error identified at the location
  • Analysis types– A concatenated list of all the features present at that location.
  • Resolution key – An ID that uniquely identifies the error associated with the fix
  • Group position – When multiple types of features are present at a location, this gives the order they were encountered
  • Feature type – The network class, asset group, and asset type of the feature in this location
  • Source class – The utility network layer the fix will be applied to
  • Asset group – The asset group of the feature the fix will be applied to
  • Asset type – The asset type of the feature the fix will be applied to
  • Context – Whether the feature at this location represents an error, or a feature coincident with the error
  • Action – What action to apply to this feature to resolve the issue, if any
  • Delta X – How much the feature should be offset in the x direction
  • Delta Y – How much the feature should be offset in the y direction
  • Delta Z – How much the feature should be offset in the z direction
  • Delta step – If there are multiple features offset at this location, how much each subsequent feature should be offset
  • Create/Update type – The class, asset group, and asset type to use for creating a new feature or updating the existing feature.

The following table describes the actions available for each fix.

Action

Description

Create

This action will create a new feature. When this action is selected you must specify the type of feature using the Create/Update type field.

Update all

Update all but first

This action will update the corresponding vertex or feature(s). If there are multiple features associated with the fix you can choose to update all the features or update all of them but the first feature.

 

When updating the feature(s) you can use this action to update the location of a feature using the delta x, y, z, and step fields. When there are multiple coincident features make sure you specify a delta step value to ensure each subsequent feature is offset from the previous feature.

 

You can also change the asset group and/or asset type of a feature using the Create/Update type field.

Delete all

Delete all but first

This action will delete the corresponding vertex or feature(s). If there are multiple features associated with the fix you can choose to delete all the features/vertices or to delete all of them but the first feature/vertex.

When reviewing the fixes for an error you will often see multiple rows with the same Resolution Key. Each of these rows either represents one of the features in error or a feature that is coincident with the feature in error. When specifying an action, you will almost always be applying the fix to one or more of the error features. If there are multiple error rows for the fix, you will need to think carefully about which feature you apply the fix to.

Once you’ve determined the fixes for all the issues you want to automate, you’re ready to apply the resolutions. Any remaining issues will need to be resolved manually. The manual resolution process can be facilitated by using the location features in the diagnostics database.

Missing junction

This error occurs when two features with a different asset type are connected without a junction or device. Each error indicates whether it occurs between the midpoint or endpoint of each line. For two lines to be connected the endpoint of one line must connect to the endpoint, or midspan, on the other line.

Missing junction errors are described in three different ways:

  • End/End - The endpoints of two separate lines are coincident. If no junction is created there will be an error in the utility network. This error is typically resolved by creating a feature at the endpoint of the two lines to connect the two features.
  • Mid/End - The endpoint of one line connects midspan to another line. If no junction is created there will be an error in the utility network. This error is typically resolved by creating a feature on the endpoint of one line that taps into the second.
  • Mid/Mid - The two lines share midspan vertices. These lines are not connected and do not report any errors in the utility network. They are reported for informational purposes.

The following screenshot shows an example of an end-end and a mid-end error.

RobertKrisher_0-1741033317146.png

Midpoint/midpoint coincidence, shown as mid-mid, situations are included for informational purposes only since these features are not considered for connectivity and will not create errors. You do not need to apply resolutions for mid-mid missing junction errors to have an error free topology. These errors are filtered out from the layers using definition queries but are visible if you look at the table directly or remove the definition queries.

RobertKrisher_1-1741033317147.png

The most common resolution to missing junction errors is to create a junction feature at the intersection of the two lines. To perform this resolution, look at the resolutions for the error, you will see at least two different line types in the list. Select only one of the resolutions, set its action to Create, and pick the Create/Update type of the point feature you want to create at that location.

Missing junction resolution.png

Additional Resources

Address common errors in the utility network (article)

Utility Network Error management – Topology Errors (article)

Utility Network Error Management – Electric topology errors (article)

Utility Network Error Management – Gas and Pipeline Topology errors (article)

Utility Network Error Management – Water topology errors (article)

Fix connectivity errors in a utility network (tutorial)

About error features (online help)

Stacked points

This occurs when two or more junctions or devices within the xy tolerance and the same z location. The records in error will indicate which kinds of features are stacked, if only a single type is listed then there are multiple instances of that feature stacked at the location. The group key column will indicate the types of lines, if any, present at that location and can help you understand how to best resolve the error.

RobertKrisher_3-1741033317150.png

The most common resolution to this error is to leave one feature in place and delete or offset the remaining features. To perform this resolution, find all the point features for the error in the Error Resolutions table. Identify the feature you want to keep and set its action to Delete all but first.

RobertKrisher_0-1741095549949.png

If there are different types of point features that are stacked, set the action to the other point resolutions to be Delete All.

RobertKrisher_1-1741095566309.png

Another common resolution to this problem is to use the Update all and Update all but first actions with an xyz offset to keep the original features for review later. If you are offsetting multiple types of point features, make sure their offsets are configured such that they don’t create stacked point features at the new offset.

RobertKrisher_2-1741095594999.png

Additional Resources

Address common errors in the utility network (article)

Utility Network Error management – Topology Errors (article)

Utility Network Error Management – Electric topology errors (article)

Utility Network Error Management – Gas and Pipeline Topology errors (article)

Utility Network Error Management – Water topology errors (article)

Fix topology errors in a utility network (tutorial)

About error features (online help)

Self-intersecting line

This occurs when the geometry of a line intersects itself. The error location feature will indicate the specific vertex where the line intersects itself and the group key column on the error summary will indicate if there are other features present at that location. It is important to take note of how many different types are listed in the records in error column, because this will determine how you apply resolutions to the fix.

RobertKrisher_7-1741033317156.png

The most common resolution to this error is to delete the vertices responsible for the line intersecting itself. If there is only a single type in the records in error column, find the line for the error in the resolutions table, and set its action to Delete all but first.

RobertKrisher_3-1741095617758.png

If there are multiple resolutions with the same type in the records in error column then you will need to set one of the types to Delete all but first and set the remaining types to Delete all. This occurs when a self-intersecting line occurs at the start or end vertex of a feature, resulting in both a mid and end vertex being reported as being in error. The most common resolution to this issue is to set the resolution to the midspan vertex to delete all and set the resolution to the end vertex to delete all but first. This will preserve the endpoint of the line while removing the vertices inside the line causing self-intersection.

Additional Resources

About error features (online help)

Tools for checking and repairing geometries (online help)

Duplicate vertices

This occurs when a line has two or more duplicate vertices within xy tolerance and at the same z value. The error location feature will indicate the specific location of the duplicate vertices and the group key column on the error summary will indicate if there are other features present at that location.

Duplicate vertices summary.png

The most common resolution to this error is to delete the duplicate vertices. To perform this resolution, find the row for the error in the fixes table and set the action on all the line features to Delete all but first. When the error resolutions are applied this will delete all the duplicate vertices for the features specified, while leaving the unique vertices for the line intact.

Duplicate vertices resolution.png

Additional Resources

About error features (online help)

Tools for checking and repairing geometries (online help)

Empty Geometry

This error occurs when a line feature has an empty geometry. The only automated resolution to this error is to delete the feature, since an empty geometry cannot be updated.

Empty geometry summary.png

The most common resolution to this error is to manually draw the geometry of the feature, if you can identify its location. If you wish to automatically delete this feature through an action in the error resolution tool, find the row in the Error Resolution table with this error code and set its action to Delete all.

Empty geometry resolution.png

Additional Resources

About error features (online help)

Tools for checking and repairing geometries (online help)

Shape length

This error occurs when a line feature has a zero or near-zero length.

Shape length summary.png

The most common resolution to this error is to manually redraw the line to correct the geometry. If you wish to automatically delete this feature through an action in the Error Resolution table, find the row in the table with this error code and set its action to Delete all.

Shape length resolution.png

Additional Resources

About error features (online help)

Tools for checking and repairing geometries (online help)

Midspan terminal device

This occurs when a device that has a terminal configuration is drawn midspan on a line.

Midspan terminal device summary.png

The most common resolution to this issue is to split the line at the location where the device is connected. The tools cannot currently apply an automatic resolution for this problem; however, you can use the By Feature mode of the Split tool to split multiple features at once.

Split features.png

One of the most precise ways to identify the features that need to be split is to use the Select By Location tool with the Relationships: Contains Clementini and Within Clementini.


Select Midspan Features.png

Additional Resources

Utility Network Error management – Topology Errors (article)

Utility Network Error Management – Electric topology errors (article)

Utility Network Error Management – Gas and Pipeline Topology errors (article)

Utility Network Error Management – Water topology errors (article)

Fix topology errors in a utility network (tutorial)

About error features (online help)

Ambiguous connectivity

This occurs when there is more than one rule available for a potential connection between features. This kind of error is not common when using the Migrate To Utility Network tool unless you add rules to your network and/or change an asset type’s terminal configuration.

Ambiguous connectivity summary.png
 

The most common cause for this error is a line connected to a device with terminal with multiple rules, in which case the resolution is to specify which terminal the line is connected to using the Modify Terminal Connections pane.

Set both terminals.png

Note: When modifying the terminal connections of a line always use the Modify Terminal Connections pane, as it will ensure you only select terminals that are valid for the line based on the devices on either end of the line. If you modify terminal connections using the attribute editor or the attributes pane you run the risk of introducing Invalid Terminal errors.

Additional Resources

Address common errors in the utility network (article)

Utility Network Error management – Topology Errors (article)

Utility Network Error Management – Electric topology errors (article)

Utility Network Error Management – Gas and Pipeline Topology errors (article)

Utility Network Error Management – Water topology errors (article)

Fix connectivity errors in a utility network (tutorial)

Configure rules for a utility network (tutorial)

About error features (online help)

Rule missing

This occurs when two features are potentially connected but there is not a rule that permits it. This kind of error is not common when using the Migrate to utility network tool unless you add a new asset type without adding a corresponding rule, remove existing rules, or change an asset type’s terminal configuration.

Missing rule summary.png

If the two features should be allowed to connect, then the resolution is to add a rule allowing them to connect. You can see a list of all candidate rules that can be imported in the RuleCandidates.csv created alongside the analysis results database. Be sure to review the rules file before importing it to ensure that all the rules are correct for your data and to ensure you do not unintentionally introduce ambiguous connectivity.

Import missing rules.png

If the two features should not be allowed to connect, ensure the features have the correct asset types and are drawn correctly. You can achieve this by either manually changing the feature’s asset group and asset type, or by using the Update all action in the resolution table to automatically correct the asset types of all the affected features.

Update asset group and type.png

If you want to learn how to modify your connectivity rules to improve data quality, read the refining your connectivity rules article (coming soon!)

Additional Resources

Address common errors in the utility network (article)

Utility Network Error management – Topology Errors (article)

Utility Network Error Management – Electric topology errors (article)

Utility Network Error Management – Gas and Pipeline Topology errors (article)

Utility Network Error Management – Water topology errors (article)

Fix connectivity errors in a utility network (tutorial)

Configure rules for a utility network (tutorial)

About error features (online help)

Refining your connectivity rules (tutorial)

Invalid terminal

This occurs when the from terminal id or to terminal id field of a line is not valid for one of the devices or junctions it is connected to. This kind of error is not common when using the Migrate To Utility Network tool unless you manually assign terminals without using the Assign Terminal Connections tool.

Invalid terminal summary.png

The most common resolution to this error is to update the terminal on the line to a valid value using the Modify Terminal Connections pane.

Fix invalid terminal.png

Additional Resources

Address common errors in the utility network (article)

Utility Network Error management – Topology Errors (article)

Utility Network Error Management – Electric topology errors (article)

Utility Network Error Management – Gas and Pipeline Topology errors (article)

Utility Network Error Management – Water topology errors (article)

Fix connectivity errors in a utility network (tutorial)

Configure rules for a utility network (tutorial)

About error features (online help)

Edge connectivity policy

This error occurs when a line with edge connectivity policy of End Vertex has a line, junction, or device connected to one of its midspan vertices. Models created by the Migrate To Utility Network tool have a default connectivity policy of Any Vertex. If you encounter this error, you must either redraw the line, the features connected to the line or change the connectivity policy for the edge in error.

Additional Resources

Fix topology errors in a utility network (tutorial)

Configure rules for a utility network (tutorial)

About error features (online help)

Subnetwork tap

This error occurs when a feature with the subnetwork tap category is drawn at the end point of a single line or at the endpoint intersection of two lines. This kind of error is not possible when using the Migrate To Utility Network tool unless you manually assign the subnetwork tap category to an asset type.

Subnetwork tap summary.png

If the junction or device feature is improperly classified, you can use the error resolution table to correct its asset group and asset type. Otherwise, you must manually resolve this error by adjusting the location of the junction/device so it is no longer at the endpoint of both lines. You can learn more about the topological requirements of subnetwork taps by reading the additional resources below.

Additional Resources

About error features (online help)

Subnetwork taps (online help)

 

Contributors