ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Data.NetworkDiagrams Namespace / NetworkDiagram Class / GetDiagramInfo Method
Example

In This Topic
    GetDiagramInfo Method
    In This Topic
    Get NetworkDiagramInfo from the network diagram. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    public NetworkDiagramInfo GetDiagramInfo()
    Public Function GetDiagramInfo() As NetworkDiagramInfo

    Return Value

    The NetworkDiagramInfo of the network diagram.
    Exceptions
    ExceptionDescription
    A geodatabase-related exception has occurred.
    Example
    Get a list of Network Diagrams with inconsistent ConsistencyState
    public List<NetworkDiagram> GetInconsistentDiagrams(UtilityNetwork utilityNetwork)
    {
      // Get the DiagramManager from the utility network
    
      using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
      {
        List<NetworkDiagram> myList = new List<NetworkDiagram>();
    
        // Loop through the network diagrams in the diagram manager
    
        foreach (NetworkDiagram diagram in diagramManager.GetNetworkDiagrams())
        {
          NetworkDiagramInfo diagramInfo = diagram.GetDiagramInfo();
    
          // If the diagram is not a system diagram and is in an inconsistent state, add it to our list
    
          if (!diagramInfo.IsSystem && diagram.GetConsistencyState() != NetworkDiagramConsistencyState.DiagramIsConsistent)
          {
            myList.Add(diagram);
          }
          else
          {
            diagram.Dispose(); // If we are not returning it we need to Dispose it
          }
        }
    
        return myList;
      }
    }
    Editing Network Diagram
    public void EditDiagram(NetworkDiagram diagram, List<Guid> globalIDs)
    {
      //     These routines generate their own editing transaction, and therefore cannot be wrapped
      //     in a separate transaction. Because the editing performed by these routines cannot
      //     be undone, thise routines can also not be called within an editing session. All
      //     edits in the current edit session must be saved or discarded before calling these
      //     routines.
    
      // refresh the diagram - synchronizes it based on the latest network topology
      diagram.Update();
    
      // append features to the diagram
      diagram.Append(globalIDs);
    
      // overite the diagram with a set of features 
      diagram.Overwrite(globalIDs);
    
      NetworkDiagramInfo info = diagram.GetDiagramInfo();
      if (info.CanExtend)
      {
        diagram.Extend(NetworkDiagramExtendType.ExtendByContainment);
    
        // or extend for only a set of utility network globalIDs
        diagram.Extend(NetworkDiagramExtendType.ExtendByContainment, globalIDs);
      }
      // delete a diagran
      diagram.Delete();
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also