BIM 参数化建模探讨
2019-08-15严文通广东科学技术职业学院
严文通 广东科学技术职业学院
Revit 是Autodesk 公司的建筑信息模型(BIM)软件,其高效、便捷的参数化建模广泛应用在建筑业中,参数化模型是一些构件与另一些构件存在关联关系,当某一个建筑构件的参数发生变化时,其它跟它关联的构件也同时发生变化,参数化可以通过简单的数值来控制也可以用公式或逻辑关系来控制建筑构件,这样搭建建筑模型的效率大大提高。
Dynamo for Revit 是基于Revit 的可视化脚本程序,可以构建自定义算法处理数据并生成几何图形,在Dynamo 中可以构件Revit 对像,如参数化创建楼层标高、创建楼层平面、创建天花板平面、参数化生成轴网,参数化生成墙体、楼板等。Revit 参数化模型软件在搭建建筑模型功能十分完善,对于一些有规律重复的构件,比如玻璃幕墙、外墙的遮阳板等构件,可以通过参数化或建立自定义的族,让重复的构件很轻松地按照一定规律自动快速地生成,而无需通过复杂的建模命令去创建。Revit 配合Dynamo 进行参数化模型的搭建,自动生成各种构件,能做到更高级的参数化、信息化建模。
1 Dynamo 标高和楼层
Revit 新建建筑项目,在附加页面中点击Dynamo 1.3 可视化编程插件启动Dynamo 可视化编程,图书馆共九层、每层标高4.5 米、屋顶标高40.5 米,共十个标高。创建标高的节点命令有:By Elevation、By Elevation And Name、By LevelAnd Offsett 和ByLevelOffsetAnd Name 四个命令。
四个节点命令功能如下:
Level.Byelevation:根据项目中其高程来创建Revit 标高,标高名称自动命名。
Level.ByElevation And Name:根据项目中其高程和名称来创建Revit 标高。
Level.ByLevelAnd Offset:根据相对现有标高的长度偏移来创建Revit 标高。
Level.ByElevation And Name:根据新标高名称及相对现有标高的偏移来创建Revit 标高。
图书馆10 个 标高分别是0、4500、9000、13500、18000、22500、27000、31500、3600、40500 毫米,新建的建筑项目默认已有两个标高,标高1 和标高2。
标高2 默认标高是4000,现将默认标高2 数值改为4500,使用Element.SetParameterByName 节点命令设置标高2 的标高数值为4500,使用创建数字序列节点命令Sequence,该命令有三个输入:start(序列开始的数字)、amount(该数列共有多少数字总量)、step(每个数字之间的间隔量),从标高3 开始创建至标高10 共创建8 个标高,开始标高是9000,数列总共有8 个数字,每个数字之间间隔是4500。
双击空间空白处,分别添加三个Cod e Block,分别将以上数值填进其中,并与其相对应连接并将序列结果输出至Watch 显示序列内容。将数列连接到Level.Byelevation 标高节点命中,点击左下角运行命令创建标高。添加FloorPlanView.Bylevel 节点命令和Ceiling Planview.ByLevel 节点命令自动生成相应楼层平面和天花板平面。
2 Dynamo 自动创建轴网
轴网左右进深是A 至H,上下开间是1-17,每轴之间间隔7500,设A1 轴左边轴点位置为零点坐标,其他点位置即可以计算出来,如:B1 轴点坐标为0 和7500,右边A17 轴点位置为120000和0。先绘制A 至H 轴的轴网,使用Point.By Coordinates 节点函数在给定的两坐标,在平面中形成点。A、B、C、D、Е、F、G、H 点的Y 轴坐标分别为0、7500、15000、22500、30000、37500、45000、52500,使用Sequence 点函数创建以上序列赋值给Point.By Coordinates 节点函数。
使用Integer Slider 滑动条,可以拉动滑块调节轴网的个数。右边的轴坐标点也用同样方法,Y 轴还是上面列出的数值,X 轴的数值是1 至17 轴的总距离(17-1)×7500=120000,用Code Block设置一简单公式(A-1)×B,A 为17、B 为7500,将左边的Point 值和右边的Point 赋值给Grid.BystartPointEnd Point 节点函数创建轴网,同时需要增加一个Element.SetParameterByName 命名轴号的节点函数,用Sequence 序列节点函数取得ABCDEFGG 字母序列赋值绘SetParameterByName,如下图:
同样方法创建1 至17 轴上面和下面的坐标点,将1-17 号轴号命名,运行生成完整轴网,完整节点函数连接如下图:
Dynam o 生成完整轴网
在Revit 手动绘制轴网与Dynamo 节点函数自动生成的轴网相比,后者效率更高,在完成代码编程后生成轴网仅需改动滑动条运行即自动可生成,如手动添加楼层及绘制轴网需要数分钟,用Dynamo 生成可以1 秒以内生成,对比起来后者效率十分明显。
3 Dynam o 创建幕墙和楼板
在轴网的基础上使用Wall.ByCurveAnd Height 节点函数在轴网四周创建幕墙,节点需使用导向曲线、幕墙高度、所在楼层、幕墙类型参数创建。
Curve 导向曲线选项需要绘制直线来连接,使用坐标点定位A1、A17、H1、H17,将以上四点坐标分别连接给四个Line.BystartPointEnd Point 节点函数,即可在四点之间创建四条直线并将四条直线连接List.Create 创建数组列表再赋值给Curve,同时也将数组再赋值给Floor.By OutlineTypeAnd Level 节点函数创建一层楼板。如图:
使用FamilyInstance.ByPointAnd Level 节点函数在幕墙增加柱子,载入结构混凝土方柱,将方柱连接至familType,将标高1连接至level,point 需要将上、下、左、右各坐标点连接创建数组列表再赋值给point,最后将轴网、楼板、墙体、柱子一起运行,即可生成模型。
4 结束语
在BIM 参数化建模中Revit 配合Dynamo 参数化编程搭建高效而创新的图书馆三维模型,在Dynamo 可视化编程中数字建模变得直观和高效,在本文搭建的Dynamo 模型可以仅需改变其中参数即整栋建筑完成修改,建模的方法高效而新颖和有一定的实用性。