第一章|Dynamo 简介

Dynamo 是什么?

第一章|Dynamo 简介

简而言之, Dynamo 是一款开源的三维可视化编程软件,能够让用户直观地编写脚本,操控程序的各种行为。

但这种 可视化编程(VisualProgrammingLanguage,VPL) 类型软件,并不是什么新鲜的东西,有不少用户,早已见过不少类似的软件。而在这一类型软件中,最被大家所熟知的,莫过于与 Rhinoceros 所搭档的 Grasshopper,还有 Bentley 平台下的 GenerativeComponents, GitHub 上的 GoogleBlockly 等。

可视化编程

业界对 可视化编程 的研究,已经有几十年的历史了。它就像把一篇用纯文字书写的小说,绘制成直白的连环画一样。比如在 Dynamo 官网所举的例子中,它就把折一个仙纸鹤的过程,分别用纯文字与图像的形式,描述了一遍:

第一章|Dynamo 简介

纯英文文字版的折仙纸鹤过程:

Start with a square piece of paper, colored side up. Fold in half and open. Then fold in half the other way.Turn the paper over to the white side. Fold the paper in half, crease well and open, and then fold again in the other direction.Using the creases you have made, Bring the top 3 corners of the model down to the bottom corner. Flatten model.Fold top triangular flaps into the center and unfold.Fold top of model downwards, crease well and unfold.Open the uppermost flap of the model, bringing it upwards and pressing the sides of the model inwards at the same time. Flatten down, creasing well.Turn model over and repeat Steps 4-6 on the other side.Fold top flaps into the center.Repeat on other side.Fold both ‘legs’ of model up, crease very well, then unfold.Inside Reverse Fold the “legs” along the creases you just made.Inside Reverse Fold one side to make a head, then fold down the wings.You now have a crane.

纯图像版的折仙纸鹤过程:

第一章|Dynamo 简介

谁更简明,不言而喻。

故 可视化编程 一开始诞生的原因,是由于部分程序员认为文本并不是显示代码的最佳形式,其开发效率过于低下,他们甚至给出了一个极其形象的比喻:

使用文本进行开发,就像原始人在一片画满壁画的黑暗山洞中举着火把看壁画。试着想象一下,把几百行的代码,均匀展开到一堵墙上,那么我们的电脑屏幕每次所能看到的代码,都只是黑暗中的一小部分而已。

第一章|Dynamo 简介

每次屏幕所能够展现的那一小部分,就像我们是打着光在查看一般。

第一章|Dynamo 简介

这么一类比,难道不就像原始人打着火把看壁画一般吗?

第一章|Dynamo 简介

为了解决这种低能的开发模式,开发人员便把代码封装为一个一个的独立 代码块(CodeBlock),再让程序员以类似拼积木一般地拼装,或者以类似 流程图(FlowChart) 一般地绘制方式,用程序设计逻辑,去拼装组合这些代码块,最终实现一个程序。

这也是目前可视化编程出现的两种主流形式:

基于块的可视化编程(BlockBasedVPL),类似 Blockly,就是一种 基于块的可视化编程 软件。

第一章|Dynamo 简介

基于流的可视化编程(FlowBasedVPL),类似 Dynamo,就是一种 基于流的可视化编程 软件。

第一章|Dynamo 简介

然而,开发者们经过这么多年推广可视化编程的最终结果是:目前世界上的程序员们,还是 100% 的使用文本的方式进行开发。

没错,可视化编程虽说到今天仍在发展,但它在程序员中的推广失败得非常彻底。

但无心插柳柳成荫,可视化编程在幼儿编程教育,以及非程序员程序设计等方面,却爆发出了巨大的价值。因为它足够的简明,足够的简单,非常适合新手入门,或者帮助不会编程的人员进行程序设计。这也是目前很多建筑专业软件,都有可视化编程相关开发的原因 — 毕竟建筑师绝大多数,都是不会编程的。建筑学,已经是足够博大精深的学科了,若是还要各位建筑师从零开始重新去学习 计算机编程,那未免过于困难与不人道。

虽说可视化编程与真正的代码编程尚有一定的差距,但其本质,终究还是 计算机编程,若是用户真的没有任何计算机知识,那他使用起来,也必定是举步维艰的。想要用好可视化编程,计算机知识是不可或缺的基础。

封闭的建筑业、开放的计算机

计算机技术在近几十年里经历了爆炸性的发展,其发展速度之快,对社会生产力提高之大,是前所未有的。以通信技术为例,二十年前我们还只能用手机实现基本的通话,但在仅仅二十年的时间中,它却经历了数次技术迭代,如今一个小小的智能机,足以满足我们日常生活中的绝大部分需求。

第一章|Dynamo 简介

类似的例子,数不胜数,不但推动了原始产业的生产力,也促进与形成了很多的新产业。

这时再回看我们的建筑业,我们不得不承认 — 在如今农业都已经实现自动化、信息化的这个世界中,建筑业的作业方式,还是过于落后与传统了些,其间虽有紧跟潮流者,但放在整个行业之中,却仍然是凤毛麟角。

建筑业,无论从技术上或是风气上而言,都是一个相对保守、并且自我完善度很高的行业。毕竟它在一定程度上来说,已是足够成熟、且足够完善的。一旦处于这样的情形之下,它也就很难被新鲜的事物所影响,也很难去学习与接受新鲜的事物。

但这是当下大势:其它行业已经在接受着新技术让自己飞奔,建筑业如若不跟随而上,将会严重制肘其它行业的发展。

时代要求建筑业去拥抱新鲜的技术,提升行业的效率,与新的技术接轨,这是不可逆的大势。

故,无论是 参数化设计 抑或是 建筑信息化,现今都在如火如荼的进行中,建筑业目前的确在经历着一波技术革命。建筑师们正在控制着计算机代替自己完成越来越多重复的规律性工作,使用计算机实现自己那些天马行空的设计, 可视化编程 这种十分恰当的技术手段,也越来越被广大的从业者欢迎。

回归 Dynamo

Dynamo 是一款典型的 树状架构 的基于流可视化编程软件,其代码的最小单位为 节点(Node),用户在节点的左边连线 输入(Input) 数据,再从节点的右边 输出(Output) 结构,层层节点,依次逻辑相连,最终构成一个完整的脚本。

第一章|Dynamo 简介

Dynamo 虽然可以独立作为一款软件,以沙盒模式运行,但是它却很少单独作为一款独立软件被人提及,它更多的是与 AutoDesk 的 BIM 软件 Revit 捆绑被大家使用。

但相比于市面上其它的可视化编程软件, Dynamo 最大的好处是能够让用户调用 Revit 的 API,从而让用户能够在 Revit 种,实现快速建模、参数化设计、批量处理模型信息等操作。

前两个好处尚且不谈,因为这是市面上大部分软件都可以做到的事情,但是我们知道 BIM 的精髓,是其中的 I,即 information, Dynamo 能方便准确地处理 建筑信息模型 中的信息,这是其与其它可视化编程软件最为不同的特点之一,也是其最大的优势之一。

一款能够操作 RevitAPI,实现快速建模、参数化设计,并且还能批量处理模型信息的开源三维可视化编程软件,这就是 Dynamo。