在Dynamo中利用“Python Script”对Revit实体进行连续分段切割

之前在桥梁建模中,对各个构件的绘制,都是通过Dynamo调用自建参数族,并赋予相应参数来完成建模。此时完成的桥墩构件模型当然就是一个整体。但在实际施工中,桥墩的施工是一段一段往上浇筑形成的,这样就无法做到在施工阶段对分段模型工程量的统计。

当然做分段模型最直接的办法就是在建模的时候,对每段模型分开建立。但这样会带来工作量的大大增加。而且在建模初期一是可能由于没有详细的施工方案,对模型的分段距离不明确,二是后续难以对模型进行维护。所以这里利用Dynamo中自写简单的Python Script节点来便捷地对模型进行分段。

同样先简单写下总体思路:(revit2018;dynamo2.0.1)

1、选择需要分段的构件,并获取其Solid;

2、获取其实体质心、底标高和顶标高;

3、通过质心和两个标高找到构件的底点和顶点;

4、两点连线,并根据分段需要,在线上按距离取点;

5、在取好的点上建立平面;

6、将Dy中的实体Solid和平面Plane通过“Python Script”进行分段;

7、将切割好的实体,导入至Revit中。

下面以一个墩柱进行展示记录,根据上述步骤,依次获取了solid、质心、底标高和顶标高。这里的底标高和顶标高是自建桥墩族设置的控制参数名,根据实际构件参数名字进行更改就行。其中节点“点xyz分量”是我自己写的一次获取点的三个分量节点,可以直接使用dy自带节点,去依次获取质心点的x、y分量。

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第1张图片

有了质心的x、y分量和底标高、顶标高,下一步则是通过获取的数据组成实体的顶点和底点。两个点都取质心的x、y值,z值则分别取底标高和顶标高,并将两个点连接成线。在revit中可以看到已经生成了连线,中间的点是质心。因为这里的构件是竖直的,所以上下点是在中心上,对于不是竖直的构件其实也一样,虽然上下点不会在构件的中心,但是分段一般都是水平面在切割,所以仍然可以按照这种连线法。并且如果需要斜向的分段,后续直接对建立好的切割面进行旋转即可。

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第2张图片

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第3张图片

接下来就是在连线上通过分段距离找到切割点,这里随意定了三个分段点,当然也可以按比例去进行取点。然后就在分段点上建立切割面,这里的面通过中心点和法向向量建立。

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第4张图片

最后一步就是将建好的平面、获取的solid连接到“切割实体”这个Python   Script节点。这里红色框部分就是在有斜切的需要时,对建立平面的法向向量进行控制旋转来控制平面角度。如有需要可将输出的向量替换在法向向量上。实现情况见下面动图,可以很便捷的进行切割。切割好的实体是在dynamo中的solid,最后只需要通过spring节点将其导入到Revit中就可以了。这里就不多叙述了。

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第5张图片

 

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第6张图片

最后展示下切割实体这个节点,双击进入节点,再双击进入python script。可见实现形式很简单,思路就是在for循环里用平面依次去切割。文章中用到的dynamo原文件和“切割实体.dyf”、“点xyz分量.dyf”已经上传了资源,有需要的可以下载查看。

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第7张图片

在Dynamo中利用“Python Script”对Revit实体进行连续分段切割_第8张图片

 

你可能感兴趣的:(在Dynamo中利用“Python Script”对Revit实体进行连续分段切割)