参考资料:
(1) 罗嘉祥,宋姗,田宏钧. 《Autodesk Revit炼金术——Dynamo基础实战教程》,同济大学出版社
(2)【Dynamo学习笔记】基础入门
为了能和Revit进行交互,Dynamo中内置了很多Revit的节点,包含一系列用于选择、创建、编辑、查询等操作,帮助用户简化建模的过程,提高工作效率,拓展模型的应用。
在Revit中,模型结构按照Category-Family-Type-Instance
四个层级进行存储。
Category
——类别,是最高层级。Family
——族,是某一类别中图元的类,是根据参数(属性)集的共用、使用上的相同和图形表示的相似来对图元进行的分组。Type
——族类别,是某一种族中图元的类,是根据尺寸、规格等参数对图元进行的分组。Instance
——图元,是Revit中的某一个示例,是Revit模型结构中最小的单元。图元的选择主要通过Selection
下面的节点来实现。
选择当前Revit项目中的类别——Categories
。
选择当前Revit项目中的族——Family Types
。
选择图元对象——Select Model Element
。如果没有图元被选定,那么这个节点就是黄色。
图元参数的读取——Element.GetParameterValueByName
图元参数的写入——Element.SetParameterByName
——Grid.ByStartPointEndPoint
这时候我们发现,轴网的编号并不是从“1”开始的,所以我们可以用Element.SetParameterByName
节点,设置轴网的编号。
有了轴网作为定位参照之后,可以使用节点FamilyInstance.ByPointAndLevel
在给定坐标点处放置族实例。
创建结果如下:
这里需要注意一下列表的连缀属性(Lacing)。连缀属性定义的是使用该列表作为输入项的节点,使用其中一种连缀方式,使用列表中的项与其他输入的列表进行匹配运算。由“最短”、“最长”和“叉积”三种。
设列表A为[a1, a2, a3, a4, a5],表示X方向的轴线数量;设列表B为[b1, b2, b3, b4],表示y方向的轴线数量。
列表的连缀属性 | 含义 | 示例 |
---|---|---|
最短 | 将列表A和列表B的前4个(因为最短的列表的数量为4)进行一一计算,运算完成后停止。 | |
最长 | 将列表A和列表B的前5个(因为最短的列表的数量为5)进行一一计算,运算完成后停止。这里因为列表B只有4个,所以列表A的第5个与列表B的最后一个进行运算。 | |
叉积 | 将列表A中的每一项与列表B中的每一项依次匹配进行运算。 |
根据需要使用不同的连缀状态,可以帮助用户简化Dynamo程序,实现各种列表之间的灵活运算。
通过给定曲线。底面标高和顶面标高创建墙体——Wall.ByCurveAndLevels
通过给定曲线、墙体高度和底面标高创建墙体——Wall.ByCurveAndHeight
为了简化程序,我们可以将一些通用的节点流程编组封装成自定义节点。首先,我们选中我们需要封装的节点组,在空白处点击右键,选择创建自定义节点
。
然后,我们定义好该节点的特性:
这时候,我们上面创建墙的程序可以简化成如下所示,只要输入选择的轴线,即可完成后续的操作: