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

萧闫子 发表于 2014-1-15 12:44:12

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

在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:44

顶!!!!!!!!!!!!!!!!!!!!!!!!!

页: [1]
查看完整版本: 编程获取墙的原始几何尺寸