JavaScript SDK版本3.6.209

2022-06-29

场景编辑
  • 在场景编辑中,新增了效果编辑模块,支持基于简单交互在场景中添加锚点、动线、扇形扫描、水面动画等特效,发布场景后效果数据将一并保存在场景中,预览时也会自动加载显示已添加的效果。基于BIMFACE控制台-场景发布模块进入场景编辑页面,即可体验该全新模块。
场景应用
  • 新增场景效果管理器(EffectManager),可对场景内的效果对象进行编辑管理,具体接口用法可参考文档效果管理
// 获取场景的效果管理器。每个场景对应一个EffectManager实例,不需要单独构造。
let effectManager = viewerGIS.getEffectManager();

// 根据效果ID获取对应效果对象
let effect = effectManager.getEffect('effectId');

// 添加锚点效果
let prismPointConfig = new Glodon.Bimface.Plugins.Anchor.PrismPointConfig();
// 设置锚点对象的位置、大小、动画时长等参数
prismPointConfig.position = {x:0,y:20,z:5};
prismPointConfig.size = 10;
// 设置锚点对象的颜色及线框颜色
prismPointConfig.color = new Glodon.Web.Graphics.Color(50,211,166,0.4);
prismPointConfig.wireframeColor = new Glodon.Web.Graphics.Color(142,255,222,1);

// 构造锚点对象
let prismPoint = new Glodon.Bimface.Plugins.Anchor.PrismPoint(prismPointConfig);

// 调用EffectManager的接口添加锚点对象
effectManager.addEffect(prismPoint,{id:'prismPointId',name:'锚点效果'});
  • 优化了ViewerGISEvent下的相机位置变化事件,修复了相机未发生位置变化也触发事件的问题。
// 绑定相机位置变化的监听事件
viewerGIS.addEventListener(Glodon.Bimface.Viewer.ViewerGISEvent.CameraPositionChanged,cameraPosition);

// 解绑相机位置变化的监听事件
viewer3D.removeEventListener(Glodon.Bimface.Viewer.ViewerGISEvent.CameraPositionChanged,cameraPosition);

// 定义监听事件的处理函数
function cameraPosition(data) {
  // 在控制台输出相机位置信息
  console.log(data);
}
  • 新增了场景内构件选中状态变化的监听事件,当场景中选中的构件/要素发生变化时,将触发事件返回当前选中状态下的图层及构件ID信息列表。
// 绑定构件选中状态变化的监听事件
viewerGIS.addEventListener(Glodon.Bimface.Viewer.ViewerGISEvent.SelectedObjectsChanged,getData);

// 解绑相机位置变化的监听事件
viewer3D.removeEventListener(Glodon.Bimface.Viewer.ViewerGISEvent.SelectedObjectsChanged,getData);

// 定义监听事件的处理函数
function getData(data) {
  // 在控制台输出选中状态的图层及构件信息
  // 事件返回值为当前被选中的构件/要素列表,列表内每一项对象由图层ID、构件/要素ID列表构成
  // 例[{layerId: 'layer_1', objectIds: ['11', '22']} ,{layerId: 'layer_2', objectIds: ['33', '44']}]
  console.log(data);
}
  • 优化了WebApplicationGISEvent下主工具条的按钮监听事件:ButtonOnToolbarClicked,对距离测量、面积测量下的子测量项按钮也增加了监听。
三维模型
  • 优化了流式加载场景中的发光效果/辉光效果的显示机制,可见性与构件保持一致。
  • 优化了Viewer3DEvent下的相机位置变化事件,修复了相机未发生位置变化也触发事件的问题。
// 绑定相机位置变化的监听事件
viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.CameraPositionChanged,cameraPosition);

// 解绑相机位置变化的监听事件
viewer3D.removeEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.CameraPositionChanged,cameraPosition);

// 定义监听事件的处理函数
function cameraPosition(data) {
  // 在控制台输出相机位置信息
  console.log(data);
}
矢量图纸
  • 批注默认UI新增批注hover和选中效果。
  • 批注查看界面提供高亮接口highlightAnnotationByIds和取消高亮接口clearHighlight。
  • 新增了缩放结束事件,可以在连续缩放结束后执行预设的方法。
// 定义获取缩放比例的方法
let getZoomFactor = function () {
  let zoomFactor = viewer2D.getZoomFactor();
  console.log(zoomFactor);
}
// 添加缩放结束事件
viewer2D.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.ZoomEnd, getZoomFactor);
标签
  • 新增了设置自定义标签/引线标签/图片标签可见距离的方法。
// 构造自定义标签配置项
let config = new Glodon.Bimface.Plugins.Drawable.CustomItemConfig();
// 设置自定义标签的可见距离,单位同场景单位,当相机与标签的距离小于可见距离时才会显示标签,默认为空,即不限制距离,适用于Viewer3D、ViewerGIS。
config.visibleDistance = 60000;
// 构造自定义标签对象
let customItem = new Glodon.Bimface.Plugins.Drawable.CustomItem(config);
// 将自定义标签添加到标签容器中
drawableContainer.addItem(customItem);
// 获取自定义标签的可见距离
customItem.getVisibleDistance();
// 设置自定义标签的可见距离
customItem.setVisibleDistance(80000);
控制台
  • 控制台中新增了转换参数输入框,当转换或重转rvt或dwg格式文件时,可在高级选项中填写转换参数。
  • 控制台转换模型支持以二维码形式分享。
BIMFACE官网