X
返回顶部
当前位置: 首页> BIM资讯> BIM技术

bim怎么插入栏杆?如何利用Dynamo批量为阳台窗添加栏杆

发布:中文网小编3号 浏览:2607人 分享
发布于:2020-09-07 14:54

    文章来源:BIM的乐趣

    今天呢,我想利用Dynamo解决一个施工图绘制过程中常见的问题,就是阳台栏杆。我们知道,住宅设计规范里要求,底层、多层住宅的阳台栏杆净高不应低于1.05m,中高层、高层住宅的阳台栏杆净高不应低于1.10m。所以我想利用Dynamo程序,自动为所选阳台窗创建栏杆,避免出现漏掉的问题。

    于是,就打开Dynamo搜了下,没有Railing的相关节点,于是就翻了下RevitAPI手册,直接搜Railing就找到了创建栏杆的方法:

image.png

    其中有三种创建栏杆的方法,第一种就很适合我们使用:

image.png

    根据doc,curveloop,railingType和level创建栏杆:

image.png

    那么基本语法就有了:

    Autodesk.Revit.DB.Architecture.Railing. (Document, CurveLoop, ElementId, ElementId)

    然后就是利用几何关系,来构造我们所需放置栏杆的曲线。

    但是,我也没想到啥好方法,于是就粗糙的用节点,来构造下我要放置栏杆的曲线,欢迎小伙伴提供简便方法哈~

    首先,我获取要放置栏杆的阳台窗,然后获取相关的基础数据,如窗的宽度、位置、所在主体、主体墙的厚度等:

image.png

    然后通过一些列的数学计算和点的移动,获取的和窗一样长的两条线,分别再墙两侧:

image.png

    然后在墙两侧都构造出了栏杆的曲线:

image.png

    之后通过判断曲线上的任意一点,是否在房间内,将墙外的曲线过滤掉,就可以用来生成栏杆了:

image.png

    然后获取项目中所有的栏杆类型,选一个需要的:

image.png

    同时获取每个窗所在的标高:

image.png

    最后的连入我们创建栏杆的PythonScript节点即可。

    但是在实际写这个代码块的时候,还是遇到了问题。

    第一次是生成栏杆失败,后来发现是要求输入栏杆类型的Id,改了下,就生成出来了,但是我发现,每个窗的栏杆,都是三段独立的栏杆,满足不了我的需求。

    起初以为是API就这样,但是我在测试单层的时候,发现可以连续曲线生成一个连续的栏杆。

    在各种尝试以后,发现是API中,这个curveloop我没弄对,我要每个连续的曲线,作为一个循环放在一起,才能连续创建栏杆。

    核心代码如下:

    revitCurves.append(curve.ToRevitType())

    level = levels[i]

    curveloop = CurveLoop.(revitCurves)

    railing = Autodesk.Revit.DB.Architecture.Railing.(doc,curveloop, railType.Id,level.Id)

    更改以后,就可以完美的为每个阳台窗,创建独立的栏杆了~

image.png

    Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。

    网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。

    需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频

l  BIM培训网校课程目录

l  Revit零基础培训教程

l  BIM项目实战训练营


BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!