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

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

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