EaBIM

标题: 编程获取墙的原始几何尺寸 [打印本页]

作者: 萧闫子    时间: 2014-1-15 12:44
标题: 编程获取墙的原始几何尺寸

在Revit里面,构件之间会有互相相交的关系,彼此会相切。也可以用Revit的命令功能(Join Geometry或Unjoin Geometry)来实现构件几何相切或解除相切。

这样的相切对于构建的几何形状是有影响的。很多时候开发者需要获取原先的未切割状态下的几何体。在Revit 2012中开始为FamilyInstance 类提供了GetOriginalGeometry() 函数来获取族实例的几何体。比如当墙与柱子相交后,柱子被墙给切了。这时候可以调用上面的函数获取柱子没有切割下的几何体。


那么对于墙来说,墙与其他墙连接时,墙的几何体发上变化,如何获取此时墙的原始几何体呢?


一个办法是解除所有的墙与墙的连接。Revit提供了二个函数用于墙连接的操作:

WallUtils.AllowWallJoinAtEnd() , WallUtils.DisallowWallJoinAtEnd().

然后再获取没有连接情况下的墙的几何体。这个操作有两个问题1. 改变了模型; 2. 据客户报告,可能使会发生错误。(因为没有模型和代码,尚未得知具体原因)


这里我想出另个办法.

Revit 2012 提供了几何体创建函数: GeometryCreationUtilities 类下面的几个几何体创建函数。

CreateBlendGeometry
CreateExtrusionGeometry
CreateRevolvedGeometry
CreateSweptBlendGeometry
CreateSweptGeometry

大多数墙是一个横截面相同的拉伸体。所以我们可以获取墙的起始端横截面。(通过HostObjectUtils.GetSideFaces(),然后遍历出起始端的面)

以及墙的基线 Wall.Location. 就可以拉伸出墙实体。

我尚未测试可行性,但是理论上应该是完全可行。

作者:叶雄进

文章来源:http://blog.csdn.net/joexiongjin/article/category/782739


作者: 飞天舞    时间: 2014-2-20 14:11
顶!!!!!!!!!!!!!!!!!!!!!!!!!




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