属性详情插件

属性详情,主要是用于显示模型元素特性的,所以该插件的使用需要和场景中的模型进行联动。

属性详情插件

属性详情,主要是用于显示模型元素特性的,所以该插件的使用需要和场景中的模型进行联动。

它主要有两种使用方式,如:1)点击模型构件时,通过右键菜单中的特性,可查看构件属性信息。2)直接和场景目录控件BuildingTreeWidget 进行联动。

在创建场景时,默认是加载了该插件的,如需要关闭属性详细插件,可通过设置场景参数popup中的属性autoOpenEnabledfalse,代码示例如下:

...
  viewingMode: 'local',
  popup: {
    autoOpenEnabled: false,// 关闭属性详情插件
    // autoOpenEnabled: true  // 默认true
  },
...

在该插件中可以使用属性isContentFold来控制视图面板中的展示目录是否折叠,默认不折叠false,即插件初始化加载时,插件面板目录中的内容是展开的。

可在场景加载时设置该属性,代码示例如下:

...
    scene.goTo({
        fullExtent: layer.fullExtent,
        tilt: 60
      }, {
        speedFactor: 2,
    }).then(() => {
      setTimeout(() => {
        // 设置属性面板内容折叠
        scene.plugin._plugins['propertyView'].view.isContentFold = true
      });
    })
...

1. 功能说明

属性详情插件的主要功能就是查看模型的构件属性信息。

2. 构造

在SDK中实例化属性详情插件,代码示例如下:

const basePropertyViewPlugin = new ubm.BasePropertyViewPlugin()

在插件初始化设置属性isContentFold,代码示例如下:

// 方法1 - 直接在实例化的时候设置
const basePropertyViewPlugin = new ubm.BasePropertyViewPlugin({isContentFold:true})
// 方法2 - 在实例化之后设置
basePropertyViewPlugin.view.isContentFold = false

3. 方法

方法说明
getProperty()根据构件guid获取构件属性

3.1 根据构建guid获取构建属性

getProperty(layer: ILayer, element_guid: string | number): void

参数layer是建筑图层,element_guid是建筑上的构件GUID。

  • 根据构件guid获取构件属性信息,代码示例如下:
const res = await  basePropertyViewPlugin.model.getProperty(layer,'97a909bd-6940-48dd-b2f8-e0b539413c24')

4. 使用

4.1 联动右键菜单使用

在场景中,选中模型构件,点击右键菜单中的属性,即可查看构件属性信息。代码示例如下:

const scene = new ubm.Scene('app', {
  viewingMode: 'local',
  popup: {
    autoOpenEnabled: true // 也可不设置,默认就是true
  },
  ui: {
    //右键菜单
    contextMenu: {
      enable: true,
      menus: [[
        {
          label: '属性', // 可自定义命名
          name: 'property', // 属性详情插件
        }
      ]]
    }
  }
})

4.2 联动场景目录使用

在场景中与场景目录控件进行联动使用。有以下几种操作:

  • 对场景模型中的构件进行选择操作,场景目录控件中会跳转到相应的构件节点,属性详情插件可查看当前构件的属性信息。
  • 可从场景目录中选中模型构件节点,则场景模型中当前构件会高亮显示,再通过对模型中的高亮状态的构件进行选中操作,来查看构件属性信息。

调用属性详情插件,示例代码如下:

const scene = new ubm.Scene('app', {
  viewingMode: 'local',
  popup: {
    autoOpenEnabled: true
  },
  // 工具栏
  ui: {
    toolbar: {
      container: 'container',
      tools: [{
        //场景目录空间
        name: 'tree',
        label: '构件树',
        // 构件树属性
        props: {
            // 是否打开属性面板
            openProperty: true
        }
      }]
    }
  }
})

BIMFlux AI