可视化编程
要想了解Dynamo For Revit,那么你首先要知道什么是可视化编程。
可视化编程,亦即可视化程序设计:以“所见即所得”的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序与结果的调整同步。可视化编程是与传统的编程方式相比而言的,这里的“可视”,指的是无须编程,仅通过直观的操作方式即可完成界面的设计工作,是目前最好的Windows应用程序开发工具。 -----《百度百科》
亦或者
In computing, a visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually.[1][2] A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs (known as dataflow or diagrammatic programming)[3] are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. ----- Wikipedia
上面是对可视化编程定义的解释。那么既然是编程,自然离不开算法。什么是算法呢?
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
算法,在现实生活中,以折纸鹤为例,输入一张纸,输出是一个纸鹤。
如Dynamo 官方文档的例子:
如果用文字描述这里的步骤,你会发现非常繁琐,而且非常的不直观:
- 先使用一张方形纸,有顏色的一面朝上。对折然后展开。然后沿另一方向对折。
- 将纸翻转到白色的一面。对折,折好后展开,然后再次沿另一方向对折。
- 使用已產生的折痕,将模型顶部的 3 个角向下折至底部的角。展平模型。
- 将顶部的三角形片折至中心,然后展开。
- 将模型顶部向下折,折好后展开。
- 展开模型最上方的片,将其向上折,同时向内按压模型的两侧。展平,折好。
- 翻转模型,在另一面重复步骤 4-6。
- 将顶部的片折至中心。
- 在另一面重复上述步骤。
- 向上折叠模型的两条「腿」,折好然后展开。
- 沿刚刚產生的折痕对「腿」进行内侧反向折叠。
- 对一面进行内侧反向折叠以產生头,然后向下折叠翅膀。
- 现在纸鹤就折成了。
从这个例子里面,你应该能够感受可视化编程带来的好处了吧!
第一个例子 - 画圆
下面是官方的例子,通过dynamo来创建一个圆。这个圆的半径是可以通过Node来调整的。
在dynamo中的样子:
如果写成代码,他是如下的形式:
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);
这样还是不直观,下面的gif动画可以帮你一目了然。(图片右击,在新的标签页打开,效果更佳!)