【Dynamo学习笔记】基础入门

发布时间:2024年01月16日

参考资料
罗嘉祥,宋姗,田宏钧. 《Autodesk Revit炼金术——Dynamo基础实战教程》,同济大学出版社

前言

最近在备课、带本科生的毕业设计,要用到Dynamo。自己花点时间复习一下,顺便记个笔记。

1 Dynamo的界面

从Revit2018之后就自带Dynamo了,从“管理”选项卡中可以进入。
在这里插入图片描述
启动Dynamo之后,可以进入出事界面如下。
在这里插入图片描述
点击“新建”,可以进入Dynamo的工作界面,左边是节点库,右边是工作空间。
在这里插入图片描述
可以看到,Dynamo是一种可视化编程,大大降低了编程的入门门槛。

2 节点的操作

Dynamo的节点可以分为创建节点、操作节点和查询节点,关于Dynamo的节点的简介可以看文章《Dynamo基础知识02 节点介绍》。当我们想使用某个节点时,只需要点击节点库的某一项,该节点就会出现在工作空间上。不同节点之间的连线就可以表示数据流。
在这里插入图片描述

3 几何形体的创建与编辑

下面我们就是通过具体的例子,来看一下每个节点应该怎么用。

参考资料:
Dynamo基础知识03-常用节点用法
Dynamo中列表基本操作

3.1 几何形体的创建

3.1.1 直线

根据起点和终点创建直线——Line.ByStartPointEndPoint
在这里插入图片描述

3.1.2 圆形

根据中心店和半径创建圆形——Circle.ByCenterPointRadius
在这里插入图片描述

  • Number Slider:滑块节点。设置滑块叠加空间,按一定的数值进行叠加。我们可以设置这个滑块的取值范围以及步长。在这里插入图片描述

3.1.3 多边形

创建多边形——Polygon.ByPoints
在这里插入图片描述

  • List Create:列表叠加。将多个列表叠加,形成新的多维列表,每个子列表的数据不变。

创建圆内接多边形——Polygon.RegularPolygon
在这里插入图片描述
在这里插入图片描述

3.1.4 长方体

当我们创建节点时,可以从后往前创建。例如我们想要创建一个长方体,可以先找到长方体这个节点,然后看这个节点需要什么输入。如果我们不确定这个输入是什么类型的数据,可以将鼠标放在输入接口上,就会提示上一个节点应该是什么节点。例如下图就表明,这里的“Origin”就需要一个“Point”,也就是坐标点作为输入。
在这里插入图片描述
通过中心店、长、宽、高创建长方体——Cuboid.ByLengths
在这里插入图片描述

3.1.5 球体

根据中心店和半径创建球体——Sphere.ByCenterPointRadius
在这里插入图片描述

3.2 几何形体的编辑

3.2.1 坐标点的平移复制

通过向量指明复制方向——Point.Add
在这里插入图片描述

3.2.2 几何形体的平移复制

在这里插入图片描述
节点Geomwrey.Translate可以实现几何形体的平移复制,可以通过设置x、y、z三个方向的平移距离来实现(上图),也可以通过设置平移的方向来实现(下图)。
在这里插入图片描述
除了上面两种方式,还可以通过方向+长度的方式来实现平移复制:
在这里插入图片描述
这里,我们用到了一个新的节点——Code Block。Code Block是一个允许直接编写DesignScript 代码的节点,我们先称它为“代码块”,在代码块里面可以直接输入数字、字符串、列表、函数命令等。 具体可以看文章《Dynamo基础知识04-Code Block代码块的使用》和《Dynamo-CodeBlock手册-基础篇

3.2.3 几何形体的镜像复制

——Geometry.Mirror
在这里插入图片描述

3.2.4 几何形体的旋转复制

——Geometry.Rotate
下图的例子表示,半径为1的圆,绕其旋转的基点坐标点(2,2,0)旋转,旋转轴为(0,0,1)的向量,旋转角度为“0,30,…,360”的角度数列表。
在这里插入图片描述
下图的例子表示,圆形以旋转基准面XZ平面,以角度数列表“0,30,…,360”为旋转角度进行旋转。
在这里插入图片描述

3.2.5 几何形体的缩放

——Geometry.Scale
等比例缩放:
在这里插入图片描述
不等比例缩放:
在这里插入图片描述

3.2.6 获取几何形体间的距离

——Geometry.DistanceTo
在这里插入图片描述

  • Watch:查看节点。可以查看变量的值。

3.2.7 几何形体的拆分

——Geometry.Split
需要注意的是,两个几何体能进行拆分的前提是有交集。
在这里插入图片描述

3.2.8 几何形体的差集、交集与并集

差集——Solid.Difference
在这里插入图片描述
并集——Solid.Union

在这里插入图片描述
交集——Geometry.Intersect
在这里插入图片描述

4 曲线的创建与编辑

4.1 曲线的创建

4.1.1 多段线曲线

——PolyCurve.ByPoints
在这里插入图片描述

4.1.2 样条曲线

——NurbsCurve.ByPoints
在这里插入图片描述

4.1.3 螺旋线

使用Code Block创建螺旋线:
在这里插入图片描述
使用节点Helix.ByAxis生成空间螺旋线:
在这里插入图片描述

4.2 曲线的编辑

4.2.1 获取曲线上的坐标点

——Curve.PointAtParameter。可以将曲线看作是长度为1,使用[0,1]之间的任意数值作为参数,且由该参数定义的连续的坐标点的集合。那么可以通过参数param得到曲线上的坐标点。
在这里插入图片描述
也可以通过输入弧长,来获取从曲线起点处开始,至给定弧长处的坐标点——Curve.PointAtSegmentLength
在这里插入图片描述

4.2.2 曲线的翻转

——Curve.Reverse
因为曲线是有方向性的,曲线的翻转就是改变其起点和终点。
翻转前,获取到的坐标点靠右侧:
在这里插入图片描述
翻转后,获取到的坐标点靠左侧:
在这里插入图片描述

4.2.3 曲线的延伸

延伸起点——Curve.ExtendStart
在这里插入图片描述
延伸终点——Curve.ExtendEnd
在这里插入图片描述

4.2.4 曲线的打断

初始的样条曲线。样条控制点的列表为arr=[Point.ByCoordinates(-20,-20,0),Point.ByCoordinates(-10,20,0),Point.ByCoordinates(0,-20,0),Point.ByCoordinates(20,20,0)];。需要注意的是,在2022版本的Dynamo中,Code block中的列表用中括号[]表示。
在这里插入图片描述
选取从参数为0.2处的坐标点到曲线终点之间的一段曲线——Curve.TrimByStartParameter
在这里插入图片描述
选取从起点开始到参数为0.90处的坐标点之间的一段曲线——Curve.TrimByEndParameter
在这里插入图片描述
选取从曲线参数为0.2至参数为0.9的坐标点之间的一段曲线——Curve.TrimByParameter
在这里插入图片描述
删除从曲线参数为0.2至参数为0.9的坐标点之间的一段曲线——Curve.TrimInteriorByParameter
在这里插入图片描述

4.2.5 曲线的切线和法线

切线——Curve.TangentAtParameter。这里的0..1..0.5表示取[0,1]之间的值的列表,步长为0.5。
在这里插入图片描述
法线——Curve.NormalAtParameter
在这里插入图片描述

4.2.6 曲线的偏移

——Curve.Offset
在这里插入图片描述

4.2.7 曲线的投影

——Curve.Project
在这里插入图片描述

5 曲面的创建与编辑

5.1 曲面的创建

曲面可以看作是由包含两个参数u和v的函数所定义的连续的坐标点的几何。在Dynamo中,二维曲面和三维曲面都称作Surface。曲面的创建方式有很多种。
由曲线向某个方向拉伸生成曲面——Curve.Extrude
在这里插入图片描述
可以通过填充生成曲面——Surface.ByPatch。该方法仅适用于闭合曲线。
在这里插入图片描述
通过对多条曲线,进行按顺序的放样,生成曲面——Surface.ByLoft
在这里插入图片描述
上面的例子都是在生成PolySurface,NurbsSurface的创建通常是通过给定一系列坐标点生成——NurbsSurface.ByPoints
在这里插入图片描述

5.2 曲面的编辑

5.2.1 曲面上的点及法向量

获取曲面上的坐标点——Surface.PointAtParameter
在这里插入图片描述
获取一系列曲面上的向量——Surface.NormalAtParameter
在这里插入图片描述

5.2.2 曲面的参数线曲线

曲面上uv值对应的曲线,称为参数线曲线。可以通过Surface.GetIsoLine来获取。
在这里插入图片描述

5.2.3 曲面的偏移

通过输入偏移距离实现,偏移方向为曲面法向量方向——Surface.Offset
在这里插入图片描述

6 列表的创建与编辑

6.1 列表的创建

使用Range创建
在这里插入图片描述
使用Sequence创建
在这里插入图片描述
使用Code Block创建
在这里插入图片描述
使用Code Block创建由多种方式:

创建方式事理
起始值…最终值10…15 = [10, 11, 12, 13, 14, 15]
起始值…最终值…#列表项数10…20…#3 = [10, 15, 20]
起始值…#列表项数…间距10…#5…3 = [10, 13, 16, 19, 22]

6.2 列表的编辑

参考资料:
Dynamo中列表基本操作

将列表中的项按给定的数量向左/右移动——List.ShiftIndicies
在这里插入图片描述
在这里插入图片描述
列表的翻转及列表按照逆序重新排序——List.Reverse
在这里插入图片描述
列表的转置,常用于多级列表——List.Transpose
在这里插入图片描述
获取指定的列表索引项——List.GetItemAtIndexL
ist.
在这里插入图片描述
去除列表中某个索引的值——List.RemoveItemAtIndex

在这里插入图片描述
替换列表中某个索引的值——List.ReplaceItemAtIndex
在这里插入图片描述
将多个子列表合并为一个大列表——List.Create
在这里插入图片描述
将多个子列表合并为单个列表——List.Join
在这里插入图片描述
将列表分割为指定长度的一组连续子列表——List.Chop
在这里插入图片描述
计算列表中的项数——List.Count
在这里插入图片描述
列表编组——List.GroupByKey
在这里插入图片描述

6.3 列表数据的导入和导出

列表数据的导入
在这里插入图片描述
列表数据的导出
在这里插入图片描述

文章来源:https://blog.csdn.net/Jenny_oxaza/article/details/135594175
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。