Viewer3D_文档_BIMFACE_BIM应用二次开发平台

Glodon.Bimface.Viewer.Viewer3D

类:操作三维模型

Constructor

new Glodon.Bimface.Viewer.Viewer3D(config)

Parameters
名称 必填 类型 说明 示例
config Y Viewer3DConfig 配置项

Methods

render()

渲染整个场景
当调用了viewer3D的其他函数(用于控制显示的函数),必须手动调用render(),场景才会显示效果
如果同时需要调用多个函数,强烈建议在最后调用一次render()

addView(viewToken)

添加一个模型到场景

Parameters
名称 必填 类型 说明 示例
viewToken Y String
hideComponents(objectIds)

隐藏构件(已弃用,由hideComponentsById替代)

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
hideComponentsById(objectIds)

根据构件ID隐藏构件

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
hideComponentsByObjectData(conditions)

根据筛选条件隐藏构件

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
showComponents(objectIds)

显示构件(已弃用,由showComponentsById替代)

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
showComponentsById(objectIds)

根据构件ID显示构件

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
showComponentsByObjectData(conditions)

根据筛选条件显示构件

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
showAllComponents()

显示所有构件

transparentComponentsById(objectIds)

根据构件ID设置构件为半透明

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
transparentComponentsByObjectData(conditions)

根据筛选条件设置构件为半透明

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
opaqueComponentsById(objectIds)

根据构件ID取消构件半透明

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
opaqueComponentsByObjectData(conditions)

根据筛选条件取消构件半透明

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
opaqueAllComponents()

取消所有构件半透明

overrideComponentsColorById(objectIds, color)

根据构件ID给构件着色

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
color Y Color 颜色
restoreComponentsColorById(objectIds)

根据构件ID恢复构件的原来颜色

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
overrideComponentsColorByObjectData(conditions, color)

根据筛选条件给构件着色

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
color Y Color 颜色
restoreComponentsColorByObjectData(conditions)

根据筛选条件恢复构件的原来颜色

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
clearOverrideColorComponents()

恢复全部构件的原来颜色

restoreDefault()

恢复默认显示

isolateComponentsById(objectIds, state)

根据构件ID隔离构件,其他全部隐藏或半透明

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
state Y IsolateOption 隔离方式 Glodon.Bimface.Viewer.IsolateOption.MakeOthersTranslucent
isolateComponentsByObjectData(conditions, state)

根据筛选条件隔离构件,其他全部隐藏或半透明

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
state Y IsolateOption 隔离方式 Glodon.Bimface.Viewer.IsolateOption.MakeOthersTranslucent
clearIsolation()

清除隔离

setIsolatedComponentColor(color)

设置被隔离构件的颜色

Parameters
名称 必填 类型 说明 示例
color Y Color 颜色
restoreIsolatedComponentColor()

恢复隔离状态下其他构件的颜色

getIsolatedComponentColor()

获取被隔离构件的颜色

Returns
类型 说明
Color 颜色
disableComponentsSelectionById(objectIds)

根据构件ID禁止构件被选中(已弃用)

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
setSelectedComponentsById(objectIds)

根据构件ID设置多个构件为选中集合

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
addSelectedComponentsById(objectIds)

根据构件ID在选中集合中继续添加构件

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
getSelectedComponents()

获取选中集合中的构件ID数组

Returns
类型 说明
String Array 多个objectId的数组
removeSelectedId(objectIds)

根据构件ID从选中集合中删除构件

Parameters
名称 必填 类型 说明 示例
objectId Y String Array 多个objectId的数组 [“x1”, “x2”]
showExclusiveComponentsByObjectData(conditions)

根据筛选条件显示构件,其余全部隐藏

Parameters
名称 必填 类型 说明 示例
conditions Y Object Array 筛选条件,查看说明
setComponentsOpacity(objectIds, opacity)

根据构件ID设置构件半透明,或取消构件半透明

Parameters
名称 必填 类型 说明 示例
objectIds Y String Array 多个objectId的数组 [“x1”, “x2”]
opacity Y OpacityOption 半透明,或取消半透明 Glodon.Bimface.Viewer.OpacityOption.Translucent
getCameraStatus()

获取相机位置信息,用于保存后恢复相机视点

Returns
类型 说明
Object 相机位置信息
setCameraStatus(cameraStatus)

根据相机位置信息恢复视点

Parameters
名称 必填 类型 说明 示例
cameraStatus Y Object getCameraStatus返回的对象
setView(view)

让三维模型回到标准视角

Parameters
名称 必填 类型 说明 示例
view Y ViewOption 标准视角 Glodon.Bimface.Viewer.ViewOption.Home
zoomToBoundingBox(boundingBox)

缩放到指定包围盒

Parameters
名称 必填 类型 说明 示例
boundingBox Y Object TODO TODO
zoomToSelectedComponents()

缩放到加入选中集合的构件

zoomIn()

三维模型放大

zoomOut()

三维模型缩小

getCurrentState()

获取当前模型的浏览状态

Returns
类型 说明
Object TODO
setState(state)

恢复模型的状态

Parameters
名称 必填 类型 说明 示例
state Y Object getCurrentState()的返回值 TODO
setCameraAnimation(enabled)

是否允许转场动画(目前仅支持setCameraStatus()、setState()、 setView()三种API)

Parameters
名称 必填 类型 说明 示例
enabled Y Boolean 是否允许转场动画 false
getAreas(callback)

获取空间

Parameters
名称 必填 类型 说明 示例
callback Y Function 获取空间的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 空间信息
getAreaProperty(Id, callback)

获取空间属性

Parameters
名称 必填 类型 说明 示例
Id Y String 空间ID
callback Y Function 获取空间属性的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 空间属性
getRoomProperty(Id, callback)

获取房间属性

Parameters
名称 必填 类型 说明 示例
Id Y String 房间ID
callback Y Function 获取房间属性的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 房间属性
setArea(areaInfo, height, Id)

设置空间

Parameters
名称 必填 类型 说明 示例
boundary Y Object 空间的平面边界
height Y Number 空间高度
Id Y String 空间ID
clearArea()

清除空间

clearAreasById(objectIds)

根据空间ID清除空间体块

Parameters
名称 必填 类型 说明 示例
objectId Y String Array 多个objectId的数组 [“x1”, “x2”]
getAreaColorById(objectId)

根据空间ID获取空间体块的颜色

Parameters
名称 必填 类型 说明 示例
objectId Y String 空间的objectId
Returns
类型 说明
Color 颜色
getAreaFrameColorById(objectId)

根据空间ID获取空间体块线框的颜色

Parameters
名称 必填 类型 说明 示例
objectId Y String 空间的objectId
Returns
类型 说明
Color 颜色
hideAllAreas()

隐藏所有空间体块

hideAreasById(objectIds)

根据空间ID隐藏空间体块

Parameters
名称 必填 类型 说明 示例
objectId Y String Array 多个objectId的数组 [“x1”, “x2”]
setAreasColorById(objectIds, color)

根据空间ID设置空间体块的颜色

Parameters
名称 必填 类型 说明 示例
objectId Y String Array 多个objectId的数组 [“x1”, “x2”]
color Y Color 颜色
setAreasFrameColorById(objectIds, color)

根据空间ID设置空间体块线框的颜色

Parameters
名称 必填 类型 说明 示例
objectId Y String Array 多个objectId的数组 [“x1”, “x2”]
color Y Color 颜色
showAllAreas()

显示所有空间体块

showAreasById(objectIds)

根据空间ID显示空间体块

Parameters
名称 必填 类型 说明 示例
objectId Y String Array 多个objectId的数组 [“x1”, “x2”]
showViewHouse()

显示ViewHouse

hideViewHouse()

隐藏ViewHouse

setBackgroundColor(color)

设置模型区域背景颜色

Parameters
名称 必填 类型 说明 示例
color Y Color 颜色
Sample
var colorRed = new Glodon.Web.Graphics.Color(255, 0, 0, 1);
viewer3D.setBackgroundColor(colorRed);
setBackgroundColor(color1, color2)

设置模型区域自定义渐变背景颜色

Parameters
名称 必填 类型 说明 示例
color1 Y Color 颜色
color2 Y Color 颜色
addPlane(point1, point2, src, callback)

在平面内添加贴图
贴图为异步调用,需要在callback中调用render()

Parameters
名称 必填 类型 说明 示例
point1 Y Object 坐标位置 {x: 3700, y: -22000, z: 3100}
point2 Y Object 坐标位置 {x: 12600, y: 15000, z: 7000}
src Y String 贴图路径
callback Y Function 贴图加载的回调函数
enableOrbit(enabled)

是否允许模型旋转

Parameters
名称 必填 类型 说明 示例
enabled Y Boolean 是否允许模型旋转 false
enableMouseHoverHighlight()

允许鼠标hover构件时高亮

disableMouseHoverHighlight()

禁止鼠标hover构件时高亮

setOrbitButton(orbitButton)

设置鼠标旋转习惯,左键 or 右键

Parameters
名称 必填 类型 说明 示例
orbitButton Y OrbitButton 设置左右鼠标,进行模型旋转 Glodon.Bimface.Viewer.OrbitButton.Left
setNavigationMode(navigationMode)

设置导航模式

Parameters
名称 必填 类型 说明 示例
navigationMode Y NavigationMode3D 导航模式 Glodon.Bimface.Viewer.NavigationMode3D.Fly
setFlySpeedRate(rate)

设置漫游倍速

Parameters
名称 必填 类型 说明 示例
rate Y Number 取值范围[0, 25] 15
setMinimumFPS(num)

设置帧率

Parameters
名称 必填 类型 说明 示例
num Y Number 最小渲染帧率,取值范围:4-60 15
createSnapshotAsync(Color,callback)

创建快照图片

Parameters
名称 必填 类型 说明 示例
color Y Color 颜色 new Glodon.Web.Graphics.Color(255, 0, 0, 1)
callback(data) Y Function 加载成功之后的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 图片数据
Returns
类型 说明
Base64 图片的Base64编码
startAutoRotate(speed)

模型在屏幕中心自动旋转

Parameters
名称 必填 类型 说明 示例
speed Y Number 速率,正负表示方向,数值表示速度 -0.5
stopAutoRotate()

停止自动旋转

getComponentProperty(objectId, callback)

获取构件属性

Parameters
名称 必填 类型 说明 示例
objectId Y String 构件的objectId
callback(data) Y Function 加载成功之后的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 构件属性
getObjectDataById(objectId)

根据构件ID获取ObjectData(包含categoryId、levelName、specialty)

Parameters
名称 必填 类型 说明 示例
objectId Y String 构件的objectId
getElementByConditions(fileId, conditions, callback)

离线数据包中,对单模型或集成模型根据构件类型ID、族和族类型获取构件列表

Parameters
名称 必填 类型 说明 示例
fileId Y Number 模型文件的ID
conditions Y Object Array 筛选条件,查看说明
callback(data) Y Function 加载成功之后的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 构件列表
Sample
以下是一个构件(Component)的详细信息

{
    "boundingBox": {
        "min": {
            "x": 28282.62,
            "y": -22220.13,
            "z": 0
        },
        "max": {
            "x": 37249.69,
            "y": -22020.13,
            "z": 8000
        }
    },
    "elementId": "211702",
    "name": "常规 - 200mm",
    "properties": [
        {
            "group": "基本属性",
            "items": [
                {
                    "key": "categoryId",
                    "value": "-2000011"
                },
                {
                    "key": "family",
                    "value": "基本墙"
                },
                {
                    "key": "familyType",
                    "value": "常规 - 200mm"
                }
            ]
        }
    ]
}

如果要获取出 categoryId = -2000011,且 family = “基本墙” 的构件列表,则条件输入如下:

{
	"categoryId":-2000011,
	"family":"基本墙"
}

如果要隔离出 categoryId = -2000011,且 family = “基本墙” 的构件列表,或者 family = “楼板” 的构件(并集),则条件输入如下:

[
    {
        "categoryId":-2000011,
        "family":"基本墙"
    },
    {
        "family":"楼板"
    }
]
getMaterialProperty(fileId.objectId, callback)

获取集成模型材质属性

Parameters
名称 必填 类型 说明 示例
fileId.objectId Y String 模型文件ID.构件ID
callback(data) Y Function 加载成功之后的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 集成模型材质
getFloors(callback)

获取单模型、集成模型楼层列表

Parameters
名称 必填 类型 说明 示例
callback(data) Y Function 加载成功之后的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 模型楼层列表
getModelTree(callback)

获取模型构件目录结构树

Parameters
名称 必填 类型 说明
callback(data) Y Function 加载成功之后的回调函数,回调函数的参数见下表
Callback Parameters
名称 类型 说明
data Json Object 模型构件目录结构树
getFamilyTypes()

获取族类型
注:仅适于 .rfa 文件格式

Returns
类型 说明
String Array 族类型列表
showFamilyTypeById(typeId)

切换族类型
注:仅适于 .rfa 文件格式

Parameters
名称 必填 类型 说明 示例
typeId Y String 族类型id
enableFullScreen(enabled)

全屏

Parameters
名称 必填 类型 说明 示例
enabled Y Boolean 是否全屏显示 true
setBorderLineEnabled(enabled)

是否渲染轮廓线

Parameters
名称 必填 类型 说明 示例
enabled Y Boolean 是否渲染轮廓线 true
resize(width, height)

设置场景大小

Parameters
名称 必填 类型 说明 示例
width Y Number 场景的宽度,单位:px 800
height Y Number 场景的高度,单位:px 600
addEventListener(eventName, handler)

增加监听事件

Parameters
名称 必填 类型 说明 示例
eventName Y Viewer3DEvent 事件名称
handler Y Function 处理事件的函数,参数见:Viewer3DEvent
removeEventListener(eventName, handler)

移除监听事件

Parameters
名称 必填 类型 说明 示例
eventName Y Viewer3DEvent 事件名称
handler Y Function 处理事件的函数,参数见:Viewer3DEvent