博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不用Forge Viewer的API获取模型的层次结构以及构件的DbId
阅读量:6433 次
发布时间:2019-06-23

本文共 1028 字,大约阅读时间需要 3 分钟。

通常,基于 开发的的朋友需要获取到模型的层次结构以及构件的DbId,用于在自己的流程中构造相关对象和处理。尤其DbId,大部分Forge Viewer对象的操作,参数是输入的DbId,而用来唯一确定构件的信息是一些其它的Id,例如ExternalId。所以,有时要做ID的映射,方便前端流程中,可以更快速的找到对应的构件。

一些朋友喜欢在Forge Viewer加载模型( 譬如在这个事件中Autodesk.Viewing.GEOMETRY_LOADED_EVENT)来遍历Viewer.InstanceTree (instanceTree.enumNodeChildren)获取DbId。对于简单模型,这个方法可用,而对于复杂模型,将造成较长时间才能完成遍历过程,影响流程的其它工作。

在中,介绍了如何通过Viewer.InstanceTree 直接拿到DbId的数组,而在本文中,我们看看如何在模型转换后,无需前端加载模型就能得到模型的层次结构以及构件的DbId。

大家知道,模型要能在Forge Viewer中显示,首先要通过Forge的【【模型数据提取和格式转换服务】来转换 ,英文叫做。 通常,大家已经很熟悉这两个服务:

发起转换的服务:POST

查询转换状态GET

而实际上,在转换程SVF数据包以后,该服务还有另外几个API,用于获取模型层次结构以及对象的属性。只需要:

  1. 发起服务获取metadata GET
    此服务用来得到文件中所有model (3D,2D)的view id。这是一个guid。例如本例中,只有一个3D内容:

图片描述

  1. 发起服务请求得到模型层次结构
    GET

此服务输入#1中得到的guid,请求得到对应内容的模型层次结构。注意:请求后,首先返回的是202,表明Forge接受了任务,即将开始操作。所以这里需要澄清一个误解,转换后的SVF数据包含有模型层次结构,对象属性等,但考虑到数据量较大,默认并没有现成的Json形式的模型层次对象,属性的数据放在Forge云端。只有当开发者请求的时候,Forge才会从云端转换后的数据库提取出来,因此需要点时间操作完成。

等待片刻,继续发起请求,将返回200成功,这时就可以拿到Json形式的层次结构了,而这个信息就包括了DbId

图片描述

如果是获取对象属性,只需要用这个过程也是类似的,只是请求端口是:

GET

这也是为何把Model Derivative API叫做 【模型数据提取和格式转换服务】。

转载地址:http://ogxga.baihongyu.com/

你可能感兴趣的文章
tomcat nginx默许的post大小限制
查看>>
OSI七层模型
查看>>
去除工程的.svn隐藏文件夹
查看>>
Python24 终端如何输出彩色字体
查看>>
XSS跨站脚本***
查看>>
linux 挂载光驱
查看>>
ASP.NET MVC Area操作
查看>>
CSS颜色代码大全
查看>>
LINQ之路10:LINQ to SQL 和 Entity Framework(下)
查看>>
circle area
查看>>
怎么改变按钮的图标
查看>>
当输入流和输出流同时作用一个文件
查看>>
MySQL关于表碎片整理OPTIMIZE TABLE操作
查看>>
FortiGate 0458版本bug
查看>>
后台post注入爆密码
查看>>
Java --- 多线程 面试题
查看>>
OA项目如何成功实施!
查看>>
FindMaxConsecutive.java
查看>>
面试官问:ZooKeeper 一致性协议 ZAB 原理
查看>>
DNS实现域名正解与反解
查看>>