Note: Support for 3D on mobile devices may vary, view the system requirements for more information.
In this sample we load a building with detailed interior information from a BIM project. The building was published as a BuildingSceneLayer from a Revit project using ArcGIS Pro.
A BuildingSceneLayer contains complex digital models of buildings and interiors. Because of the high complexity, it's important to be able to filter the data. This sample shows how to filter a BuildingSceneLayer based on the floor number.
Several filters can be set in the filters collection of a BuildingSceneLayer, but only one can be active. Each filter has an id and you can activate a filter by setting its id in BuildingSceneLayer.activeFilterId. This filter is then set on all the sublayers of the BuildingSceneLayer.
In this sample we create a slider that filters the BuildingSceneLayer for each floor:
// define a floor filter
const buildingFilter = new BuildingFilter({
filterBlocks: [{
// an SQL expression that filters using the BldgLevel field
filterExpression: "BldgLevel = 3",
filterMode: {
type: "solid"
}
}]
});
// set the filter in the filters array on the layer
buildingLayer.filters = [buildingFilter];
// specify which filter is the one that should be applied
buildingLayer.activeFilterId = buildingFilter.id;
Another way to select which features should be displayed is by using the Slice widget. See the BuildingSceneLayer with Slice widget sample to understand how it works.