美文网首页BIM的乐趣
一键放置柱子护角,你get了吗?

一键放置柱子护角,你get了吗?

作者: 九哥BIMer | 来源:发表于2020-02-27 23:53 被阅读0次

    今天写个番外篇,给柱子添加护角。

    记得几年前刚开始做BIM的时候,有次做车库导视方案模型,记得好像是鼎伦设计的车库一体化方案,当时柱子护角就给了两种方案,而且基本上每颗柱子上都要放护角,然后甲方竟然要求把护角模型都放进去,当时只是刚入门,没有啥简便方法,就做了个护角的族,一个一个柱子的放,现在想想真是脑残啊当时,地下三层几千个柱子,挨个摆。。。。。。

    image

    当时好像是这样一个护角,几千个柱子,求心理阴影面积。。。。。

    image

    现在,有了Dynamo插件,情况就不一样了,可以解决很多重复性工作,于是,我就想写个小程序,一键放置柱子护角,说干就干:

    第一步:将所有柱子变成Dynamo图元,然后获取柱子的BoundingBox。

    image

    第二步:我们主需要柱子的底部轮廓即可,这里用到Clockwork里的节点,获取BoudingBox在指定平面上的曲线。

    image

    由下图我们可以看出,我们得到的曲线是柱子的四条边线,然后我们获取曲线的起点或者终点,这里任选其一即可。这样我们就将四条边线转换成了四个顶点,当然这个点就是我们放置族所需的点。

    image

    第三步:接下来要分两步走,一个是在点的位置放置族,另一个是旋转族。
    首先,放置族:

    image

    然后,我们思考下族的旋转角度,由于我之前选择的是曲线的终点,所以通过点击点的列表,我们得出护角族的顺序以及应该旋转多大的角度。

    image

    由上图我们可以看出,左下角的点是第一四个,那么我们的顺序就是由左下角开始,顺时针计数,分别是0-1-2-3,所以我简单做个护角族,对应旋转的角度是0-90-180-270度。

    这样就很明了了,我们只需要创建对应数量的一个列表,分别是0-90-180-270度的循环即可。

    于是,我们将点列表降低一个维度,然后获取项数,再用codeblock创建一个角度的列表,然后通过List.OfRepeateditem来匹配列表长度,这样就得到一个对应的角度列表:

    image

    第四步:将列表拍平,然后将放置的护角族旋转对应角度即可。

    image

    好了,今天的教程就到这里了~~,来看下效果:

    image image

    有时候思考思考以前做过的项目,会发现当年用的方法是多么的低级,用好插件,让工作效率翻倍吧~~

    相关文章

      网友评论

        本文标题:一键放置柱子护角,你get了吗?

        本文链接:https://www.haomeiwen.com/subject/ftdqhhtx.html