vue 中使用 bimface详情

首先,需要明确的是,要在Vue中使用Bimface详情,需要引入BimFace的JavaScript SDK,并按照BimFace提供的文档设置好BimFace Viewer所需的DOM容器以及相关参数。接下来,我们将详细讲解该过程。

步骤一:引入BimFace SDK

由于BimFace SDK的体积较大,我们一般会将其放在CDN上,通过Vue的component中增加script的方式引入。以https://api.bimface.com/viewer/v3.0/bimface.js为例,可以在Vue中的component中添加如下代码:

<template>
  <div id="viewerContainer" style="height: 600px;"></div>
</template>

<script>
export default {
  mounted () {
    const script = document.createElement('script')
    script.type = 'text/javascript'
    script.src = 'https://api.bimface.com/viewer/v3.0/bimface.js'
    script.async = true
    script.onload = this.onLoad
    document.body.appendChild(script)
  },
  methods: {
    onLoad () {
      // 这里可以进行后续的 SDK 配置和 Bimface Viewer 的创建
      this.initViewer()
    },
    initViewer () {
      // 在这里设置 Bimface Viewer 的相关参数和 DOM 容器
      const viewerContainer = document.getElementById('viewerContainer')
      // ...
    }
  }
}
</script>

步骤二:配置BimFace Viewer

配置Viewer需要设置以下三个参数:

  1. DOM容器,即Viewer所在的元素。在示例中我们使用的是<div id="viewerContainer" style="height: 600px;"></div>
  2. Bimface 应用的appKey,即你注册Bimface开发者后会收到的appKey,这个key会在初始化Bimface SDK时使用。
  3. 文件的ViewToken,即跟该模型对应的运行Token。调用BimFace的 "文件转换接口" 后,会生成一个ViewToken,可以使用这个Token来加载模型。

以下是代码示例:

initViewer () {
  // 在这里设置 Bimface Viewer 的相关参数和 DOM 容器
  const viewerContainer = document.getElementById('viewerContainer')
  const config = {
    // 初始化Bimface viewer需要的appkey
    appKey: '你的appKey',
    // runtime需要的endpoint
    endpoint: 'https://api.bimface.com',
    domElement: viewerContainer,
    // BimFace 文件的View Token
    viewToken: '你的viewToken'
  }
  window.BimfaceSDKLoader.load(config, () => {
    this.viewer3D = new window.BimfaceSDK.Viewer3D(config.domElement)
    // 在这里设置Bimface Viewer的内置控件等
  })
}

示例一:加载模型

<template>
  <div id="viewerContainer" style="height: 600px;"></div>
</template>

<script>
export default {
  mounted () {
    const script = document.createElement('script')
    script.type = 'text/javascript'
    script.src = 'https://api.bimface.com/viewer/v3.0/bimface.js'
    script.async = true
    script.onload = this.onLoad
    document.body.appendChild(script)
  },
  methods: {
    onLoad () {
      this.initViewer()
    },
    initViewer () {
      const viewerContainer = document.getElementById('viewerContainer')
      const config = {
        appKey: '你的appKey',
        endpoint: 'https://api.bimface.com',
        domElement: viewerContainer,
        viewToken: '你的viewToken'
      }
      window.BimfaceSDKLoader.load(config, () => {
        this.viewer3D = new window.BimfaceSDK.Viewer3D(config.domElement)
        this.viewer3D.load(config.viewToken)
      })
    }
  }
}
</script>

在这个例子中,我们通过load方法加载了模型,Viewer会自动解析并渲染出我们的模型。

示例二:标记构件

<template>
  <div id="viewerContainer" style="height: 600px;"></div>
</template>

<script>
export default {
  mounted () {
    const script = document.createElement('script')
    script.type = 'text/javascript'
    script.src = 'https://api.bimface.com/viewer/v3.0/bimface.js'
    script.async = true
    script.onload = this.onLoad
    document.body.appendChild(script)
  },
  methods: {
    onLoad () {
      this.initViewer()
    },
    initViewer () {
      const viewerContainer = document.getElementById('viewerContainer')
      const config = {
        appKey: '你的appKey',
        endpoint: 'https://api.bimface.com',
        domElement: viewerContainer,
        viewToken: '你的viewToken'
      }
      window.BimfaceSDKLoader.load(config, () => {
        this.viewer3D = new window.BimfaceSDK.Viewer3D(config.domElement)
        this.viewer3D.load(config.viewToken)
        this.viewer3D.addEventListener(
          window.BimfaceSDK.Constants.BIMFACETOOLBAR_CLICK, () => {
            this.viewer3D.getSelection(result => {
              result.forEach(item => {
                this.viewer3D.markup(item, `<h1>你标记的是${item.name}</h1>`)
              })
            })
          }
        )
      })
    }
  }
}
</script>

在这个例子中,我们引入了window.BimfaceSDK.Constants.BIMFACETOOLBAR_CLICK用于监听Viewer中的操作,例如点击了一个构件。接着,在点击构件后,我们通过this.viewer3D.getSelection(result => {} )方法来获取到所选的构件,之后使用this.viewer3D.markup(item, label)来对所选的构件标记说明。标记内容在这里我们只是简单地放了一个字符串,实际使用过程中可以放置更具体的信息。

以上就是在Vue中使用Bimface详情的完整攻略,如果还有疑问可以参考Bimface的官方文档进行查阅。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue 中使用 bimface详情 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 基于vue-video-player自定义播放器的方法

    下面是“基于vue-video-player自定义播放器的方法”的完整攻略: 1. vue-video-player介绍 vue-video-player是一款基于vue.js和video.js的HTML5视频播放器组件,提供了丰富的功能和样式,而且易于定制。要在自己的网站上使用vue-video-player,我们只需要通过npm安装该组件,然后在Vue应…

    Vue 2023年5月29日
    00
  • vue结合axios与后端进行ajax交互的方法

    Vue结合Axios与后端进行AJAX交互的方法攻略 前置条件 在开始正式讲解Vue结合Axios与后端进行AJAX交互的方法前,我们需要确保已经完成以下几个步骤: 安装Vue。这可以通过下面的命令来完成: npm install vue 安装Axios。同样,可以通过下面的命令来完成: npm install axios 确定后端接口的地址和数据格式。在使…

    Vue 2023年5月28日
    00
  • VUE 自定义组件模板的方法详解

    下面详细讲解一下“VUE 自定义组件模板的方法详解”的完整攻略。 一、前置知识 在学习自定义组件模板之前,需要了解以下基本的 Vue 相关概念: Vue 实例 组件 响应式系统 Vue 单文件组件 如果您对以上内容不熟悉,建议先去学习一下。 二、自定义组件 Vue 自定义组件是 Vue.js 提供的一个非常强大的功能。可以利用自定义组件实现代码复用,提高开发…

    Vue 2023年5月27日
    00
  • vue与django集成打包的实现方法

    实现 Vue 和 Django 的集成打包,需要以下步骤: 1. 创建 Vue 应用程序 首先,我们需要创建一个 Vue 应用程序。在使用 Vue CLI 创建应用程序后,确保在命令行中运行npm run build 命令来打包应用程序。 $ vue create my-vue-app $ cd my-vue-app $ npm install $ npm …

    Vue 2023年5月28日
    00
  • Vue filter 过滤当前时间 实现实时更新效果

    Vue中可以通过过滤器(Filter)来对模板中的数据进行格式化处理。本文将介绍如何使用Vue filter来过滤当前时间,并实现实时更新效果的方法。 添加全局过滤器 首先我们需要在Vue实例中添加全局过滤器。在Vue中,可以通过 Vue.filter() 方法来添加全局过滤器。下面是一个简单的例子,这个过滤器会将传入的字符串全部转换为大写: Vue.fil…

    Vue 2023年5月29日
    00
  • vue filter 完美时间日期格式的代码

    下面我将为您详细讲解如何实现”Vue Filter 完美时间日期格式的代码”。 什么是 Vue Filter? Vue Filter 是 Vue.js 框架提供的一种数据过滤器,它可以格式化文本、数字、日期等数据类型,以满足用户的需求。 如何使用 Vue Filter? 使用 Vue Filter 首先需要在 Vue 实例中定义一个全局的 Filter,示例…

    Vue 2023年5月28日
    00
  • Vue中的v-for循环key属性注意事项小结

    下面是详细的“Vue中的v-for循环key属性注意事项小结”的攻略。 1. 什么是v-for循环 v-for是Vue的一个核心指令之一,用于渲染DOM元素列表。可以通过v-for循环将一个数组中的元素渲染到指定的DOM元素上。 2. v-for中的key属性 在v-for循环中,我们需要使用key属性来指定每个被渲染元素的唯一标识。key属性是必须的,因为…

    Vue 2023年5月27日
    00
  • 使用Vue中 v-for循环列表控制按钮隐藏显示功能

    使用Vue中v-for循环列表控制按钮隐藏显示功能分为以下几个步骤: 在Vue实例中定义数据:需要定义一个存储列表数据的数组,以及每个元素对应的控制按钮是否显示的状态变量。比如: data() { return { list: [ { id: 1, name: ‘item 1’, showButton: false }, { id: 2, name: ‘it…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部