JavaScript SDK版本3.6.134

2021-05-21

三维模型
  • 新增了加载模型的方法,加载时可以指定modelId,并支持添加相同的模型
viewer3D.loadModel({
    // 待加载模型的浏览凭证
    viewToken: "e53d8a9975aa4eef901a24e463d35113",
    // 自定义模型ID,默认为文件ID
    modelId: "1641597995361472"
});
// 模型加载完成的监听事件
viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ModelAdded, function () {
    // 平移模型
    viewer3D.getModel("1641597995361472").setModelTranslation({ x: 40000, y: 0, z: 0 })
});
  • 新增接口获取模型三维测量的信息,以支持在测量结果中显示
// 设置测量类型
measure.setMeasureType(Glodon.Bimface.Plugins.Measure.MeasureTypeOption.Distance);
// 通过getDimensions获取模型三维测量的数据,并在测量中显示
viewer3D.getModel().getDimensions('',function showDimensionItems(dimensionItems){
  items = dimensionItems.data.map(item => item.dimension);
  measure.setItems(items);
})
模型效果
// 开启阻尼效果
viewer3D.enableDamping(true);
// 设置阻尼效果系数,取值范围[0,10],数值越大,效果越明显
viewer3D.setDampingFactor(6);
// 关闭阻尼效果
viewer3D.enableDamping(false);
// 构造视频对象配置项
var videoConfig = new Glodon.Bimface.Plugins.Videos.VideoConfig();
// 配置viewer、camera等参数
videoConfig.viewer = viewer3D;
videoConfig.src = "https://static.bimface.com/attach/2c44c7fcdd7a48ba933205cec80e97e3_BIMFACE产品介绍.mp4";
videoConfig.camera = { "position": { x: -7025.589580932086, y: -11503.527453157381, z: 8110.585049193948 }, "direction": new THREE.Vector3(0, 1, 0), "horizontalFov": Math.PI / 5, "verticalFov": Math.PI / 6 };
videoConfig.callback =callback;
// 设置视频投射至构件表面
videoConfig.isPlaneOn = false;
// 构造视频对象
video = new Glodon.Bimface.Plugins.Videos.Video(videoConfig);
// 回调函数
function callback(){
  // 播放视频
  video.play();
}
// 更新视频对象
video.update();
矢量图纸
模型测量
  • 在模型测量时支持捕捉垂足
外部构件
// 将自行构造的几何体作为外部构件加载
extObjMng.loadObject({
  name: 'sample_1',  // 外部构件名称
  object: extObj,
  // 设置外部构件的筛选条件,可用于条件筛选相关的操作
  objectData: [
    { levelName: 'F2' }
  ]}, successCallback, failureCallback);

function successCallback () {
  // 根据筛选条件隐藏构件,此时会将levelName为“F2”的所有构件隐藏,包括符合筛选条件的外部构件
  viewer.hideComponentsByObjectData([{ levelName: 'F2' }]);
  viewer.render();
}

function failureCallback (error) {
  console.log(error);
}
  • 新增外部构件绑定功能,可以与指定模型或构件绑定,并参与模型爆炸、楼层爆炸等行为
// 根据url加载外部构件
extObjMng.loadObject({
  name: 'sample_2',  // 外部构件名称
  url: {  // 外部构件路径
    objectUrl: objUrl,
    mtlUrl: mtlUrl
  },
  // 设置外部构件与普通构件的关联关系,可用于模型爆炸、楼层爆炸中,使两个构件在爆炸后的相对位置保持不变
  association: {
    modelId: '1720850447241664',
    objectId: '284052'
  }
}, successCallback, failureCallback);
  • 新增外部构件编辑器的监听事件,可对编辑器的退出以及编辑功能切换进行监听。
// 构造外部构件编辑器
var editor = new Glodon.Bimface.Plugins.ExternalObject.ExternalObjectEditorToolbar(externalObjectEditorToolbarConfig);
// 增加外部构件编辑器退出的监听事件
editor.addEventListener(Glodon.Bimface.Plugins.ExternalObject.ExternalObjectEditorToolbarEvent.Exit, callback);
// 增加外部构件编辑器切换编辑功能的监听事件
editor.addEventListener(Glodon.Bimface.Plugins.ExternalObject.ExternalObjectEditorToolbarEvent.EditingModeChanged, function (data) {console.log(data);});
// 监听事件回调函数
function callback(){
  // 返回外部构件的坐标转换矩阵
  console.log(extObjMng.getTransformation(extObjId));
}
  • 新增获取外部构件绑定信息的功能,可获取与外部构件关联的模型/构件ID。
// 获取外部构件的绑定信息
extObjMng.getAssociatedInfo(extObjId);