具有剖切微件 BuildingSceneLayer
在此示例中,我们从 BIM 项目加载具有详细内部信息的建筑物。该建筑物是使用 GeoScene Pro 从 Revit 项目中作为 BuildingSceneLayer 发布的。
创建 BuildingSceneLayer 并将其添加到 WebScene 的工作方式与其他图层相同:
BuildingSceneLayer 包含建筑物和内部的复杂数字模型。 由于高度复杂, BuildingSceneLayer 中的数据以子层的形式组织。通常,BuildingSceneLayer 包含一个仅显示建筑物外壳(外墙、屋顶等)的概览层。这有助于将模型视为单个要素。BuildingSceneLayer 还包含一个完整的模型 BuildingGroupSublayer,其中包含按学科分组的建筑物中的所有要素:建筑、结构、电气和机械。每个学科都包含具有屋顶、墙壁、门、空调单元、照明设备、柱子、基础等要素的 BuildingComponentSublayers。
通常在将 BuildingSceneLayer 添加到 WebScene 或 Map 时,只有概览图层可见。在我们的示例中,我们希望从头开始查看完整模型。所以我们隐藏概览层并显示完整的模型层:
“FullModel” 和 “Overview” 是 BuildingSceneLayer 的直接子层。如果您想在 BuildingSceneLayer 的子组中搜索,您可以使用 BuildingSceneLayer.allSublayers,它是子图层的平面数组。要识别子层,最好使用 BuildingSceneLayer.modelName,因为这是基于 I3S 规范 的标准名称,无法更改。
BuildingComponentSublayers 类似于 SceneLayer。您可以应用渲染器或启用弹出窗口。
在这个示例中,我们应用了一个渲染器,将所有室内门都涂成红色:
由于建筑物中有如此多的详细信息,建筑物的某些部分不可避免地会遮挡其他部分。Slice 微件可用于以简单的方式发现建筑物的内部部分。
可以像这样将微件添加到 SceneView:
通过以编程方式将它们添加到 SliceViewModel.excludedLayers 属性中,可以从切片中排除我们想要详细检查的层。
用户还可以使用微件 UI 选择排除的图层:单击“从切片中排除图层”,然后单击应直接在场景中排除的图层。
在这个示例中,我们还在微件实例化时设置了一个 SlicePlane。使用 SliceViewModel.shape 可以检索或设置用于切片的平面。