本文内容来自公众号“BIM码农”
什么是衍生式设计?
衍生式设计是人类与计算机之间的协作过程,用于解决设计问题。在此过程中,设计师定义目标并设计参数。计算机会生成许多设计备选方案,以找到一组最佳解决方案。
例如,假定您正在设计医疗设施。您想要放置一定数量的房间,以便护士可以以最快的速度从点A移动到点B。在定义目标和参数时,计算机会快速生成数十或数百种备选方案供您选择,其中有些备选方案可能是您从未考虑过的。
快速入门衍生式设计
我们用一个最简单的例子来说明如何使用衍生式设计。
假设平面上有四个点,他们能够围成一个四边形。现在,我们想让计算机帮我们画出这个四边形,使得面积与周长的比值最大。
问题很简单,现在我们打开Dynamo,注意,必须是Revit2021的版本。
新建一个Dynamo项目,然后创建四个点,分别命名为P0,P1,P2,P3,现在他们都在原点的位置。
我们保持P0在原点的位置,然后随意指定其他三个点的坐标。这样,我们就可以用线将他们连成一个四边形了。这里,点的坐标不会对计算结果产生影响,但为了有初始面积和周长,初始的四条边最好不要相交。
然后用List.Create将四个点组合在一起,接着使用Polygon.ByPoints,将四个点连成四边形。这两个组件的名字没有更改,如果找不到,可以按名字搜索。同样,以下组件都可以使用搜索搜到。
为了求得四边形围合的面积,我们可以创建一个面。
现在,我们可以得出多边形的面积与周长了。
现在,我们可以使用衍生式设计了。使用衍生式设计时,需要告诉计算机,哪些是可以变了,哪些结果是需要关注的。显然,在这个例子中,三个点的坐标是变量。
我们依次在三个点的x,y上指明。右键单击P1x,然后选择"是输入"。同样P1y,P2x,...P3y,这些组件执行同样的操作。
我们需要关注的结果是周长、面积和面积的比值。所以右键点击并指定他们为“为输出”。
这样,我们就有6个输入变量,3个输出结果了。保存这个项目为“周长面积”,当然你可以指定其他名字。注意:在使用衍生式设计前必须要保存。
现在,点击“导出以用于衍生式设计”
在弹出的对话框中点导出。
导出完成后,我们就可以创建分析了,点击创建分析。
接着点击我们刚刚导出的那个项目,“面积周长”。
弹出定义分析的对话框。分析方法有四个,分别是Optimize(最优化),CrossProduct(跨产品),Randomize(随机化)和LikeThis(相似)。
最优化:迭代以实现目标
生成针对您的目标进行优化的设计。GenerativeDesign运行多次设计生成。每个后续生成都基于之前的结果进行进化和改进。
随机化:使用范围内的随机值
使用此方法进行探索,以浏览分析类型可以生成的广泛的可能解决方案样例。如果您还不知道要针对哪些指标进行优化,则此方法有助于快速浏览设计备选方案。选择要在指定范围内随机化的变量。还可以指定要创建的结果数,或者使用默认值40。GenerativeDesign会根据分析类型定义的约束条件,使用指定变量在其定义范围内的随机值来生成结果。结果是一系列可能的解决方案,表示变量值的随机采样。
跨产品:在范围内均匀分布值
尝试不同的变量组合。使用等间距值生成指定数量的结果。
相似:探索首选结果的变化
要达成目标,但想要调整设计?查看对选定变量的细微更改如何更改设计。使用此方法可以浏览首选结果的不同变体。
一般而言,在我们首次进行衍生式设计时,选择随机化都是比较好的选择。他能快速创建许多的备选方案。现在,我们选择随机化,并将解决方案数量设置为1000,这样就会产生1000个方案。
点击生成后,就能生成1000个方案了,以下方框中的参数都是可以选择的,赶紧看看生成结果吧。
选择合适的结果,可以将他载入Dynamo。然后可以再次执行衍生式设计,并使用新的算法,如LikeThis,探索细微变化后的最优解。
转载请注明来源本文地址:https://www.tuituisoft/blog/4555.html