ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / BuildingDisciplineSceneLayer Class
Members Example

In This Topic
    BuildingDisciplineSceneLayer Class
    In This Topic
    BuildingDisciplineSceneLayer are sublayers of a BuildingSceneLayer.
    Object Model
    BuildingDisciplineSceneLayer ClassLayer ClassCIMDataConnection ClassTimeExtent ClassCIMBaseLayer ClassElevationTypeDefinition ClassSpatialReference ClassTimeParameters ClassSurfaceZsResult ClassMap ClassILayerContainer InterfaceEnvelope Class
    Syntax
    Remarks
    BuildingDisciplineSceneLayers represent each of the individual disciplines (architectural, structural, MEP, etc) that are contained within the building and which were derived from the original BIM data used to create the "parent" BuildingScenelayer
    BuildingDisciplineSceneLayers are never created, or exist, stand-alone. They have a composite relationship with the BuildingScenelayer which contains them.
    A FilterDefinition is actually applied to the underlying BuildingDisciplineSceneLayers content (within the special "Full Model" BuildingDisciplineSceneLayer)
    Example
    Get BuildingDisciplineSceneLayer Discipline
    {
      var bsl_discipline = MapView.Active.Map.GetLayersAsFlattenedList().OfType<BuildingDisciplineSceneLayer>().FirstOrDefault(l => l.Name == "Architectural");
      var disciplineName = bsl_discipline.GetDiscipline();
    }
    Enumerate the Discipline Layers from a Building SceneLayer
    {
      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;
    
      //collect information on the disciplines
      var name = fullModel.Name;
    
      var discipline = fullModel.GetDiscipline();
      //etc
      //TODO - use collected information
    
      disciplines.Add(discipline, fullModel);
    
      //Discipline layers are composite layers too
      foreach (var childDiscipline in fullModel.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));
        // Recursively call this "function" to go deeper
      }
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
          ArcGIS.Desktop.Mapping.MapMember
             ArcGIS.Desktop.Mapping.Layer
                ArcGIS.Desktop.Mapping.CompositeLayer
                   ArcGIS.Desktop.Mapping.BuildingDisciplineSceneLayer

    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also