中台预生产全量接口
  1. 点云模型查看
中台预生产全量接口
  • 规范
  • 项目管理
    • 项目
      • 项目枚举数据
      • 新建项目
      • 项目列表
      • 项目详情
      • 更新项目
      • 删除项目
      • 项目锁定
      • 解锁项目
      • 项目级扩展属性挂接
      • 项目级扩展属性列表
      • 项目级扩展属性删除
      • 项目级扩展属性更新
      • 项目组织树
    • 文件
      • 文件重命名
      • 文件版本列表
      • 模型文件详情
      • 文件挂载到文件夹
      • 添加文件扩展属性
      • 移动文件
      • 删除文件
      • 获取文件标签
      • 更新文件标签
      • 查询所有或指定文件列表
      • 查询文件所属专业
    • 文件夹
      • 融合递归树(文件、文件夹)
      • 新建文件夹
      • 文件夹列表
      • 文件夹重命名
      • 移动文件夹
      • 获取文件夹扩展属性
      • 更新文件夹扩展属性
      • 获取文件夹标签
      • 更新文件夹标签
      • 删除文件夹
      • 文件列表
    • 单体
      • 根据单体ID查询项目ID
  • 存储管理
    • 分片上传
      • 检查分片是否存在
      • 合并分片
      • 检查分片是否存在v2
      • 文件分片上传
      • 获取分片上传凭证
    • 下载
      • 下载
      • 批量下载
    • 检查文件是否已存在
    • 秒传
    • 上传
    • 存储上传信息
  • 轻量化引擎
    • 转换格式查询
    • 轻量化结果文件查询
  • 能力服务
    • 轻量化展示
      • 轻量化展示
      • 轻量化
      • 获取obv-token
    • 点云模型查看
      • 点云模型查看
      • 轻量化
        POST
      • 获取obv-token
        GET
    • 点云实模对比
      • 点云实模对比
      • 获取obv-token
    • 模型对比-IFC
      • 模型对比-IFC
      • 开启IFC模型对比任务
      • 获取同源对比结果
      • 获取非同源对比结果
    • 二维码生成
      • 二维码生成
      • 生成base64二维码
    • 图模匹配
      • 图模匹配
      • 开启图模匹配任务
      • 获取任务结果
    • 图模一致性检查
      • 图模一致性检查
      • 开启图模一致任务
      • 获取任务结果
    • AI图纸识别
      • AI图纸识别
      • 识图识别任务开启
      • 获取任务结果
    • SZ-IFC标识分类树
      • SZ-IFC标识分类树
      • 空间关系树
      • 查询构件树
      • 查询机电系统树
      • 根据构件查属性
      • 根据空间查构件
      • 查询空间树
    • 扩展属性挂接
      • 扩展属性挂接
      • 构件级扩展属性挂接
      • 构件级扩展属性列表
      • 构件级扩展属性更新
      • 构件级扩展属性删除
    • 设备模型添加
      • 设备模型添加
      • 设备挂接到文件
      • 已挂接设备列表
      • 已挂接设备更新
      • 已挂接设备删除
    • 模型维度统计查询
      • 模型维度统计查询
      • 获取入库文件数(按文件类型返回)
      • 全量文件种类统计
      • 按天、周、月统计新增/更新模型(按文件类型返回)
      • 按天、周、月统计各数据源新增/更新模型(按文件类型分组返回)
      • 按天、周、月统计项目新增情况,返回项目数据更新情况
      • 单项目按文件类型统计文件数量
      • 查询项目下所有或指定类型文件列表
      • 全量文件数量统计
      • 按区域统计文件种类
      • 按区域统计模型数量
      • 按数据源返回入库文件分类
    • 项目维度统计查询
      • 项目维度统计查询
      • 全量项目统计
      • 按区域项目统计
      • 项目聚合列表
    • 获取特定 SZ-IFC标识下的类型子集
      • 获取特定 SZ-IFC标识下的类型子集
      • 获取特定 SZ-IFC标识下的类型子集
    • 模型对比-RVT
      • 模型对比-RVT
      • 开启Revit模型对比任务
      • 查询Revit模型对比任务信息
      • 查询Revit模型对比结果
    • 数据入库
      • 数据入库
      • 根据空间名称,查询空间属性-详情-v3
      • 根据构件名称,查询构件属性-详情-v3
      • 根据空间名称,查询空间属性-统计-v3
      • 根据构件名称,查询构件属性-统计-v3
      • 数据入库
      • 查询项目数据入库记录
      • 数据入库单体查询
      • 数据入库项目查询
      • 数据入库构件分类树
      • 数据入库空间关系树
      • 数据入库空间分类树
      • 数据入库系统树
      • 查询数据入库文件列表
      • 根据楼层查空间和构件
      • 根据空间名称,查询空间属性
      • 根据构件名称,查询构件属性
      • 根据空间查构件树
      • 获取空间数据标准树
      • 获取构件数据标准树
    • 基点一致性检查
      • 基点一致性检查
      • 获取任务结果
    • 合标性检查
      • 合标性检查
      • 合标性检查任务开启
      • 获取任务结果
    • BIM模型数字化认证
      • 模型文件Hash存储
      • 模型文件Hash查询
    • 任务管理
      • 任务状态
      • 任务列表
      • 获取任务结果
      • 设置任务优先级,10 ~ 99,数字越小,优先级越高
    • 一致性检查任务开启
      POST
    • 能力列表
      POST
  1. 点云模型查看

点云模型查看

简介#

支持LAS格式在线解析、浏览、与BIM模型进行集成、光照调整,透明度调整等功能。
LAS模型格式渲染比较特殊,引擎提供了一套对应的API来加载与控制点云模型。

对接流程#

开启文件轻量化任务 【轻量化】,参数documentId、documentVersion为文档版本信息,来自于文件上传后关联到文件夹。轻量化任务开启成功后返回任务taskId;
使用taskId查询轻量化任务状态 【任务状态】,通过taskStatus判断轻量化的状态,当taskStatus为"Success"表示轻量化任务成功,同时查询结果中也会返回urn字段,该字段标识轻量化后的几何信息存储位置,模型渲染需要传入该参数;
除了urn,模型渲染还需要token,通过 【获取obv-token】 接口获取token;
前端引入引擎资源,传入urn、token,指定服务路径初始化并渲染LAS模型文件;
以下是渲染、控制LAS文件的API
> 加载指定点云模型
API:
obvApi.createPntsTileset(pntsDocument: Document3dTile, options)
  * pntsDocument:点云模型文件,可通过指定urn获取对应的模型文件。
  * options:加载选项
示例:
// 创建实例需要传入的参数,部署环境serviceConfig 和 用户有效期getAccessToken
const applicationOptions = {
  getAccessToken: this.getAccessToken,
  refreshAccessToken: this.getAccessToken,
  serviceConfig: { // 引擎内部的请求路径通过origin + apiContextPath拼接,同样会被代理到远程引擎服务的地址
    origin: `${window.location.protocol}//${window.location.host}`, // host
    apiContextPath: '/zt/obv/bimserver/viewing/v3' // path
  }
}
// 返回token
getAccessToken(callBack) {
  callBack(this.obvToken, 36000)
}
// 点云模型文件标识urn,文件轻量化完成后生成
let urn1 = 'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1';
let urn2 = 'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB2?version=1';

let urnList = [];
urnList.push(urn1);
urnList.push(urn2);

// 实例化 Builder,用于模型加载
builder = new OBV.Api.ObvBuilder();
// 创建 Application 对象
const application = await builder.buildApplication(applicationOptions);
  // 创建 viewer 容器, 创建API
obvApi = await builder.buildViewer3d(application, document.getElementById('viewer-one-div'));
window.obvApi = obvApi;	
//分别创建每个模型的document 管理视图
urnMap = new Map();
for(let i = 0; i < urnList.length; i++) {
  // 创建 document 管理视图,加载完成后可以调用接口
  const document = await builder.loadDocument(application, urnList[i], 'las-lod');
  urnMap.set(urnList[i], document);
}

options = {
  applicationId: application.id
}
// 加载指定的点云模型
await obvApi.createPntsTileset(urnMap.get(urn1), options);
await obvApi.createPntsTileset(urnMap.get(urn2), options);

// 与非点云模型合并显示
let urn = 'urn:bimbox.file:1CdIsX5fxM0/1DweTTm30Tu?version=1';
const bimDocument = await builder.loadDocument(applicationOptions, urn, 'rvt-lod');
const viewer3dItems = bimDocument.get3dGeometryItems();
builder.load3dModels(obvApi, {
  obvDocument: bimDocument,
  viewer3dItem: viewer3dItems[0],
});


> 卸载指定点云模型
API:
obvApi.removePntsTileset(urn: string)
  * urn: 卸载该urn对应的点云模型
示例:
this.obvApi.removePntsTileset('urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');

> 卸载全部点云模型
API:
obvApi.removeAllPntsTileset()

> 设置点云模型高度
API:
obvApi.setPntsHeight(height: number, urn?: string)
  * height:点云模型的设定高度
  * urn?: 可选参数,当输入urn时,将修改该urn对应点云模型的高度;当不输入时,修改所有点云模型的高度。
示例:
this.obvApi.setPntsHeight(20);
this.obvApi.setPntsHeight(10,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');

> 显示/隐藏点云模型
obvApi.setPntsVisible(isVisible: boolean, urn?: string)
  * isVisible:设置true为显示模型,false为隐藏模型
  * urn?: 可选参数,当输入urn时,将修改该urn对应点云模型的显隐状态;当不输入时,修改所有点云模型的显隐状态。
示例:
this.obvApi.setPntsVisible(false);
this.obvApi.setPntsVisible(false,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');

> 显示/隐藏点云模型
API:
obvApi.setPntsPointSize(size: number,urn?: string)
  * size:点的大小,默认为1.0,最小值为1.0。
示例:
this.obvApi.setPntsPointSize(0.3);
this.obvApi.setPntsPointSize(0.3,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');

> 设置点云模型透明度
API:
obvApi.setPntsOpacity(opacity: number,urn?: string)
  * opacity:透明度数值,取值范围为 0.0-1.0,0.0为完全透明,1.0为完全不透明。
示例:
this.obvApi.setPntsOpacity(0.3);
this.obvApi.setPntsOpacity(0.3,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');
示例

接口列表#

轻量化
任务状态
获取obv-token
修改于 2024-04-02 09:28:01
上一页
获取obv-token
下一页
轻量化
Built with