# BIM 构件树
mapgis-3d-bim-component
# 属性
# vueKey
- 类型:
String
- 可选
- 非侦听属性
- 默认值:
default
- 描述: mapgis-web-scene 组件的 ID,当使用多个 mapgis-web-scene 组件时,需要指定该值,来唯一标识 mapgis-web-scene 组件,同时 mapgis-web-scene 插槽中的组件也需要传入相同的 vueKey,让组件知道应该作用于哪一个 mapgis-web-scene。
# vueIndex
- 类型:
Number
- 可选
- 非侦听属性
- 默认值:
(Math.random() * 100000000).toFixed(0)
随机计算值 - 描述: 当 mapgis-web-scene 插槽中使用了多个相同组件时,例如多个 mapgis-3d-igs-doc-layer 组件,用来区分组件的标识符。
# outStyle
- 类型:
Object
- 可选
- 非侦听属性
- 默认值:
{ "position": "absolute", "zIndex": 1000, "padding": "0px", "margin": "0px", "height": "600px", "width": "400px", "top": "0px", "left": "0px" }
- 描述: 自定义对应的包裹样式。
# type
- 类型:
String
- 可选
- 非侦听属性
- 默认值:
ModelLoaded
等待数据加载完毕后再请求对应的 bim 结构树 - 描述:
- ModelLoaded,必须等视图中的数据加载完毕后才能主动获取 bim 构件树
- ModelUrl,向网络异步请求 bim 构件树数据,目前需要做同步等待处理
# layers
- 类型:
Array
- 可选
- 非侦听属性
- 默认值:
[]
- 描述: 分层分户的图层列表, 每个内部结构是{title, vueIndex}
[
{
"title": "BIM-3栋",
"vueIndex": "test_bim_layer1"
}
]
# enablePopup
- 类型:
Boolean
- 非侦听属性
- 描述: 是否开启 popup 弹窗
- 默认值:
false
# popupOptions
- 类型:
Object
- 非侦听属性
- 描述: popup 样式,详情请见Popup 样式
- 默认值:
{ popupType: "card" }
# enableCollapse
- 类型:
Boolean
- 非侦听属性
- 描述: 是否允许交互面板收缩隐藏
- 默认值:
true
收缩 | 展开 |
---|---|
![]() | ![]() |
# enableBim
- 类型:
Boolean
- 非侦听属性
- 描述: 是否允许激活 BIM 的隔离面板的能力,特别说明,如果数据是通过 BIM 工具来构件的,此处设置为 true,否则只有高亮功能,没有隔离面板的能力。
- 默认值:
false
激活 | 不激活 |
---|---|
![]() | ![]() |
# enableDynamicQuery
- 类型:
Boolean
- 非侦听属性
- 描述: 是否允许动态查询,目前走 m3d 的都不支持动态查询 只有 g3d 支持动态查询,因此该参数设置无效,后续待支持
- 默认值:
false
# 示例
<template>
<mapgis-web-scene>
<mapgis-3d-m3d-layer v-bind="m3d" vueIndex="test_bim_layer1" />
<mapgis-3d-bim-component v-bind="bim" />
</mapgis-web-scene>
</template>
<script>
import { Style } from "@mapgis/webclient-es6-service";
const { LineStyle, PointStyle, FillStyle, Shadow } = Style;
export default {
name: "HelloWorld",
data() {
return {
m3d: {
enablePopup: true,
url: "http://192.168.88.204:8089/M3D/2.0/高级住所模型/高级住所模型.mcj",
},
bim: {
enableBim: true,
enablePopup: true,
outStyle: {
position: "absolute",
zIndex: 1000,
padding: "0px",
margin: "0px",
height: "600px",
width: "400px",
top: "10px",
},
layers: [
{
title: "BIM-3栋",
vueIndex: "test_bim_layer1",
},
],
},
};
},
};
</script>