Represents a diagram manager object, the core class in the network diagram API.

Get the Diagram Manager
using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
{
// Todo - do something
}
Get Network Diagrams
using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
{
// get all the diagrams
IReadOnlyList<NetworkDiagram> diagrams = diagramManager.GetNetworkDiagrams();
// get a diagram by name
NetworkDiagram diagram = diagramManager.GetNetworkDiagram(diagrameName);
// get diagrams by extent
diagrams = diagramManager.GetNetworkDiagrams(extentOfInterest);
// get diagrams from a set of utility network feature GlobalIDs
diagrams = diagramManager.GetNetworkDiagrams(globalIDs);
// get diagrams from a set of utility network feature GlobalIDs within an extent
diagrams = diagramManager.GetNetworkDiagrams(extentOfInterest, globalIDs);
}
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;
}
}
Get Diagram Templates
public void RetrieveDiagramTemplates(UtilityNetwork utilityNetwork)
{
using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
{
// get all templates
IReadOnlyList<DiagramTemplate> templates = diagramManager.GetDiagramTemplates();
// get a template by name
DiagramTemplate template = diagramManager.GetDiagramTemplate(templateName);
}
}
Get Network Diagrams from a Diagram Template
public void GetNetworkDiagramFromDiagramTemplates(UtilityNetwork utilityNetwork)
{
using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
{
// get the first templates
DiagramTemplate template = diagramManager.GetDiagramTemplates().FirstOrDefault();
// get the network diagrams fromt he template
IEnumerable<NetworkDiagram> diagrams = template.GetNetworkDiagrams();
// or get a network diagram by name
NetworkDiagram diagram = template.GetNetworkDiagram(diagrameName);
}
}
Create a Network Diagram
public void CreateNetworkDiagram(UtilityNetwork utilityNetwork, IEnumerable<Guid> globalIDs)
{
using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
{
// get the template
DiagramTemplate template = diagramManager.GetDiagramTemplate(templateName);
// create the diagram
NetworkDiagram diagram = diagramManager.CreateNetworkDiagram(template, globalIDs);
}
}
Get Network Diagram Information as JSON string
public void GetDiagramContent(UtilityNetwork utilityNetwork)
{
using (DiagramManager diagramManager = utilityNetwork.GetDiagramManager())
{
// get a diagram by name
NetworkDiagram diagram = diagramManager.GetNetworkDiagram(templateName);
string json_content = diagram.GetContent(true, true, true, true);
}
}
System.Object
ArcGIS.Core.CoreObjectsBase
ArcGIS.Core.Data.NetworkDiagrams.DiagramManager
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.