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
isEnableIBLBackground()

是否开启IBL环境光照

Returns
类型 说明
Boolean 是否开启IBL环境光照
isEnableBorderLine()

是否开启线框

Returns
类型 说明
Boolean 是否开启线框
isEnableHover()

是否开启鼠标hover效果

Returns
类型 说明
Boolean 是否开启鼠标hover效果
isEnableToggleContextMenuDisplay()

是否开启右键菜单

Returns
类型 说明
Boolean 是否开启右键菜单
getBackgroundColor()

获取背景颜色

Returns
类型 说明
Array 获取背景颜色
getLoadIBLScene()

获取IBL设置

Returns
类型 说明
Object 获取IBL设置
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