Revit二次开发|模型轻量化.RVT到JSON实现的测试

来源:建筑界编辑:黄子俊发布时间:2020-03-22 19:39:31

[摘要] 最近作者一直在研究Revit模型轻量化显示在网页中,通过查找大量的资料,找到了一条可行的方法进行分享;在开文前明确告诉大读者,将 RVT

最近作者一直在研究Revit模型轻量化显示在网页中,通过查找大量的资料,找到了一条可行的方法进行分享;

在开文前明确告诉大读者,将.RVT文件转为JSON文件再由three.js读取到网页,并没有实现,或者说只实现了一部分,数据不太完全,经测试模型中的曲面是读取的数据是不够的,现在还没有研究明白感觉是revitAPI中提供的基础数据接口不太精确。

好了进入正文:

将revit模型转为JSON文件,Revit API提供了一个接口:IExportContext;这个接口是API提供给用户的自定义导出接口,只要实现接口的方法就可以导出自己想要的数据。它的具体方法如下:

Revit二次开发|模型轻量化.RVT到JSON实现的测试

根据作者查阅相关资料都是利用这个来实现导出的,以下是作者所使用的一些源代码与JSON文件,需要者可以下载:

 

当然了读者也可以从以下链接处下载到:

如果读者可以快速读懂链接代码,测试时没有遇到问题,可以直接忽略以下内容;

作者在利用网上得来的代码进行测试时经常会爆出以下异常:

The given value is not a valid index of a normal of the polymesh. A valid valure is not negative and is smaller than the number of normals in the polymesh.

它的大致意思就是;给定的值不是polymesh的法向量的有效值,它的有效值必须小于法向量的索引值还不能为负数。

 

经过作者调试发现这个异常是由 PolymeshTopology.GetNormal(idx)引起的,且只有当PolymeshTopology的

同一个作者,特别感谢一下;很遗憾的是文中提到怀疑是Revit API是有缺陷的,原话如下:

Revit二次开发|模型轻量化.RVT到JSON实现的测试

截止目前,Revit模型导成JSON数据只能实现到这一步。然后如果读者有更好的解决方案或者疑问都可以留言一起交流;

如果后续作者有进一步的新成果也会及时分享出来,供大家学习!

 

 

 

 

模型,测试,轻量化

延展阅读

相关文章