视口过滤插件

视口过滤是指在场景中,对BIM模型根据特定条件筛选和显示建筑元素。

视口过滤插件

视口过滤是指在场景中,对BIM模型根据特定条件筛选和显示建筑元素。

在SDK中我们集成了隔离、冻结、孤立、隐藏这四种效果,形成了视口过滤插件。

1. 功能说明

我们在场景中可以根据需求,有选择的使用隔离、冻结、孤立、隐藏这四种功能效果。具体功能可参考后续方法,其中有详细的介绍和使用。

2. 构造

在SDK中实例化视口过滤插件,代码示例如下:

const visibilityPlugin = new ubm.VisibilityPlugin()

注:使用model相关的属性和函数方法时,需要在实例化视口过滤插件时就把视图关闭,代码示例如下:

const visibilityPlugin = new ubm.VisibilityPlugin({
  // 关闭视图
  isCreateview: false 
})

3. 属性

属性类型可选说明
isStartboolean[]必填是否开启model功能
typestring必填模式类型
hiddenDataAttributes[]必填隐藏数据
solitaryDataAttributes[]必填孤立数据
frozenDataAttributes[]必填冻结数据
isolatedDataAttributes[]必填隔离数据

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