视口过滤插件
视口过滤是指在场景中,对BIM模型根据特定条件筛选和显示建筑元素。
视口过滤插件
视口过滤是指在场景中,对BIM模型根据特定条件筛选和显示建筑元素。
在SDK中我们集成了隔离、冻结、孤立、隐藏这四种效果,形成了视口过滤插件。
1. 功能说明
我们在场景中可以根据需求,有选择的使用隔离、冻结、孤立、隐藏这四种功能效果。具体功能可参考后续方法,其中有详细的介绍和使用。
2. 构造
在SDK中实例化视口过滤插件,代码示例如下:
const visibilityPlugin = new ubm.VisibilityPlugin()
注:使用model相关的属性和函数方法时,需要在实例化视口过滤插件时就把视图关闭,代码示例如下:
const visibilityPlugin = new ubm.VisibilityPlugin({
// 关闭视图
isCreateview: false
})
3. 属性
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
| isStart | boolean[] | 必填 | 是否开启model功能 |
| type | string | 必填 | 模式类型 |
| hiddenData | Attributes[] | 必填 | 隐藏数据 |
| solitaryData | Attributes[] | 必填 | 孤立数据 |
| frozenData | Attributes[] | 必填 | 冻结数据 |
| isolatedData | Attributes[] | 必填 | 隔离数据 |
3.1 是否开启model功能
开启视口过滤插件model功能,代码示例如下:
visibilityPlugin.model.isStart = true
注:需要在注册完插件之后就执行,否则单独调用model功能是不生效的。
3.2 模式类型
模式类型有以下几种:
| 值 | 说明 |
|---|---|
| hide | 隐藏 |
| solitary | 孤立 |
| frozen | 冻结 |
| isolated | 隔离 |
3.3 获取当前的模式数据
获取隐藏数据,代码示例如下:
const hiddenData = visibilityPlugin.model.hiddenData
同理也可以获取:孤立数据"solitaryData",冻结数据"frozenData"和隔离数据"isolatedData"。
4. 方法
| 方法 | 说明 |
|---|---|
| typeChange() | 模式切换 |
| delete() | 删除 |
| showAll() | 显示所有 |
4.1 模式切换
typeChange(type: IVisibilityType): void
参数type是模式类型。
隐藏选中的模型构件,代码示例如下:
visibilityPlugin.model.typeChange('hide')
4.2 删除
delete(type: string, detail: { data: IDeleteItem[], item: IDeleteItem, index: number }): void
参数type有四种类型:隐藏'hide' , 孤立'solitary' , 冻结'frozen' , 隔离'isolated'
参数detail的数据结构如下:
// 删除的数据项`IDeleteItem`
interface IDeleteItem extends Attributes {
guid: string
id: number
isParent: boolean
of_category: string
of_level: string
title: string
}
删除第一个数据项,代码示例如下:
visibilityPlugin.model.delete('hide',{data:hiddenData.slice(1),item:hiddenData[0],index:0})
4.3 显示所有
showAll(): void
在场景中显示全部的模型构件,代码示例如下:
visibilityPlugin.model.showAll()

BIMFlux AI
