Return to Blog List

从CAD创建revit的墙_升级版

Blog Image 1

之前我使用dynamo创建过一个脚本,目的是从cad拾取墙体所在图层的线,批量创建revit的墙体。

后来我根据dynamo的更新,使用了新的方法,也就是使用矩形的方式,旧的方法是使用的是范围框的方式。

目前两种方法都还可以使用,对与新版本来说使用矩形的方式的兼容性更好。

但是之前的脚本有一个不足是,只能处理横平竖直的,处于正交状态下的墙体,面对斜线,圆形则无法生成正确的墙体。

因为即使是矩形,也是使用范围框的最大顶点,也就是右上角的顶点,和最小点,及左下角的顶点,与0标高所在XY平面相交而成,这种情况下生成的墙体定位线就是横平竖直的。

为了应对这种情况,尤其是我目前面对的一个cad具有斜线的情况,我决定更新我之前的脚本。 有两种方法,首先说明的是revit的更新带来了全新的dynamo,在新版中,存在一个最小范围框的节点,这个节点是可以用来面对斜线的,,不过有个问题是,由其与0标高的xy平面切出来的一个个平面,当我们想从其获得正确的isoline的时候,其实是办不到的,因为面的构成是相交出来的,所以软件无法判定UV的方向,所以一个方法是使用最小范围框的四条边,筛选出两条短的边,各自的中点连城的直线就是正确的墙体定位线。我成功做了一个。

但是此方法有个问题是,无法解决圆形,因为圆弧线无法使用按平行分组的方式分组,所以一组圆最后按线段长度分组是不对的,内侧的圆和外侧的圆会分在一组,而不是两个半圆的组合。

为此我最后想出了通过线段中点的距离进行分组,然后通过中点所在的线段重新对所有cad拾取的线进行重新分组排序,然后使用loft融合功能构造平面,最后获得中线,也就是值为0.5的isoline,这种情况下获得的定位线则可以处理所有情况下的墙线了,不管是直线,斜线还是弧线。以下是演示内容。

Return to Blog List