ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.NetworkDiagrams Namespace / DiagramElementQueryByElementTypes Class / QueryDiagramContainerElement Property
Example

In This Topic
    QueryDiagramContainerElement Property
    In This Topic
    Indicates whether or not DiagramContainerElements are returned.
    Syntax
    Public Property QueryDiagramContainerElement As Boolean
    public bool QueryDiagramContainerElement {get; set;}
    Example
    Get Diagram Elements
    {
      // Get the diagram elements whose extent intersects the active map extent
      static void GetDiagramElements(MapView mapView, NetworkDiagram networkDiagram)
      {
        // Create a DiagramElementQueryByExtent to retrieve diagram element junctions whose extent
        // intersects the active map extent
    
        DiagramElementQueryByExtent elementQuery = new DiagramElementQueryByExtent();
        elementQuery.ExtentOfInterest = MapView.Active.Extent;
        elementQuery.AddContents = false;
        elementQuery.QueryDiagramJunctionElement = true;
        elementQuery.QueryDiagramEdgeElement = false;
        elementQuery.QueryDiagramContainerElement = false;
    
        // Use this DiagramElementQueryByExtent as an argument to the QueryDiagramElements method
        DiagramElementQueryResult result = networkDiagram.QueryDiagramElements(elementQuery);
    
        // Get the container, junction, edge elements. 
    
        IReadOnlyList<DiagramContainerElement> containerElements = result.DiagramContainerElements;
    
        // In this case result.DiagramJunctionElements and result.DiagramEdgeElements will be empty
        // because elementQuery.QueryDiagramEdgeElement and elementQuery.QueryDiagramContainerElement are set to 'false'
        IReadOnlyList<DiagramJunctionElement> junctionElements = result.DiagramJunctionElements;
    
        IReadOnlyList<DiagramEdgeElement> edgeElements = result.DiagramEdgeElements;
      }
    }
    Change the Layout of a Network Diagram
    {
      // Change the layout of a network diagram by querying for all the diagram elements, editing their shapes,
      static void ChangeDiagramLayout(DiagramManager diagramManager, string diagramName)
      {
        // Retrieve a diagram
        using (NetworkDiagram diagramTest = diagramManager.GetNetworkDiagram(diagramName))
        {
          // Create a DiagramElementQueryByElementTypes query object to get the diagram elements we want to work with
          DiagramElementQueryByElementTypes query = new DiagramElementQueryByElementTypes();
          query.QueryDiagramJunctionElement = true;
          query.QueryDiagramEdgeElement = true;
          query.QueryDiagramContainerElement = true;
    
          // Retrieve those diagram elements
          DiagramElementQueryResult elements = diagramTest.QueryDiagramElements(query);
    
          // Create a NetworkDiagramSubset object to edit this set of diagram elements
          NetworkDiagramSubset subset = new NetworkDiagramSubset();
          subset.DiagramJunctionElements = elements.DiagramJunctionElements;
          subset.DiagramEdgeElements = elements.DiagramEdgeElements;
          subset.DiagramContainerElements = elements.DiagramContainerElements;
    
          // Save the new layout of the diagram elements
          diagramTest.SaveLayout(subset, true);
        }
      }
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also