创成式设计、机器学习、算法、神经网络——这些术语充斥着社交媒体和技术论坛。但请放心,无需持有计算机科学学位或从事最具创新性的项目,即可使用 Dynamo 软件和 Revit 软件中的创成式设计优化工作流。本文将向您展示如何将自动化提升到一个新的水平,您可以在其中设置规则并在最合适的结果中选择最终解决方案。我们将回顾您需要了解的关键概念,以便成功地将创成式设计纳入您的日常工作流程。我们将展示随时可以使用或适应您需求的应用程序。 为什么我们称之为非极客指南?首先,我们在示例中没有使用任何 Python 脚本,也没有使用第三方包,因此您可以使用开箱即用的 Dynamo 节点运行研究。我们在 DesignScript 中使用了一些代码块,但仅仅是因为我们有些懒惰,而不是因为你不能用 Dynamo 节点做到这一点。最后,我们提供了一个易于遵循的模板,以便您快速理解提供的图表。 关键概念在本节中,我们将介绍有关创成式设计的关键概念。 算法算法是一组数学指令或规则,特别是如果提供给计算机,将有助于计算问题的答案。算法是任何计算机程序的基础构建块。 创成式设计创成式设计是一个使用迭代来针对某些指标和约束优化问题的潜在解决方案的过程。创成式设计是一种协作设计方法,设计师和计算机共同寻找最佳解决方案。 机器学习机器学习包括通过经验自动改进的计算机算法。使用机器学习算法,程序员不会设置规则和标准。根据过去的数据和经验,该算法可以识别趋势并预测结果。
创成式设计工作流程创成式设计工作流从收集有关要解决的问题的数据开始。结果就像问题DNA:它包含用于定义替代模型以探索设计空间的基本特征。在生成阶段,定义了为问题创建潜在解决方案的“配方”,换句话说,将输入和变量转换为候选解决方案的算法。一开始,随机生成许多候选项。 然后根据一组标准或目标评估每个候选解决方案,以便可以对其进行评分并与其他解决方案进行排名。创成式设计进入一个循环,在这个循环中,遗传算法指导设计空间的探索。在每个周期,它收集有关候选人表现的信息,并随着时间的推移完善拟议解决方案的质量。 在研究结束时,可以浏览结果以更好地了解问题,揭示输入和输出之间的相关性,以选择产生更有趣结果的组合。 ![]() 代理模型代理模型是衍生式设计工作流程的重要组成部分。事实上,经过仔细分析,你甚至可能会改变你对你需要处理什么样的对象的看法。这在衍生式设计的实际应用中经常发生。代理模型是真实问题的抽象表示,如果您愿意的话,可以简化,因此它有助于专注于关键特征。 这使您可以调低手头问题的其他特征的“音量”,有助于澄清各部分之间的关系,并突出显示否则可能无法立即看到的内部层次结构。 在这个过程结束时,问题的其他特征仍然存在,当需要选择解决方案时,可以使用批判性思维作为单独的练习来考虑它们,或者将它们一个接一个地整合并完善计算策略以创建更全面的研究。 ![]() Revit 中的创成式设计要在 Revit 软件中使用创成式设计,我们需要首先在 Dynamo 图形中创建逻辑,然后将其及其依赖项导出以进行创成式设计。如果有任何问题,该工具将报告要采取的纠正措施。在导出过程中,可以添加描述和缩略图,以清楚地识别研究并提供一些高级文档。 在 Revit 用户界面的“管理”下,可以启动创成式设计并创建新算例。将出现可用研究的列表,选择其中一个将打开设置窗口,从中可以启动研究。 从Revit中,还可以直接探索以前运行的研究的结果。从那里可以导航结果并选择最合适的结果,以进一步将结果发送回Revit的细节。 ![]() 为创成式设计准备发电机图在 Revit 的创成式设计中生成选项的逻辑需要在 Dynamo 图形中定义。为创成式设计准备图形有一些要求。 输入和变量只能分配给数字或整数滑块、布尔或 Revit 选择节点。 此外,这些节点需要检查“is input”属性。输入节点必须具有唯一的名称。 另一方面,只有具有数字变量的监视节点才能分配给输出,并且需要检查属性“is output”。同样,对于输入,必须重命名节点。建议在新名称中指明在优化中应最大化还是最小化该值。 ![]() 选项的生成仅使用 Dynamo 代码执行,因此不会执行任何 Revit 命令。因此,要使用来自Revit模型的信息,我们需要使用Data.Remember节点序列化数据(即存储)。 ![]() 选择选项后,Revit 图元的创建或修改也必须在同一 Dynamo 图形中构建。单击“在Revit中创建”时,节点Data.Gate将更改为“打开”,下游节点将执行。 ![]() 要在创成式设计对话框中显示几何图形,需要使用 Dynamo 图创建几何图形。建议对生成的几何图形进行颜色编码,以便在视觉上更容易比较选项。
应用在下一节中,我们介绍了可以应用创成式设计工作流来查找最佳解决方案的常见方案列表。 为了创建流程的抽象模式,我们在免费的在线平台 Cawemo.com 中采用了业务流程建模符号(BPMN 2.0)。 作为惯例,我们采用了以下语法来捕获流程的关键组件:
应用一:选择公寓在这个例子中,我们带来了现实生活中的多目标优化,以涵盖工作流程的基本原理,并介绍创成式设计技术。 问题陈述目标是从价格,面积,房间数量,管理成本,能源成本,最近一年的建设,中间水平,电梯和可能的家具的列表中找到选项(公寓)。 为了最终确定选择,当然需要检查图片,参观公寓,评估周围环境等。选择的这些定性方面不是替代模型的一部分,但它们在选择阶段具有重要意义。 过程理想情况下,人们可以访问房地产代理网站的整个数据集,但对于此示例,搜索仅限于 50 套公寓,其特征已存储在 JSON 文件目录中。目录中的每套公寓都有相同类型的信息,目标是根据目标搜索最佳选择,例如:
唯一的变量是目录中公寓的索引。下图表示使用的逻辑(链接)。 ![]() ![]() 类似应用当设计空间需要从目录或有限的项目列表中选择选项时,可以使用与此处介绍的方法类似的方法,例如:
应用二:如何停车问题陈述此应用程序正在尝试解决容器包含问题。目标是优化汽车在停车位内的位置,以便驾驶员的车门可以打开,车辆在指定区域内,并且没有冲突。 要生成选项,输入是汽车尺寸、从模型中获取的停车位形状和大小,以及环境约束:障碍物(墙壁、柱子等)和相邻的停车位(如果有)。此外,还有一个输入来引入从障碍物到物体的缓冲距离,在本例中是汽车,因为将汽车完全接触障碍物停放是不现实和不好的做法。 生成会将门的打开角度从最小 30 度变化到最大 90 度。汽车几何形状的位置将取决于原点,该原点将与在停车位内创建的点网格不同。对于不同的选项,此网格的密度会有所不同。最后一个变量是汽车相对于停车位主要方向的旋转。 所有选项都将根据三个指标进行评估:
过程下面的流程图(链接)概述了优化中的所有任务: 使用汽车尺寸和形状的输入,在 Dynamo 中创建表面。从 Revit 检索停车车线、障碍物和相邻的间隔线后,将为所有这些图元创建曲面,同时考虑引入的偏移。从 Revit 提取的所有数据都存储在 Data.Remember 节点中。 选项的生成首先在停车区表面的主要方向上以可变密度创建点网格。然后,使用坐标系转换汽车几何图形,其原点位于网格的一个点(也是一个变量),并从海湾的主要方向旋转一定角度。 根据三个目标评估选项,并按照此约定进行着色:绿色,用于停车位内的汽车表面;红色,表示与障碍物冲突的汽车区域;橙色,用于相邻停车位顶部的区域。 ![]() 类似应用此示例中的问题可以概括为将元素拟合到具有某些约束和挫折的空间内。类似的应用有:
应用三:形状排列这个应用程序是一个练习,试图理解什么是真正的创造力,并再次强调创成式设计不会取代驾驶座上的人;实际上恰恰相反:它是一个有价值的助手,可以按照我们的说明和偏好增强搜索过程。 问题陈述研究创成式设计的使用,以找到具有任意数量的边的任意数量的形状的排列,以便没有重叠(或至少在发生这种情况时最小化),过滤最紧凑的候选者,并让人类选择更美观的组合。 过程假设是从某些 Revit 地砖系列开始,并将其几何图形存储在 Dynamo 图形中。为了生成候选解决方案,每个形状都按顺序处理,其顺序应变化以探索设计空间的可能性。 对于每个形状,变量索引和参数确定用于定向形状的边和点,第二个独立的参数确定在序列中定位下一个形状的位置。 为了评估候选者是否是一个好的选择,可以最大限度地减少重叠(在研究开始时必须预期会有很多重叠形状,但候选解决方案应该随着时间的推移而改进)。 为了获得紧凑的模式,可以最小化包含边界框的大小、周长以及配置的周长和封装区域之间的比率。 选择过程可以通过使用输出中的数据来支持,但很明显,人类根据个人品味对哪个候选人最令人赏心悦目拥有最终决定权。 ![]() 关系图(链接)捕获上面定义的高级逻辑。有一系列Revit图元,它们存储在Dynamo图中。对于生成部分,某些变量的上限取决于输入的数量和边的数量,这将需要在实现中达到一定程度的技巧,以确保它适用于任意数量的输入和形状。要旋转形状,使用坐标系转换其几何形状就足够了。 为了测量目标中的性能,最好将所有转换后的形状连接成一个实体,并提取所有属性以评估候选解决方案的适用性。 最后,在研究过程中这些组件的可视化对于确定用户的主观反馈至关重要。 ![]() ![]() 类似应用将刚性形状彼此靠近排列的相同方法可以应用于不同的设计规模来创建:
应用四:地砖图案问题陈述减少现场浪费是实现更绿色建筑业的优先事项之一。通过优化摊铺模式和位置,所需的时间和材料更少。 此优化的输入是摊铺单元尺寸和图案的约束:瓷砖之间的距离或接缝大小、后续行之间的重叠以及允许的最小切割尺寸。此外,还需要设置要铺砌的地板的形状和尺寸。 选项的生成将改变瓷砖相对于地板表面的主要方向和第一块瓷砖的原点的角度。此原点是指沿边缘位于地板拐角处的点。 将根据三个目标评估所有选项:
过程下面的流程图(链接)显示了优化中采取的所有步骤。 ![]() 给定图块的大小和形状,在 Dynamo 中创建表面。从 Revit 中选择房间,并在 Dynamo 中提取其面以查找楼板表面。Revit 中的所有数据都存储在 Data.Remember 节点中。 想要更多?下载完整的课程讲义以继续阅读。 Raquel在马德里技术大学攻读建筑学硕士学位。然后,她在马德里的一家小型事务所担任建筑师,主要专注于住宅和保护建筑。2011年,她在Europan 11欧洲青年建筑师竞赛中获得亚军。她对可持续城市设计、可达性和公共领域设计的兴趣使她获得了景观建筑和园艺硕士学位。她与马德里皇家植物园的策展人合作,提高了她的种植设计技能。2013年,Raquel移居伦敦,参与了多个体育,公共领域,度假村和总体规划项目,包括卡塔尔的Al Wakrah体育场,黑山四季酒店和西北剑桥开发。Raquel的兴趣在于建筑,城市主义和景观之间的关系,以及这三个学科必须如何协同工作以设计更好,更宜居的绿色城市。 Paolo Emilio Serra是一名建筑工程师,他在意大利米兰的一家建筑公司担任了五年的BIM经理。自2014年以来,他一直担任欧特克的BIM实施顾问。在欧特克,他一直为工程公司提供客户成功服务,支持其业务流程中的BIM工作流程和数字化转型。Paolo的主要关注领域是自动化,创成式设计以及AEC和ENI行业之间的集成。Paolo 自 2006 年以来一直是建筑爱好者和 Revit 用户。他拥有博客Punto Revit。 |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-12 12:26
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.