编程获取墙的原始几何尺寸

 

转载请复制以下信息:

 

原文链接: http://blog.csdn.net/joexiongjin/article/details/7474247

作者:  叶雄进

2012.4.18

 

 

在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. 就可以拉伸出墙实体。

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

 

希望有帮助!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值