编程如何获得通过草图创建的Revit构件关联的原始草图对象


问题:

在Revit中,有很多构件可以通过草图来定义其基本图形特征来生成。如楼板、楼梯、层面等。像以上这些构件,如何才能获取到他关联的草图(Sketch)对象呢?


答:

这是一个很好的问题.

每一个楼板, 屋面等都有一个Sketch对象与之关联. 但是Revit却没有提供API来找到二者之间的关系.

这时候有两个办法.

1. 通过遍历Sketch对象,然后找到其中的Profile的线与楼板或屋面的边线相同的Sketch. 这个方法速度快效率高. 但是需要写一些代码来比较线与线之间的关系.

2. 通过启动一个临时事务, 在事务中删除楼板或屋面对象, Document.Delete() 就会返回被删除的对象,其中包括关联的Sketch对象. 然后RollBack/回滚这个事务.  这样模型没有发生改变, 也找到聊Sketch对象. 这个方法的好处是编程简单, 但是执行速度和效率低. 模型很大时, 速度慢.  用这个方法的一个类似博文:

    Document.Delete()方法的妙用

    Revit编程修改板的边界(含完整源代码)


作者: 叶雄进-橄榄山BIM软件首席研发

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

转载请注明出处


你可能感兴趣的:(对象数据访问,对象过滤--,找到目标对象,读取对象几何信息,概念说明)