【Dynamo学习笔记】基础入门

参考资料
罗嘉祥,宋姗,田宏钧. 《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 列表数据的导入和导出

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

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Dynamo Python脚本学习学习如何使用Dynamo软件中的Python编程语言来自动化建筑设计和工程的过程。这种学习涉及到Python编程语言的基础知识,以及如何在Dynamo软件中使用Python编写脚本来实现自动化设计和工程。学习Dynamo Python脚本可以帮助建筑师和工程师更高效地完成他们的工作,提高他们的生产力和创造力。 ### 回答2: Dynamo Python Script是Dynamo可视化编程语言的补充,旨在帮助用户更高效地控制和自定义设计工作流程。Dynamo Python Script实际上是Python脚本,它允许开发者使用Python在Dynamo程序中编写代码并利用其大量的库来扩展程序。 学习Dynamo Python Script的第一步是掌握Python编程基础,掌握Python语言语法、变量、数据类型、流程控制语句以及函数。掌握基础之后,就可以尝试将Python应用于Dynamo程序中。 在Dynamo Python Script中,用户可以使用Python编写自定义节点或者直接编辑Dynamo节点。通过Python编写自定义节点,用户可以以更高效的方式定制节点,提高程序的灵活性和适用性。同时,用户也可以直接在委托Python编辑器编辑Dynamo节点,更灵活地实现各种复杂的设计需求。 在Dynamo Python Script学习中,用户可以使用DynamoPython Package,它是一个Python包,提供了Dynamo节点的Python版本。使用此包,用户可以在自己的脚本代码中导入Dynamo节点,并与其他Python库进行集成,使得编写自定义节点更加简便。 除此之外,还有一些在线资源可以帮助学习Dynamo Python Script,如Dynamo Python Wiki,其中有很多文档和教程,涵盖了Python基础Dynamo Python Script的高级编程概念。 总之,学习Dynamo Python Script需要掌握Python编程基础,并运用它以及其他辅助工具(如DynamoPython Package)在Dynamo程序中进行编程。在不断练习和实践中,深度了解其编程概念和应用,从而提高工作效率,拓宽工作领域。 ### 回答3: Dynamo Python Script是一种基于Python语言的可视化编程工具,能够在Autodesk Revit中快速生成复杂的设计数据。学习Dynamo Python Script需要一定的Python编程基础,同时还需要对其在Revit中的应用有一定的了解。 首先,在学习Dynamo Python Script之前,需要先购买并安装Revit和Dynamo软件。这两个软件的安装并不难,可以通过官方网站进行下载和安装。安装完成后,开始学习Dynamo Python Script的第一步是了解其基本的编程特性和语法规则。 Dynamo Python Script语言的语法与其他Python语言类似,但有一些特殊的函数和组件,因此需要进行额外的学习和理解。在学习过程中,可以查看相关的教程和文档,例如Autodesk官方文档或是课程视频等。 其次,在理解Dynamo Python Script的基本语法和特性后,可以通过实际的项目来进行练习和实践。通常情况下,会使用Dynamo软件来构建节点网络,并在其中插入Python脚本。在设计过程中,需要不断地进行调试和修改,直至达到所需的效果。 最后,Dynamo Python Script的学习需要不断地实践和探索。只有在实际的项目中使用,才能真正理解它的应用价值和优势。同时,也需要不断学习新的知识和技能,以适应不断变化的设计需求。 总之,学习Dynamo Python Script需要有一定的Python编程基础,并且需要在实际的项目中不断实践和探索。掌握这种工具可以大大提高Revit的设计效率,让您的设计工作更加高效、准确和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值