在Revit制作模型的过程中,我们通常会做一些族文件的排布放置,如果放置点少的话是没有问题的,但是如果放置点的量级增大到百级以上,这个排布过程就很枯燥了,如果在这个过程中能找到排布路线,接下来的事情就很简单了。
本次举例场景预设为:
1.某个族要沿着一条三维曲线排布
2.族的方向要和族放置点曲线切线方向一致。
如下曲线即为路径曲线,为三维曲线。
要把某个族沿着此三维曲线放置的话,那需要什么样的操作才能达到预期的效果呢?
一、在Dynamo中获取该曲线,因为预设的这条曲线是以概念体量的形式载入到Revit项目中的,所以我们先应该获取该族模型。
在Dynamo中找到【Select Model Element】节点,此节点的作用就是在Revit项目中读取选择的图元。
选择过程如下
二、获取图元中的曲线
既然我们把目标曲线模型都选择出来了,就应该获取模型中的曲线,用【Element.Curves】节点即可。
此时曲线已经现在在Dynamo界面中了,接下来就是思考该怎么将族文件放置在这条曲线上了。将族文件放置在曲线上,其实就是找到曲线上特定的点,将族文件放置在这些点上,也就同理放在曲线上了,这时我们需要按照一定的规律来寻找曲线上的点了,这里举例为按照等弧长的距离放置族文件。首先要做的就是要等分曲线。那么此时我们用到的节点是【Curve.PointsAtChordLengthFromPoint】
执行完这一步点的获取就已经完成了,起始点这里就不做解释了,感兴趣的小伙伴可以研究一下起始点(起始点不设置的话会默认从曲线端点开始布点,而设置了起始点的话会在起始点开始布点)
下来的工作就是将指定的族文件放置在曲线上的这些点上了,首先我们要想办法在dynamo中读取出Revit项目文件中的族,这时就要用到【Family Types】这个节点了。选取我们需要摆放的族文件。读取出族文件后需要将读取到的族按照点来放置,所以要用到【FamilyInstance.ByPoint】这个节点。然后把这个节点连接起来。
这时的族文件就已经在Revit项目中放置进去了。
但是现在有一个问题,就是族文件并没有按照轨道点切线方向摆放,而是统一都是原始族的样子摆放。我们这时就要调整模型的欧拉角了,此时用到【FamilyInstance.SetRotation】节点。这块主要注意角度的设置,角度需要设置为放置点出切线和Y轴或者X轴线的夹角,所以此处我们需要获取切线,用到【Curve.TangentAtParameter】,这个节点呢需要输入曲线和曲线特定点处的参数,所以我们又要找到曲线特定点处的参数,用【Curve.ParameterAtPoint】节点,再创建一个Y轴方向的向量,通过切向量个Y轴方向的向量就能得出角度了,这时就能调整模型的欧拉角了。成果详图如下:大家可以按照图片所示的节点操作。
最后放出一个完成效果吧
来源:微信公众号: Revit教程-原创:BIMer
转载请注明来源本文地址:https://www.tuituisoft/blog/3722.html