建筑师为什么要会python编程?
773
摘要: 设想一下,如果建筑师自己会编程, 那么建筑师也就具有了生成或拼装这些算法及工具的能力. 那么这必然会成为一种优势,使得建筑师摆脱算法的束缚, 获得设计的自由, 从而使得设计更加具有原创性。
出处: 马海东 ©马海东
2020.3.19
作者: 马海东 时间: 20203.19

 

 

数字时代建筑师面临的问题


我们生存的这个时代是一个数字化的时代, 建筑师可以通过使用一系列与建筑设计类相关的软件工具,把他们的设计从“概念变成图纸”。

随着各种各样数字化参数化工具的出现,建筑师可以很轻松地的实时的动态的为几何图形进行参数设置,从而生成复杂的设计。

现在问题来了,你作为这些数字化软件的使用者,你的一举一动实际上是受到这些软件的限制, 你生成的这个形体即归功于你的设计,同时也归功于编写该参数化工具的程序员.

这些工具嵌入了程序员的算法与代码。而这些算法即拓展了建筑师们的概念,但是同时也束缚了建筑师思想.

面对这个尴尬的问题,建筑师需要认真考虑设计与算法的关系.

设想一下,如果建筑师自己会编程, 那么建筑师也就具有了生成或拼装这些算法及工具的能力. 那么这必然会成为一种优势,使得建筑师摆脱算法的束缚, 获得设计的自由, 从而使得设计更加具有原创性。

在现实工作环境中, 随着越来越多开源的算法及越来越容易的编程语言的产生,即使对一些建筑师天生就不喜欢编程,也不得不去积极的面对编程这个问题, 因为只有建筑师对这些工具越熟悉, 建筑师的素养及专业性越有可能发挥对淋漓尽致, 反之建筑师可能会成为越来越多的各种各样的建筑设计类软件的附庸.

基于以上的分析,下面就编程对设计创造及编程对设计流程管理两个方面探讨其对建筑设计对影响.

编程如何拓展了设计与创造?



参数化设计

很显然, 现在大量的建筑设计是通过autocad, revit, rhino, sketchup 等应用软件完成概念设计的. 如果没有这些绘图软件,只是依靠丁字尺与图板,会大大增加建筑师的工作时间,大量的枯燥的绘图工作.

但是这些软件本质上只是一种绘图及可视化工具, 只是起到了增强我们的手的技巧的功能.

即便如此,这些软件中的一些参数设置依然影响了我们的设计思维, 通过简单的修改参数就能马上获得可视化出新的造型,大大缩短了把概念转化为空间及造型的速度. 随着参数化越来越优化,建筑师可以快速的进行概念比较,从而发展出他们想要的结果.

而编程的技能可以把参数化设计发展到极致, 通过编程可以设置更加有条理有系统的参数,便于形成新的建筑形式,从而可以探索建筑如何随着参数变化而改变。

在这种语境中,编程语言也就成了新的建筑材料,新的建筑形式,通过非常简单的几行代码,就可以生成一个非常复杂的形体. 甚至可以通过巧妙的参数设置及编排,生成一些之前软件无法生成的空间或形体.

 

By gehrytechnologies


生成设计/GENERATIVE DESIGN

基于算法或AI的设计, 相比较于参数化设计, 在这个设计模式中, 计算机不再只是人类的一只手, 计算机在模拟人类的大脑,甚至是计算机与人脑的合作.

通过人类的算法设计加上电脑的算法计算, 就可以生成大量的合作成果,然后建筑师再次运用自己的专业判断从大量的成果选择出最优化的方案再继续发展,快速迭代完成概念阶段的设计. 在这种模式中计算机成为了创作或者说设计的重要的组成部分. 而编程技能也就成为了这种模式不可或缺的技能了.

这一模式最明显的特征就是计算机的不可取代性,没有计算机人类人工是无法设计出这些东西的.

通常情况下,设计工具软件预编译了很多设计师无法理解的复杂自动化程序算法,因此,这也造成了建筑师对该工具的使用是有限的. 而建筑师通过编程了解了这些算法代表了什么,以及他们如何影响几何结果之后,建筑师在设计中就可以利用这些算法,进行人机合作.

 

By Michael Hansmeyer & Benjamin Dillenburger

 

数字建造/Digital Fabrication

随着工业化程度的提升,数字化建造的时代已经来临, 通过对数控机床到3D打印机, 从激光切割到通用机器人的使用,必然对建筑设计造成巨大对影响.

对于这些设备及机器使用, 编程技术也变得不可或缺, 只有通过计算机语言才有可能与这些设计进行沟通与交流.

 

from Institute of Technology in Architecture, ETH

 

编程如何拓展了设计流程与管理?


从流程及管理的角度来看, 我们已经处于数字化时代.

当今建筑设计变得越来越复杂,需要越来越多的工种. 编程的能力在不久的将来可能成为一种必须掌握的应对数字时代的技能.

现实中我们大部分的工作是在计算机上完成的, 通常情况下我们使用的都是现成的应用程序, 这些程序能够完成我们大部分的工作,但是由于建筑项目的复杂性,依然有不少我们需要解决的问题是我们的软件所不能够完成的.

出于各种原因,比如商业利益等等, 这些应用程序他们之间相互不兼容, 没法无缝的协同工作. 因此我们需要工具让这些软件按照我们的意愿去工作.

而编程能力就是这一工具,有了这一工具,就有了以下优势:

能够掌握整个设计的主权

经常的,我们都会碰到如果这个软件可以这么这么地, 我就可以非常快的那么那么地完成任务了.
而当今的这些应用软件比如rhino, revit , sktechup 都有API, 通过几行简单的代码,建筑师就可以控制整个设计流程,因此也就可以根据具体需求进行调整。

用最少的工夫做最更多的工作

会编程的建筑师有着更高的工作效率。通过在软件上编写一个方程式来完成一项工作,而通常这会需要很多步和冗长的时间。

比如你需要将100多个文件从一个文件夹复制到另一个文件夹,并用今天的日期将其重命名。您可以手动执行此操作,这可能会花费您数小时的时间,或者您可以编写一个程序去执行.

再比如你需要把Excel表与门窗表相关联,列出所有门号及其关联的房间号和房间名称。如果你有两千多扇门需要整理,很显然你是无法手动完成此操作。借助编程代码,你可以在几分钟内更新门窗表。

代码可以让计算机完成这些无聊的重复性工作(它比人做得更好), 而省下来的时间可以让你去应对更有趣更有挑战性的任务.

编程可以帮助你解决问题

并非每个人都希望成为一名专职程序员,但是会编程是一项技能, 通过简单的学习一些代码可以帮助你解决每天遇到的问题。有了这项技能,建筑师除了会使用软件公司为我们提供的工具之外,建筑师也打造自己的工具。

随着对编程知识越来越多的掌握, 甚至可以打造你自己的独有工具箱,造就建筑师独特的风格及原创性。

这么多编程语言,为什么选python?


 

Python是一种易于读写的语言, 功能强大,足以构建工具类程序并自动化无聊的东西。

Python跨平台,这意味着可以在Windows、Mac、ubuntu中使用.

更重要的是python语言被叫做胶水语言, 几乎所有的建筑设计类软件都提供了python的开发环境:

rhino,grasshopper,
revit,dynamo,
blender,
maya , 3ds max …

虽然adobe的产品的api用的是JavaScript, sketchup的api使用的是ruby, 但是通过windows的dotnet框架,pytohon依然可以被用于photoshop, sketchup.

通过python你就可以把设计流程中的各个软件串联起来成为一个整体.


注: 以下内容基于笔者的经验及改编自python社区

简便

Python的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想。阅读Python程序像是在读英语。也正是由于Python程序代码简单,所以与其他程序语言相比起来,后期的程序维护也会更容易,更舒心。

这是初学者学习Python的最大原因。当你第一次开始编程时,你肯定不希望从具有严格语法和奇怪规则的编程语言开始。

开源性社区

Python是免费开源的。程序员可以通过共享、复制和交换它,也使得Python形成了强大的社区,使它更加完善,技术发展更快。

几乎任何python问题, 你百度或谷歌一下就有答案.

兼容性

Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。

面向对象

Python既支持面向过程,也支持面向对象编程。面向对象的程序语言通常十分复杂的,而Python却设法保持简洁。



Python使得程序员的开发效率不断提高。它适用于网站、桌面应用开发、自动化脚本、复杂计算系统、科学计算、生命支持管理系统以及物联网、游戏、机器人、自然语言处理等很多方面。

下面是几个经常使用的库

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

matplotlib: 图表绘制

requests: 处理URL资源特别方便.

NumPy: Numpy被认为是Python中最受欢迎的机器学习库之一。

json: JSON格式处理

tkinter: 图形界面GUI

 

 

参考资料: 计算机辅助建筑设计——BIM/数字建造/编程&脚本

 

 


广告时间


ikuku精选课 Python4Rhino 建筑师编程课 第3期 2020.6.27开始直播!讲师:马海东

(扫码查看课程最新招生详情)

 

 

ikuku创始人 CAAD ETH Zürich 建筑设计+软件开发
作者/author
马海东
ETHZ CAAD 2009/10
建筑师/architect
马海东
ETHZ CAAD 2009/10
文献数据
参考文献:
原文时间: 0000-00-00
Post数字编号:1870413