Bim.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <div id="domId"></div>
  3. </template>
  4. <script setup>
  5. import { onMounted } from 'vue'
  6. let viewToken = 'fe69c34c232047989b3619489027d9df'
  7. // 声明Viewer及App
  8. let app
  9. let viewer3D
  10. let viewAdded = false
  11. // 加载成功回调函数
  12. const successCallback = viewMetaData => {
  13. let dom4Show = document.getElementById('domId')
  14. // 设置WebApplication3D的配置项
  15. let webAppConfig = new Glodon.Bimface.Application.WebApplicationRfaConfig()
  16. webAppConfig.domElement = dom4Show
  17. webAppConfig.EnableFamilyList = false
  18. // 设置模型爆炸配置项
  19. webAppConfig.enableExplosion = true
  20. // 创建WebApplication3D,用以显示模型
  21. app = new Glodon.Bimface.Application.WebApplicationRfa(webAppConfig)
  22. app.addView(viewToken)
  23. viewer3D = app.getViewer()
  24. // 监听添加view完成的事件
  25. viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
  26. //自适应屏幕大小
  27. window.onresize = function () {
  28. viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight - 40)
  29. }
  30. viewAdded = true
  31. // 渲染3D模型
  32. viewer3D.render()
  33. window.loaded.resolve(viewer3D)
  34. })
  35. // viewer3D.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.MouseClicked, function (objectdata) {
  36. // // 调用viewerDrawing对象的Method,可以继续扩展功能
  37. // alert('objectId : ' + JSON.stringify(objectdata.objectId) + '\n' + 'worldPosition : ' + JSON.stringify(objectdata.worldPosition))
  38. // })
  39. }
  40. // 加载失败回调函数
  41. const failureCallback = error => {
  42. console.log(error)
  43. }
  44. onMounted(() => {
  45. let loaderConfig = new BimfaceSDKLoaderConfig()
  46. loaderConfig.viewToken = viewToken
  47. BimfaceSDKLoader.load(loaderConfig, successCallback, failureCallback)
  48. })
  49. </script>
  50. <style lang="scss" scoped>
  51. #domId {
  52. width: 100%;
  53. height: 100%;
  54. }
  55. </style>