EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

萧闫子 发表于 2014-1-9 12:37:36

Revit二次开发:如何编程读取墙的轮廓线



Revit API没有直接提供接口读取墙的轮廓线。读取这个数据可以通过读取墙的几何信息(Geometry属性)获得代表这个墙的Solid,然后从这个solid中遍历solid中的所以后面找到墙的侧面(应该有两个)。(判断依据是根据侧面的法向量与Wall.Orientation 向量平行)如果墙上有门窗洞口等,那么在这个侧面中会有多个EdgeArray, 找到外包的这个EdgeArray。它可以代表墙的轮廓线。如果需要获得基于墙中心的轮廓线,平移下这个EdgeArray即可。
难点分析:
这个思路的难点在于如何从多个EdgeArray中找到最大的那个外包EdgeArray,这是一个纯几何问题,网上这类代码和算法应该不少。
这里推荐一个简单方法。分别找出这些EdgeArray对象中的最长的Edge,然后比较那个具有最长Edge的EdgeArray,它就是最外面的那个

冰雨 发表于 2014-2-20 14:45:45

(*^__^*) 嘻嘻……

页: [1]
查看完整版本: Revit二次开发:如何编程读取墙的轮廓线