ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.UtilityNetwork.Trace Namespace / CircuitResult Class
Members Example

In This Topic
    CircuitResult Class
    In This Topic
    Represents the result of ArcGIS.Core.Data.UtilityNetwork.Telecom.Circuit information from a trace output.
    Syntax
    Public NotInheritable Class CircuitResult 
       Inherits Result
    public sealed class CircuitResult : Result 
    Example
    Run a circuit trace in the telecom domain network
    await QueuedTask.Run(() =>
    {
      using (TraceManager traceManager = utilityNetwork.GetTraceManager())
      using (CircuitManager circuitManager = utilityNetwork.GetCircuitManager(telecomDomainNetwork))
      {
        Circuit circuitToTrace = circuitManager.GetCircuits(new CircuitFilter(circuitNames)).FirstOrDefault();
    
        TraceConfiguration traceConfiguration = new TraceConfiguration()
        {
          MaxHops = 10,
          NumPaths = 5,
          DomainNetwork = telecomDomainNetwork,
          InferConnectivity = true
        };
    
        TraceArgument traceArgument = new TraceArgument(circuitToTrace)
        {
          Configuration = traceConfiguration,
          ResultTypes = new List<ResultType> { ResultType.Circuit },
          ResultOptions = new ResultOptions() { IncludeGeometry = true }
        };
    
        CircuitTracer circuitTracer = traceManager.GetTracer<CircuitTracer>();
        IReadOnlyList<Result> results = circuitTracer.Trace(traceArgument);
    
        // Iterate through the circuit trace results
        foreach (Result result in results)
        {
          if (result is CircuitResult circuitResult)
          {
            IReadOnlyList<CircuitPath> circuitPaths = circuitResult.CircuitPaths;
            foreach (CircuitPath circuitPath in circuitPaths)
            {
              Circuit circuit = circuitPath.Circuit;
              TracePath path = circuitPath.Path;
              IReadOnlyList<PathConnectivity> pathConnectivities = path.PathConnectivities;
    
              foreach (PathConnectivity pathConnectivity in pathConnectivities)
              {
                Console.WriteLine($"Edge: {pathConnectivity.Edge.GlobalID}, Junction: {pathConnectivity.Junction.GlobalID}");
              }
              Geometry geometry = circuitPath.Geometry;
              IReadOnlyDictionary<int, TracePath> sectionPaths = circuitPath.SectionPaths;
    
              foreach (KeyValuePair<int, TracePath> sectionPath in sectionPaths)
              {
                int sectionID = sectionPath.Key;
                TracePath sectionGeometry = sectionPath.Value;
                Console.WriteLine($"Section ID: {sectionID}, Section Geometry: {sectionGeometry.Geometry.ToJson()}");
              }
            }
          }
          else
          {
            Console.WriteLine("Unexpected result type.");
          }
        }
      }
    });
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.Data.UtilityNetwork.Trace.Result
          ArcGIS.Core.Data.UtilityNetwork.Trace.CircuitResult

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.7 or higher.
    See Also