You are on page 1of 45

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


2、List 的数据处理 ....................................................................................................... 24

六、代码块及 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
2、放置桥墩 .................................................................................................................... 42

3、放置桥台 .................................................................................................................... 43

十二、Dynamo 应用实践四——参数化的 TBM 盾构隧道 ......................................... 44

1、基础数据 .................................................................................................................... 44

2、思路介绍 .................................................................................................................... 44

3、生成模型 .................................................................................................................... 45
一、Dynamo 基础知识

1、Dynamo 简介

Dynamo 是 Autodesk 公司推出的,一款功能十分强大,并且十分便捷的可视化

编程软件。它可以和多款 Autodesk 公司的其他软件交互,适应各类使用人员的

专业需求。同时,它是免费的、开源的。
2、软件的下载、安装和运行

官网下载链接:http://dynamobim.org/

安装过程中对 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.布尔值(真/假) 5.整数滑动条

2.数值(实数) 6.文件夹路径

3.字符串 7.文件路径

4.实数滑动条

查看/三维查看(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)
1、向量、基准面、坐标系

向量(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.Chop

List.GetItemAtIndex List.Map

List.Reverse List.Combine

List.ShiftIndices List.Transpose

List.FilterByBooleanMask List.ReplaceItemAtIndex

List.Flatten ******
六、代码块及 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、生成模型

You might also like