Public Overridable ReadOnly Property Layers As ReadOnlyObservableCollection(Of Layer)
public virtual ReadOnlyObservableCollection<Layer> Layers {get;}
Public Overridable ReadOnly Property Layers As ReadOnlyObservableCollection(Of Layer)
public virtual ReadOnlyObservableCollection<Layer> Layers {get;}
{
//Get the group layers
IReadOnlyList<GroupLayer> groupLayers = map.Layers.OfType<GroupLayer>().ToList();
//Note: Run within a QueuedTask
foreach (var group in groupLayers)
{
if (group.Layers.Count == 0) //No layers in the group
{
//remove the group
map.RemoveLayer(group);
}
}
}
{
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
}
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)