最近作者一直在研究Revit模型轻量化显示在网页中,通过查找大量的资料,找到了一条可行的方法进行分享;
在开文前明确告诉大读者,将.RVT文件转为JSON文件再由three.js读取到网页,并没有实现,或者说只实现了一部分,数据不太完全,经测试模型中的曲面是读取的数据是不够的,现在还没有研究明白感觉是revitAPI中提供的基础数据接口不太精确。
好了进入正文:
将revit模型转为JSON文件,Revit API提供了一个接口:IExportContext;这个接口是API提供给用户的自定义导出接口,只要实现接口的方法就可以导出自己想要的数据。它的具体方法如下:
根据作者查阅相关资料都是利用这个来实现导出的,以下是作者所使用的一些源代码与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模型导成JSON数据只能实现到这一步。然后如果读者有更好的解决方案或者疑问都可以留言一起交流;
如果后续作者有进一步的新成果也会及时分享出来,供大家学习!
评论前必须登录!
注册