Dynamo 可视化编程在桥隧方面的基础应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dynamo 可视化编程在桥隧方面的基础应用
更多相关内容请搜索“sacrifice1127的水利BIM”
目 录
一、Dynamo基础知识 (4)
1、Dynamo简介 (4)
2、软件的下载、安装和运行 (5)
3、用户界面 (7)
二、Dynamo可视化编程基础 (8)
1、可视化编程初探 (8)
2、Dynamo中可视化编程的基本要素 (9)
三、Dynamo可视化编程进阶 (13)
1.数据结构 (13)
2.运算 (13)
3.逻辑判断 (14)
四、Dynamo中的几何图元 (16)
1、向量、基准面、坐标系 (17)
2、点、线 (18)
3、曲面 (18)
4、实体及其布尔运算 (19)
5、网格 (20)
五、List列表的数据处理 (22)
1、Dynamo中list的基本特性 (22)
六、代码块及DesignScript简介 (25)
1、代码块(Code Block) (25)
2、DesignScript的简介 (25)
七、Dynamo与Revit的交互 (30)
1、Dynamo的运行方式 (30)
2、获取Revit中的图元 (30)
3、创建Revit中的图元 (33)
八、Dynamo的其他内容 (35)
1、自定义节点 (35)
2、Python初级 (36)
3、常用节点包 (37)
九、Dynamo应用实践三——参数化的桥(概念设计) (38)
1、建模思路 (38)
2、初步成型 (38)
3、优化调整 (39)
十、Dynamo应用实践一——用Bridge节点包快速建立桥梁模型 (40)
1、放样节点详解 (40)
2、栏杆扶手节点详解 (40)
3、其他节点详解 (41)
十一、Dynamo应用实践二——Dynamo对常规桥梁的建模思路 (42)
1、四个横断面生成上部结构 (42)
3、放置桥台 (43)
十二、Dynamo应用实践四——参数化的TBM盾构隧道 (44)
1、基础数据 (44)
2、思路介绍 (44)
3、生成模型 (45)
一、Dynamo基础知识
1、Dynamo简介
Dynamo 是Autodesk公司推出的,一款功能十分强大,并且十分便捷的可视化编程软件。
它可以和多款Autodesk公司的其他软件交互,适应各类使用人员的专业需求。
同时,它是免费的、开源的。
2、软件的下载、安装和运行
官网下载链接:/
安装过程中对revit的支持
Dynamo 的运行途径
单独运行的路径:
"C:\Program Files\Dynamo\Dynamo Revit\1.2\DynamoSandbox.exe" 在revit中运行的打开方式:
Revit 2017:“管理”->“Dynamo”
Revit 2017之前的版本:“附加模块”->“Dynamo”
3、用户界面
1、菜单栏;
2、工具栏;
3、节点库;
4、工作空间;
5、控制台
二、Dynamo可视化编程基础
1、可视化编程初探
可视化编程,亦即可视化程序设计:以“所见即所得”的编程思想为原则,实现编程工作的可视化。
即随时可以看到结果,实现程序与结果的调整同步。
常规的编程代码如下:
myPoint = Point.ByCoordinates(0.0,0.0,0.0);
x = 5.6;
y = 11.5;
attractorPoint = Point.ByCoordinates(x,y,0.0);
dist = myPoint.DistanceTo(attractorPoint);
myCircle = Circle.ByCenterPointRadius(myPoint,dist);
可视化编程的过程如下:
两个不同的方法,得到同样的结果,如下:
2、Dynamo 中可视化编程的基本要素
节点(nodes):根据需要,通过连接不同的,有特定功能的节点,从而实现可视化编程。
1.节点的名字;
2.节点的主体;
3.输入/输出端口;
4.List 列表数据预览;
5.“连缀”的类型
1.输入端口的标签;
2.输入数据的提示信息;
3.输入数据的类型;
1.错误提示信息;
2.Watch 节点检查输入的数据内容;
3.上游段的输入数据类型(“Red”的空变量)无法传递到下游端的节点;
接线(Wires)
:各个节点需要通过接线来传递数据。
是数据流的传递纽带。
节点库(Library):包含多个节点的容器。
不同的节点库,有不同的,特定功能的各类节点。
1. 节点库
2. 一个库——几何图元库
3. 库中的一个类别
4. 子类别
5.
节点
常用的节点
输入类节点(input)
1.布尔值(真/假) 2.数值(实数) 3.字符串
4.实数滑动条 5.整数滑动条 6.文件夹路径 7.文件路径
查看/三维查看(Watch/Watch3D):用来查看数据或者几何图元。
代码块(Code Block):用于直接输入数值、字符串、运算式、脚本代码等。
三、Dynamo可视化编程进阶
1.数据结构
数据可以是:实数(0,100,3.1415,-19);字符(hello world,你好,美女);各类变量(墙高,河长,半径);几何图元(圆形,球体,曲面);数组(1,2,3,4,5……,A,B,C,D,E……,a,b,c,d,e……)。
还可以是空值(null)。
Dynamo中的数据都是存放在List数列中,就像是其他编程语言中的数组,可以是一维、二维、三维……。
这部分内容比较晦涩,在实践中去体会。
2.运算
3.逻辑判断
·
举例操作详解:Dynamo——帮助——样例——Basics
四、Dynamo中的几何图元
几何图元(Geometry):与数字、字符不同,但也是数据(Data)的一种。
它是由形状(Shape),尺寸(Size),空间位置(Position)构成的大量数据(Data)。
1.点——>
2.线——>
3.面——>
4.体
Dynamo 中的几何图元(Geometry)
向量(Vectors)、基准面(Planes)、坐标系(Coordinate Systems)
2、点、线
点(Points)、线(Curves)
1欧几里得坐标系统中的点; 2曲线参数坐标系统中的点; 3表面参数坐标系统的点
1、直线;
2、多段线;
3、圆弧;
4、圆;
5、椭圆;6 、B样条曲线 7、样条曲线 3、曲面
曲面(Surfaces、NURBS Surfaces)
1、曲面; 2 、U向等参数曲线; 3、 V向等参数曲线;
4 、UV坐标; 5、垂直基准面; 6、法向向量
4、实体及其布尔运算
实体(Solids)及其布尔运算(Boolean Operations)
1、仅是一个面,非实体;2 、球体;3锥体;4、圆柱体;5、长(立)方体;
1并集(Union); 2差集(Difference); 3交集(Intersection);
5、网格
网格(Meshes)
1网格定点; 2网格边界; 3网格面;
举例操作详解:Dynamo——帮助——样例——Geometry
五、List列表的数据处理
1、Dynamo中list的基本特性
列表的索引是从0开始
List经过数据处理后,list的数据结构是变化的
1.一个5个点数据的list,输入polycurve.bypoints,输出的是1个数据的list 2.同样5个点数据的list,输入circle.bycenterpointradius,输出的还是5个数据的list
3.第一个list和第二个list中数据结构明显不同,数据内容也大不同。
一个是一条polycurve,另一个是5个圆。
List 的连缀(Lacing)特性 最短(Shortest)
最长(Longest)
叉极(Cross Product)
2、List 的数据处理
常用的list列表数据操作
List.Count
List.GetItemAtIndex List.Reverse
List.ShiftIndices
List.FilterByBooleanMask List.Flatten List.Chop
List.Map
bine
List.Transpose
List.ReplaceItemAtIndex ******
六、代码块及DesignScript简介
1、代码块(Code Block)
代码块(Code Block),是dynamo中可以直接输入DesignScript的节点。
可以通过双击鼠标左键,快速打开Code Block。
2、DesignScript的简介
DesignScript是dynamo编程语言。
通过代码块(Code Block),可以快速,简明的实现使用者的许多功能,前提是使用者有一定的计算机编程语言的基础。
同时,dynamo也提供了一个十分有用的功能,就是可以很便捷的将庞大的可视化编程好的节点和接线,直接变为代码块(Code Block)中的编程语言代码。
上图代码块(Code Block)中的代码,和节点的效果是一样的。
同上。
代码块(Code Block)中的代码,和节点的效果是一样的。
1)范围(Ranges):该内容,是dynamo中很重要的一个功能。
根据需要快速生成有规律的,一组数列。
2)数据编组成为列表list | 从列表list中提取数据
3)新建函数和调用函数
举例操作详解:Dynamo——帮助——样例——Core
七、Dynamo与Revit的交互
1、Dynamo的运行方式
要想Dynamo与Revit能进行关联互动,必须在Revit中打开Dynamo: Revit 2017:“管理”->“Dynamo”
Revit 2017之前的版本:“附加模块”->“Dynamo”
2、获取Revit中的图元
Revit的层级结构(族类别、族、族类型、实例)
Dynamo中提供选择Revit图元的节点
手动选择
分类选择
3、创建Revit中的图元
常用的创建Revit图元的节点
举例操作详解:Dynamo——帮助——样例——Revit
八、Dynamo的其他内容
1、自定义节点
自定义节点(Custom Nodes):由dynamo的使用者,根据自己的需要,编辑和定义新的节点。
这些自定义节点可以将很多已经解决的复杂的问题,封装起来,便于后续处理相同或者类似的问题。
同时,也便于传递和分享给其他的人。
自定义节点可以很大程度上精简可视化编程的流程视图内容
2、Python初级
Python是最近比较流行的编程语言。
据说是很容易,且简单,且快捷,且高效的编程开发语言。
Rhino、Grasshopper、Revit……等等都支持Python。
通过Python能让Dynamo变得更强大,也看上去更专业一点,虽然它是可视化编程,但也是编程啊!
因为有些问题,单纯靠Dynamo自带的节点是无法解决的,所以有的时候必须要用Python来进行一些简单的编程。
例如想要用多个平面将一个台体分割成小块,dynamo中自带的节点,不容易实现该功能。
但通过Python的代码编程,简单快捷的实现了所需的功能。
3、常用节点包
九、Dynamo应用实践三——参数化的桥(概念设计)
1、建模思路
2、初步成型
3、优化调整
十、Dynamo应用实践一——用Bridge节点包快速建立桥梁模型
1、放样节点详解
2、栏杆扶手节点详解
3、其他节点详解
十一、Dynamo应用实践二——Dynamo对常规桥梁的建模思路 1、四个横断面生成上部结构
2、放置桥墩
3、放置桥台
十二、Dynamo应用实践四——参数化的TBM盾构隧道 1、基础数据
2、思路介绍
3、生成模型。