简介

获取选中的对象、构件或模型等信息,对其进行特殊强调处理。

简介

获取选中的对象、构件或模型等信息,对其进行特殊强调处理。

1.获取选择信息

在不同场景中,我们获取到的信息是不一样的。

如下举例了一些获取选择信息的方式:

1.1 获取要素对象信息

// drawingSelectPlugin是绘制选择插件的实例
const objectArr = drawingSelectPlugin.model.selectFeaturesArrObj

1.2 获取对象信息

通过BIM模型的过滤器可以获取对象信息

// 定义对象id
let OBJECTID_1
// 定义图层
const layer = new ubm.BuildingLayer({
    id: 'demo',
    title: '建筑',
    url: 'https://stream.rinkslab.com:8060/stream/i3s/OYFNsphMZp8x/PUgYcMkJE9Np/M5EJcAYBFBBE/qu1VoZ8jEP4u/SceneServer',
    onPick: (result) => {
        console.log('构件信息:', result.attributes)
        OBJECTID_1 = result.attributes.id
    }
})

2. 强调效果

比如对象有泛光、描边、去色、隐藏、孤立、冻结和隔离等效果;构件可以多选、定位、染色;模型可以染色、透选;楼层切换有孤立和隔离等两种选择。

2.1 泛光、描边、去色

其本质上都是高亮,我们在场景初始化的时候通过配置HighlightOptions属性可以来控制其是否生效。

HighlightOptions属性的详情可参考对象特效

2.2 隐藏、孤立、冻结、隔离

其实现方式都是在图层上使用BuildingFilter类,来对图层的特征进行过滤。

详情可参考BIM模型中的过滤器的使用

2.3 染色

本质上都是调用ColorizerPlugin插件,可跳转染色插件页了解详情。

2.4 多选和透选

在场景中,可以对模型进行多选和透选操作。定义如下:

  • 多选:就是可以在场景中进行多选操作,如:在场景中,可以选择模型的多个构件。操作方式:鼠标点击构件+按住ctrl键
  • 透选:全称穿透选择,就是可以帮助用户在复杂的层级结构或嵌套组件中直接选择目标元素的功能。操作方式:鼠标点击目标元素+按住alt键

注: 在场景中,以上效果相互之间可以进行组合使用。如:在模型中,可以选择多个构件,并把其孤立。

BIMFlux AI