一个小例子,告诉你什么是衍生式设计

之前好多小伙伴想让我介绍介绍Dynamo与衍生式设计,奈何最近太忙了,实在没时间弄这些~趁着端午节,今天用一个小案例,先简单让大家对衍生式设计有个初步认识,之后有时间,我再多写几篇关于这方面的文章,好了,接下来进入正题:

一、计算设计

在了解衍生式设计之前,先来了解下什么是计算设计。计算设计不是任何一种你可以应用的算法或现成的过程。相反,我们将其描述为一种方法,设计师通过定义一系列指令、规则和关系,精确地确定实现设计及其结果数据或几何所需的步骤。

这里,最主要的,是这些步骤必须是可计算的,这意味着可以通过计算机来理解和计算这些步骤。

当进行计算设计时,设计师会专注于开发创建设计的程序,而不是设计本身。遍历选项和数据的过程转移到计算机。这节省了时间、金钱和精力,让设计师专注于设计过程的创造力。

二、衍生式设计

区别于计算设计,一般我们认为:衍生式设计是人类和计算机之间的协作设计的过程。在此过程中,设计人员定义设计参数,计算机生成设计方案(备选方案),根据设计人员设定的可量化目标对其进行评估,使用以前的结果和设计人员的反馈改进研究,并根据设计的原始目标对结果进行排名。

这个过程中,涉及了很多的算法,例如遗传算法,后面有时间的话,我们可以深入聊聊这部分内容。
 

三、举个例子

我们举一个非常简单的例子,来简单试用下Revit2021的衍生式设计功能。
 

假设平面上有三个点,他们能够围成一个三角形。我们希望,在一定的范围内,让计算机帮我们画出三角形,使得面积与周长的比值最大。
 

接下来,我们打开Revit2021和Dynamo2.5,现在把三角形做出来。
 

首先创建三个点,分别用参数控制每个点的XY值:
 

然后将三个点串联成线,并求周长:
 

接下来封闭曲线成面,并求面积:

最后计算面积和周长的比值,并用一个watch节点输出结果:
 

到这里,一个基本的三角形就创建完成了,我们可以调整参数,生成不同的三角形,接下来如何来用这个程序测试衍生式设计呢?
 

首先,衍生式设计需要有输入和输出,我们需要把控制点XY值得滑块作为输入,最后的watch节点作为输出:

到这里,Dynamo程序就算真正的完成了,接下来就要利用衍生式设计工具了,点击菜单栏衍生式设计按钮,单击导出以用于衍生式设计...

然后在弹出的菜单里设置说明和图标:

点击导出后,会提示导出完成:


 

接下来点击,衍生式设计菜单下的“创建分析”命令,就会弹出创建分析对话框:
 

选择我们之前导出的三角形,进入定义分析对话框:

定义分析的时候,首先需要选择分析的方法,工具里内置了四种方法,分别是:Optimize(最优化),Cross Product(跨产品),Randomize(随机化)和 Like This(相似)。

最优化:迭代以实现目标

生成针对您的目标进行优化的设计。Generative Design运行多次设计生成。每个后续生成都基于之前的结果进行进化和改进。


 

随机化:使用范围内的随机值

使用此方法进行探索,以浏览分析类型可以生成的广泛的可能解决方案样例。

跨产品:在范围内均匀分布值

尝试不同的变量组合。使用等间距值生成指定数量的结果。

相似:探索首选结果的变化

要达成目标,但想要调整设计?查看对选定变量的细微更改如何更改设计。使用此方法可以浏览首选结果的不同变体。

这里我们选择用Randomize(随机化),让程序快速创建多个备选方案,供我们选择。同时勾选所需的变量,这里默认列出之前我们在Dynamo设置的输入。设置生成方案的数量,默认为40个。

之后点击生成,就会自动生成分析结果,并跳转到浏览结果界面:

同时我们可以切换散点图和平行坐标图,以不同的方式查看结果。


 

到这里,一个基本的衍生式设计流程,我们已经走了一遍,当然,这只是简单的尝试一下这个流程,想要真正的进行衍生式设计,需要更复杂的逻辑,配合Dynamo编写更复杂的程序,来执行衍生式设计。

当然了,有小伙伴肯定会问,节点库里,还有GenerativeDesign节点包,根本没用到啊!没关系,下次有时间,我会专门介绍下,相关的节点有什么用途,其实真正对我们有意义的,只有Data.Gate和Data.Remember两个节点,很有意思,下次我们继续聊~
 


 

好了,今天的分享就到这里了,主要是想给大家简单介绍一下衍生式设计的工作流程,当然还需要大家自行尝试,有不对的地方,请指正哈!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/682266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java使用opencsv完成对csv批量操作

文章目录 前言一、maven二、造数三、代码部分1.OpenCsvController2.OpenCsvUtil3.StudentInfo4.CodeToValue 三、效果展示1.download2.upload 总结 前言 csv文件是不同于excel文件的另一种文件,常常以,作为分隔符,本篇将通过JavaBean的形式完成对csv文件…

Linux_进程地址空间

我们用c语言写的程序,经过编译后形成可执行程序存放在硬盘。当运行该程序时,操作系统将该程序加载到内存中,创建进程控制块,变为进程,然后开始执行该程序。大家是否想过,操作系统是如何加载的呢&#xff1b…

25天物理探索旅程 - 第三天:相对论时空观的构建

第三天的课堂,我们将踏上一段穿越时空的奇幻旅程,探索那个由爱因斯坦用天才智慧构建起来的相对论世界。想象一下,你手握一把名为“狭义相对论”的神奇钥匙,准备开启一扇通往全新宇宙观的大门。 首先,我们来聊聊同时性…

【c语言】字符串常见函数 下

🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:c语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&a…

幻兽帕鲁Palworld服务器设置参数(汉化)

创建幻兽帕鲁服务器配置参数说明,Palworld服务器配置参数与解释,阿腾云atengyun.com分享: 自建幻兽帕鲁服务器教程: 阿里云教程 https://t.aliyun.com/U/bLynLC腾讯云教程 https://curl.qcloud.com/oRMoSucP 幻兽帕鲁服务器 幻…

如何使用idea连通服务器上的Redis(详细版本)

这里我使用的是阿里云的服务器 打开阿里云的安全组,设置端口为6379 在redis.conf文件中,注释bind 127.0.0.1 将protected-mode设置为no,即关闭保护模式 更改服务器中的防火墙,放行6379端口 # 放行端口 firewall-cmd --zo…

Nacos 的配置管理和配置热更新

一、配置管理的必要性 1. 存在问题 微服务重复配置过多维护成本高:将各个微服务的配置都写到配置管理服务中,单个微服务不去编写配置,而是到配置管理服务中读取配置,实现配置共享,便于修改和维护 业务配置经常变动&a…

【AI视野·今日CV 计算机视觉论文速览 第299期】Mon, 29 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Mon, 29 Jan 2024 Totally 55 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Annotated Hands for Generative Models Authors Yue Yang, Atith N Gandhi, Greg TurkGAN 和扩散模型等生成模型已经展示了…

C++:priority_queue模拟实现

C:priority_queue模拟实现 什么是priority_queue模拟实现向上调整算法向下调整算法插入与删除 仿函数 什么是priority_queue priority_queue称为优先级队列。优先级队列是一种特殊的队列,其中每个元素都有一个相关的优先级。元素的优先级决定了它们在队…

Python数学建模之回归分析

1.基本概念及应用场景 回归分析是一种预测性的建模技术,数学建模中常用回归分析技术寻找存在相关关系的变量间的数学表达式,并进行统计推断。例如,司机的鲁莽驾驶与交通事故的数量之间的关系就可以用回归分析研究。回归分析根据变量的…

论文阅读:GamutMLP A Lightweight MLP for Color Loss Recovery

这篇文章是关于色彩恢复的一项工作,发表在 CVPR2023,其中之一的作者是 Michael S. Brown,这个老师是加拿大 York 大学的,也是 ISP 领域的大牛,现在好像也在三星研究院担任兼职,这个老师做了很多这种类似的工…

系统架构25 - 软件架构设计(4)

软件架构复用 软件产品线定义分类原因复用对象及形式基本过程 软件产品线 软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕…

九、OpenCV自带colormap

项目功能实现&#xff1a;每隔1500ms轮流自动播放不同风格图像显示&#xff0c;按下Esc键退出 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 colormap.h #pragma once #include<opencv2/opencv.hpp> using namespace cv;class ColorMap { public:vo…

Mybatis开发辅助神器p6spy

Mybatis什么都好&#xff0c;就是不能打印完整的SQL语句&#xff0c;虽然可以根据数据来判断一二&#xff0c;但始终不能直观的看到实际语句。这对我们想用完整语句去数据库里执行&#xff0c;带来了不便。 怎么说呢不管用其他什么方式来实现完整语句&#xff0c;都始终不是Myb…

《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)

文章目录 6.1 磁盘分区与格式化6.1.1 重点基础知识6.1.2 重点案例&#xff1a;为新硬盘配置分区和文件系统6.1.3 拓展案例 1&#xff1a;创建交换分区6.1.4 拓展案例 2&#xff1a;使用 LVM 管理分区 6.2 挂载与卸载文件系统6.2.1 重点基础知识6.2.2 重点案例&#xff1a;挂载新…

近十年金融资产收益率

通过掌握大类资产的历年收益率数据&#xff0c;做基于数据的投资&#xff0c;提高胜率和收益率。 下面是同花顺梳理的2014至2023大类金融资产收益率&#xff1a; 基于这个数据&#xff0c;我们再统计两项指标&#xff1a; 1. 每种资产在近十年的投资胜率&#xff08;收益率为…

牛客2024年情人节比赛 娱乐报告

前言 挺欢乐的比赛&#xff0c;有趣 欢迎关注 珂朵莉 牛客周赛专栏 珂朵莉 牛客小白月赛专栏 A. 第二杯半价 思路: 模拟 分奇偶进行讨论 t int(input())for _ in range(t):n, x list(map(int, input().split()))if n % 2 1:print (n//2 * (x (x 1) // 2) x)else:pr…

RIDERS: Radar-Infrared Depth Estimation for Robust Sensing

RIDERS: 恶劣天气及环境下鲁棒的密集深度估计 论文链接&#xff1a;https://arxiv.org/pdf/2402.02067.pdf 作者单位&#xff1a;浙江大学, 慕尼黑工业大学 代码链接&#xff1a;https://github.com/MMOCKING/RIDERS 1. 摘要&#xff08;Abstract&#xff09; 恶劣的天气条件, …

python 自我检测题--part 1

1. Which way among them is used to create an event loop ? Window.mainloop() 2. Suppose we have a set a {10,9,8,7}, and we execute a.remove(14) what will happen ? Key error is raised. The remove() method removes the specified element from the set. Th…

imazing怎么连接苹果手机

imazing怎么连接苹果手机 要连接苹果手机&#xff0c;您可以选择使用数据线或无线网络&#xff08;Wi-Fi&#xff09;两种方式。以下是具体的步骤&#xff1a; 使用数据线连接&#xff1a; 准备工具&#xff1a;确保您的Mac或Windows电脑已经安装了iMazing软件&#xff0c;并且…