EaBIM

标题: 如何编程读取墙的轮廓线 [打印本页]

作者: 萧闫子    时间: 2014-1-15 12:46
标题: 如何编程读取墙的轮廓线

解决思路:

Revit API没有直接提供接口读取墙的轮廓线。读取这个数据可以通过读取墙的几何信息(Geometry属性)获得代表这个墙的Solid,然后从这个solid中遍历solid中的所以后面找到墙的侧面(应该有两个),(判断依据是根据侧面的法向量与Wall.Orientation 向量平行) 这个方法从Revit2012(不含2012)之前的版本可以用。

在Revit2012中提供了一个更直接的方法来获取墙,板,屋顶的侧面和上,下表面。传入目标对象即可返回其指定的面。


返回侧面后,如果墙上有门窗洞口等,那么在这个侧面中会有多个EdgeArray, 找到外包的这个EdgeArray。它可以代表墙的轮廓线。如果需要获得基于墙中心的轮廓线,平移下这个EdgeArray即可。


难点分析:

这个思路的难点在于如何从多个EdgeArray中找到最大的那个外包EdgeArray,这是一个纯几何问题,网上这类代码和算法应该不少。

这里推荐一个简单方法。分别找出这些EdgeArray对象中的最长的Edge,然后比较那个具有最长Edge的EdgeArray,它就是最外面的那个EdgeArray


叶雄进

转载本文请说明出处:http://blog.csdn.net/joexiongjin/article/details/7275096



作者: 秦惑    时间: 2014-2-20 14:11
路过!!! 不发表意见……




欢迎光临 EaBIM (https://eabim.net/) Powered by Discuz! X3.2