Select to view content in your preferred language

How to navigate utility network connectivity

09-04-2023 07:05 AM
New Contributor III


I have tried to find the equivalent of manually navigating the UN compared to the Geometric Network.

In the old GN world, we developed several tools that just needs the things connected at one hop or travels the network for "short" spans. We used to access INetTopology.GetAdjacentEdge or IEdgeFeature.FromJunctionFeature to do simple one hop connectivity traversing, or IForwardStart.FindAdjacent and IForwardStart.QueryAdjacentEdge when having to travel for a longer distance.

We are now converting our tools to the new Pro SDK world, and we are struggling to find how to port this kind of code, I have found plenty of Trace examples, but this kind of tools are not made for a Trace task, they would need a complete rewrite and this is the last option.

Does anyone know how to navigate the utility network using ArcGIS Pro SDK without using a Trace?

Thank you in advance

0 Kudos
3 Replies
Esri Regular Contributor

Hi Francesco!

The unfortunate fact is that there is no easy way to do this. In the geometric network, pages of the network index were read into memory, and navigating from edge to junction was a fast operation. As the utility network is services-based, each of these hops would require a REST call; this would not perform at all.

Here are my recommendations:
* Investigate whether the tracing tools can be used to return a small number of features. For example, you could set up a function barrier using Count to stop after a certain amount of hops
* Use the Trace geoprocessing tool (via the geoprocessing API) and ask to return connectivity information (we're planning to add this to the Pro SDK soon)
* Write a Server Object Extension using the Enterprise SDK. The Enterprise SDK, which runs on the server, has full access to fine-grained topology

We are investigating other ideas to provide fine-grained topology for a small section of the network, but these are not something that is currently available.

I hope this helps answer the question (even if it is not the answer you were hoping for),


0 Kudos
New Contributor III

Hello @RichRuh and thanks for your answer.

We are facing a problem here, we have tons of code that rely on navigating step by step the network, some tools does not know upfront how many steps they will have to face while some others can, for example we set a particular field on a line feature depending on the other line feature that is attached. I am evaluating all the code to determine which one can be converted to be a trace, but I also need to know exactly the order of the elements being traversed (eg: I need to progressive number the cables that goes from a substation to another).

Another problem we are facing is that the vast majority of our tools are console applications, and many of those are using Geoprocessing which is not available in core host applications, so using Geoprocessing will not solve all the problems.

The SOE looks to be the best way to go for short hops, maybe even long hops, can you point me to some related documentation please? Also, function barriers looks interesting and I need to dig them a bit further.

Thank you and best regards


0 Kudos