ExternalObjectManager

类:外部构件管理器,用于管理和操作Viewer3D中的外部构件。ViewerGIS中请使用Glodon.Bimface.Layer.ExternalObjectLayer。

Constructor

new Glodon.Bimface.Plugins.ExternalObject.ExternalObjectManager(viewer)

构造外部构件管理器

Parameters:
NameTypeDescription
viewerGlodon.Bimface.Viewer.Viewer3D

Viewer3D对象

Methods

clear()

移除场景内所有的外部构件

clearAllHierarchy()

解除所有外部构件关联关系

clearGlowEffect()

清空所有外部构件的发光效果

clearHierarchy(fatherId, childrenIds)

解除外部构件关联关系

Parameters:
NameTypeDescription
fatherIdString

需要解绑的父构件ID

childrenIdsArray

需要解绑的子构件ID数组,父子构件需为相邻构件,仅支持解除相邻构件关联关系,不支持解除跨层级构件间的关联关系。

clone(objectId, name)

克隆指定的外部构件

Parameters:
NameTypeDescription
objectIdString

被克隆的外部构件ID

nameString

克隆后的外部构件名称

Returns:
TypeDescription
String

克隆后的外部构件ID

convert(id, hideSourceObject)

根据ID将指定构件转换为外部构件

Parameters:
NameTypeDescription
idObject

ID

modelIdString

构件所在的模型ID

objectIdString

构件ID(场景内已有的构件)

hideSourceObjectBoolean

是否隐藏源对象,默认为true

Returns:
TypeDescription
Object

转换完的构件对象

getAllObjectIds()

获取所有外部构件的ID

Returns:
TypeDescription
Array

外部构件ID列表

getAnimations(id)

获取外部构件的动画对象索引列表

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Array

返回该外部构件包含的所有动画列表,包含动画索引、名称、动画时长(单位为秒)。例 [ { index: 0, name: "animation1", duration: 1.6 }, { index: 1, name: "animation2", duration: 2.3 } ]

getAssociatedInfo(id)

根据外部构件ID获取关联的模型/构件ID信息

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Object

外部构件关联的模型/构件ID信息,例{modelId:'1234',objectId:'5678'}

getBoundingBoxById(id)

根据ID获取外部构件的包围盒信息

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Object

包围盒对象

getObjectData(id)

获取指定ID外部构件的objectData内容

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Array

筛选条件数组,每个元素均为key-value对象

getObjectIdByName(name)

根据名称获取对应的外部构件ID

Parameters:
NameTypeDescription
nameString

外部构件名称

Returns:
TypeDescription
String

外部构件ID

getPosition(id)

根据ID获取外部构件的局部坐标原点在世界坐标系中的位置

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Object

外部构件的局部坐标原点在世界坐标系中的位置,如:{ x: 5000, y: 3000, z: -600 }

getTransformation(id)

获取指定外部构件的坐标变换状态

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Array

描述模型坐标变换的对象

hide(condition)

按条件隐藏外部构件

Parameters:
NameTypeDescription
conditionObject

构件筛选条件

idsArray

由构件ID组成的数组,例如:{ids:[“11”,”22”,”33”]

objectDataArray

由构件objectData组成的数组,用于进行条件筛选,例如:[{familyType: xxx, category: xxx}]

allBoolean

全部构件,仅设置为true时生效

isAnimatable(id)

根据ID判断外部构件是否包含动画

Parameters:
NameTypeDescription
idString

外部构件ID

Returns:
TypeDescription
Boolean

是否包含动画

loadObject(option, successCallback, failureCallback)

添加外部构件

Parameters:
NameTypeDescription
optionObject

添加外部构件的选项

nameString

外部构件名称,必填

urlObject

外部构件资源对象

objectUrlString

外部构件资源url, 与option.object之间必填一项

mtlUrlString

外部构件mtl资源url

objectObject

待加载的外部构件对象,与option.url.objectUrl之间必填一项

objectDataArray

筛选条件数组

associationObject

外部构件的关联信息

modelIdString

关联的模型ID

objectIdString

关联的构件ID

enableLightBoolean

判断是否导入外部构件的光照效果

successCallbackFunction

加载成功的回调函数

failureCallbackFunction

加载失败的回调函数

offset(id, offset)

根据ID对外部构件在局部坐标系下进行平移

Parameters:
NameTypeDescription
idString

外部构件ID

offsetObject

外部构件在局部坐标系下的平移距离,如:{ x: 5000, y: 3000, z: -600 }

offsetX(id, offsetX)

根据ID对外部构件在局部坐标系的X方向进行平移

Parameters:
NameTypeDescription
idString

外部构件ID

offsetXNumber

外部构件在局部坐标系X方向的平移距离

offsetY(id, offsetY)

根据ID对外部构件在局部坐标系的Y方向进行平移

Parameters:
NameTypeDescription
idString

外部构件ID

offsetYNumber

外部构件在局部坐标系Y方向的平移距离

offsetZ(id, offsetZ)

根据ID对外部构件在局部坐标系的Z方向进行平移

Parameters:
NameTypeDescription
idString

外部构件ID

offsetZNumber

外部构件在局部坐标系Z方向的平移距离

overrideColor(condition, color)

根据条件给指定外部构件着色

Parameters:
NameTypeDescription
conditionObject

筛选条件

idsArray

由外部构件ID组成的数组

objectDataArray

由外部构件ObjectData组成的数组,用于进行条件筛选

allBoolean

当前管理器下的全部外部构件,仅设置为true时生效

colorGlodon.Web.Graphics.Color

着色颜色

pause(id)

根据ID暂停外部构件动画

Parameters:
NameTypeDescription
idString

外部构件ID

play(id, option)

根据ID播放外部构件动画

Parameters:
NameTypeDescription
idString

外部构件ID

optionObject

动画播放设置

indexNumber

待播放动画的索引,默认为0,即播放第一个动画

loopBoolean

是否循环播放,默认为true

finishedCallbackFunction

动画播放完毕的回调函数,仅loop为false时生效

removeById(id)

根据ID将指定外部构件从场景中移除

Parameters:
NameTypeDescription
idString

外部构件ID

removeByIds(ids)

根据ID列表将指定外部构件从场景中移除

Parameters:
NameTypeDescription
idsArray

外部构件ID列表

removeGlowEffectById(ids)

根据ID列表移除外部构件的发光效果

Parameters:
NameTypeDescription
idsArray

外部构件ID列表.

removeSelection(condition)

根据条件取消外部构件的选中状态

Parameters:
NameTypeDescription
conditionObject

构件筛选条件

idsArray

由构件ID组成的数组,例如:{ids:[“11”,”22”,”33”]

objectDataArray

由构件objectData组成的数组,用于进行条件筛选,例如:[{familyType: xxx, category: xxx}]

allBoolean

全部构件,仅设置为true时生效

restoreColor(condition)

根据条件清空外部构件颜色,恢复默认显示

Parameters:
NameTypeDescription
conditionObject

筛选条件

idsArray

由外部构件ID组成的数组

objectDataArray

由外部构件ObjectData组成的数组,用于进行条件筛选

allBoolean

当前管理器下的全部外部构件,仅设置为true时生效

rotate(id, rotation)

根据ID将外部构件绕局部坐标系的坐标轴进行旋转

Parameters:
NameTypeDescription
idString

外部构件ID

rotationObject

外部构件绕局部坐标轴的旋转值,如{x:Math.PI/4, y: 0, z: 0}

rotateOnBasePoint(id, basePoint, axis, radian)

根据自定义基点和旋转轴旋转外部构件,坐标系为世界坐标系

Parameters:
NameTypeDescription
idString

外部构件ID

basePointObject

旋转中心点坐标 例如:{ x: 5000, y: 3000, z: -600 }

axisObject

旋转轴向量 例如:{ x: 0, y: 0.5, z: -0.6 }

radianNumber

旋转弧度值 如Math.PI / 6

rotateX(id, radianX)

根据ID将外部构件沿着局部坐标系X轴旋转

Parameters:
NameTypeDescription
idString

外部构件ID

radianXNumber

外部构件沿着局部坐标系X轴旋转的弧度值,如Math.PI/4

rotateY(id, radianY)

根据ID将外部构件沿着局部坐标系Y轴旋转

Parameters:
NameTypeDescription
idString

外部构件ID

radianYNumber

外部构件沿着局部坐标系Y轴旋转的弧度值,如Math.PI/4

rotateZ(id, radianZ)

根据ID将外部构件沿着局部坐标系Z轴旋转

Parameters:
NameTypeDescription
idString

外部构件ID

radianZNumber

外部构件沿着局部坐标系Z轴旋转的弧度值,如Math.PI/4

scale(id, scale)

根据ID对外部构件在局部坐标系下进行缩放,缩放中心为局部坐标原点

Parameters:
NameTypeDescription
idString

外部构件ID

scaleObject

外部构件在局部坐标系下的缩放倍数,如:{ x: 0.5, y: 1.5, z: 1.0 } (x、y、z值不能为0)

scaleOnBasePoint(id, basePoint, scale)

根据自定义基点和向量缩放外部构件,坐标系为世界坐标系

Parameters:
NameTypeDescription
idString

外部构件ID

basePointObject

缩放中心点坐标 例如:{ x: 5000, y: 3000, z: -600 }

scaleObject

缩放向量 例如:{ x: 1, y: 0.5, z: 0.6 }

scaleX(id, scaleX)

根据ID将外部构件沿着局部坐标系X轴方向进行缩放,缩放中心为局部坐标原点

Parameters:
NameTypeDescription
idString

外部构件ID

scaleXNumber

外部构件沿着局部坐标系X轴方向进行缩放的倍数(不能为0)

scaleY(id, scaleY)

根据ID将外部构件沿着局部坐标系Y轴方向进行缩放,缩放中心为局部坐标原点

Parameters:
NameTypeDescription
idString

外部构件ID

scaleYNumber

外部构件沿着局部坐标系Y轴方向进行缩放的倍数(不能为0)

scaleZ(id, scaleZ)

根据ID将外部构件沿着局部坐标系Z轴方向进行缩放,缩放中心为局部坐标原点

Parameters:
NameTypeDescription
idString

外部构件ID

scaleZNumber

外部构件沿着局部坐标系Z轴方向进行缩放的倍数(不能为0)

select(condition)

根据条件选择对应外部构件

Parameters:
NameTypeDescription
conditionObject

构件筛选条件

idsArray

由构件ID组成的数组,例如:{ids:[“11”,”22”,”33”]

objectDataArray

由构件objectData组成的数组,用于进行条件筛选,例如:[{familyType: xxx, category: xxx}]

allBoolean

全部构件,仅设置为true时生效

setGlowEffectById(ids, option)

根据ID列表设置外部构件的发光效果

Parameters:
NameTypeDescription
idsArray

外部构件ID列表

optionObject

发光效果参数

typeString

发光效果类型,“body”为整体发光,“outline”为轮廓线发光,默认为“body”

colorGlodon.Web.Graphics.Color

发光效果颜色

intensityNumber

发光强度,取值范围[0,1],默认值为0.3

spreadNumber

扩散程度,取值范围[1,5],默认值为3

setHierarchy(relationships)

设置外部构件关联关系

Parameters:
NameTypeDescription
relationshipsObject

设置外部构件之间的关联关系,由Id和children构成的对象,若存在子构件,则在children继续添加该层级;若不存在子构件,则为null。举例如下:{"id":"A","children":[{"id":"B","children":[{"id":"E","children":[ {"id":"J","children":[{"id":"K", "children":null }] },{"id":"I","children":null}]}]}]}

setObjectData(id, objectData)

设置指定ID外部构件的objectData内容,用于构件筛选

Parameters:
NameTypeDescription
idString

外部构件ID

objectDataArray

筛选条件数组,每个元素均为key-value对象

setPosition(id, position)

根据ID设置外部构件的局部坐标原点在世界坐标系中的位置

Parameters:
NameTypeDescription
idString

外部构件ID

positionObject

外部构件的局部坐标原点在世界坐标系中的位置,如:{ x: 5000, y: 3000, z: -600 }

setTransformation(id, transformation)

设置指定外部构件的坐标变换状态

Parameters:
NameTypeDescription
idString

外部构件ID

transformationArray

描述模型坐标变换的对象,可通过ExternalObjectManager.getTransformation()获得

show()

按条件显示外部构件

stop(id)

根据ID停止播放外部构件动画

Parameters:
NameTypeDescription
idString

外部构件ID

toLocalPosition(id, option)

根据ID设置世界坐标系中的点和向量,在外部构件局部坐标系中的位置和方向

Parameters:
NameTypeDescription
idString

外部构件ID

optionObject

需要转换的配置项

worldPositionObject

世界坐标系下的点,如:{ x: 5000, y: 3000, z: -600 }

worldVectorObject

世界坐标系下的向量 例如:{ x: 0, y: 0.5, z: -0.6 }

Returns:
TypeDescription
Object

世界坐标系下的点和向量,在外部构件的局部坐标系中的位置和方向,例如:{localPosition:{ x: 1000, y: 2000, z: -300 },localVector:{ x: 0, y: 0.5, z: -1 }}

toWorldPosition(id, option)

根据ID设置在外部构件局部坐标系中的点和向量,在世界坐标系中的位置和方向

Parameters:
NameTypeDescription
idString

外部构件ID

optionObject

需要转换的配置项

localPositionObject

局部坐标系下的点,如:{ x: 1000, y: 2000, z: -300 }

localVectorObject

局部坐标系下的向量 例如:{ x: 0, y: 0.5, z: -1 }

Returns:
TypeDescription
Object

外部构件局部坐标系下的点和向量,世界坐标系中的位置和方向,例如:{worldPosition:{x: 5000, y: 3000, z: -600 },worldVector:{ x: 0, y: 0.5, z: -0.6 }}

translate(id, translation)

平移外部构件,坐标系为世界坐标系

Parameters:
NameTypeDescription
idString

外部构件ID

translationObject

平移距离,例如:{ x: 5000, y: 3000, z: -600 }