ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / CompositeLayer Class / FindLayers Method
Name of the layer
(optional) When true the search continues in group layers. (default value = true)
Example

In This Topic
    FindLayers Method (CompositeLayer)
    In This Topic
    Finds layers by name.
    Syntax
    public virtual IReadOnlyList<Layer> FindLayers( 
       string name,
       bool recursive
    )
    Public Overridable Function FindLayers( _
       ByVal name As String, _
       Optional ByVal recursive As Boolean _
    ) As IReadOnlyList(Of Layer)

    Parameters

    name
    Name of the layer
    recursive
    (optional) When true the search continues in group layers. (default value = true)

    Return Value

    Example
    Enumerate the Discipline Layers from a Building SceneLayer
    public void QueryBuildingSceneLayer()
    {
      var bldgLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<BuildingSceneLayer>().First();
      var disciplines = new Dictionary<string, BuildingDisciplineSceneLayer>();
      //A Building layer has two children - Overview and FullModel
      //Overview is a FeatureSceneLayer
      //Full Model is a BuildingDisciplineSceneLayer that contains the disciplines
      
      var fullModel = bldgLayer.FindLayers("Full Model").First() 
                                     as BuildingDisciplineSceneLayer;
      CollectDisciplineLayers(fullModel, disciplines);
      
    }
    
    internal void CollectDisciplineLayers(BuildingDisciplineSceneLayer disciplineLayer,
      Dictionary<string, BuildingDisciplineSceneLayer> disciplines)
    {
      //collect information on the disciplines
      var name = disciplineLayer.Name;
      //At 2.x - var layerType =
      //      ((ISceneLayerInfo)disciplineLayer).SceneServiceLayerType.ToString();
    
      var discipline = disciplineLayer.GetDiscipline();
      //etc
      //TODO - use collected information
    
      disciplines.Add(discipline, disciplineLayer);
    
      //Discipline layers are composite layers too
      foreach (var childDiscipline in disciplineLayer.Layers
                          .OfType<BuildingDisciplineSceneLayer>())
      {
        //Discipline layers can also contain FeatureSceneLayers that render the
        //individual full model contents
        var content_names = string.Join(", ", childDiscipline.Layers
             .OfType<FeatureSceneLayer>().Select(fl => fl.Name));
        CollectDisciplineLayers(childDiscipline, disciplines);
      }
    }
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also