1. 引言
在台湾省,因为数字建筑设计者必须多绘制数倍于非数字建筑图说的图量,进而导致数字建筑设计到建造的流程相较于非数字而言耗费大量人力及时间。为解决此问题,本研究将撰写一套参数化程序来自动衍生符合数字建筑图说新规范,并将这个规范落实在实务上。所谓落实在实务上,就是指设计师能够独立绘制出符合新规范的建筑图说,将其应用在设计案上。本研究将透过目前数字建筑设计者常用的软件,以撰写程序代码的方式设计一个自动参数化产生新媒材的程序,未来只需要提供建筑设计的数字模型以及给定相关数值,则此程序将会自动参数化产生新建筑图说。
2. 研究背景
设计媒材是指在设计者的抽象概念与实际设计结果间的辅助角色,一方面为了辅助设计师自我概念的整理与厘清;另一方面,建筑师也利用设计媒材表达心中所想要表达的概念 [1]。设计媒材的选择将对设计者的思维带来限制同时也带来启发,进而影响设计者的思考模式 [2],从最早的设计媒材之于建筑师只是单纯作为一种纪录工具 [3];然后开始制作建筑模型,但此时并非有助于建筑设计 [4];之后实体模型作为设计媒材,以弥补二度空间平面媒材之不足;之后,新的建筑媒材透视图出现,开始有助于辅助设计思考 [5]。二十世纪,建筑师为了要达到建筑设计的突破,开始尝试自制新的设计媒材 [6],因而成就数字建筑的出现。但数字建筑设计者必须多绘制数倍于非数字建筑图说的图量 [7],进而导致数字建筑设计到建造的流程相较于非数字而言耗费大量人力及时间 [8] [9] [10]。为解决此问题,本步骤将撰写一套参数化程序来自动衍生符合前一章所得到的数字建筑图说新规范。开始程序撰写以前,必须先了解目前数字建筑的设计到建造主要的软件有哪些。本研究所撰写的程序将为这些主要的建筑软件之一所产生的数字模型,转为符合规范的建筑结构剖面图说。
3. 研究问题与目标
倘若每一张数字结构剖面图说都由人工绘制(每一点都是由人力确认坐标后再注明在图上),将花费大量时间与人力成本,本研究将透过目前数字建筑设计者常用的软件,以撰写程序代码的方式设计一个自动参数化产生符合数字结构剖面图的程序,未来只需要提供建筑设计的数字模型以及给定相关数值,则此程序将会自动参数化产生数字结构剖面图说。
4. 研究方法与步骤
程序撰写流程分析步骤如下:第一步,研究当今数字建筑设计师主要的建模软件;第二步,分析设计师原先绘制数字结构剖面图之绘图习惯;第三步,分析数字结构剖面图的规范,将数字结构剖面图规范写成条列式,以方便之后改写成程序;第四步,以尽量符合设计师绘图习惯的方式,撰写一套能够自动绘制数字结构剖面图之图面的程序;第五步,增加程序功能,在数字结构剖面图上标注文字及建筑信息;第六步,输出完整数字结构剖面图文件。
5. 建筑图说自动化程序
开始程序撰写以前,必须先了解目前数字建筑的设计到建造主要的软件有哪些。本研究所撰写的程序将为这些主要的建筑软件之一所产生的数字模型,转为符合规范的建筑结构剖面图说。
5.1. 软件选择
台湾省常用的建筑建模常用的软件包括:3DS MAX、Bonzai 3D、CATIA、FormZ、Maya、Rhinoceros 3D (简称Rhino3D)、Sketch Up等,其中现在数字建筑建模最常用的软件为Rhinoceros 3D,主要原因是因为Rhinoceros 3D本身与AutoCAD的兼容性高,且Rhinoceros有内建辅助程序Grasshopper方便数字建筑进行程序撰写、参数化设计以及建模,是最适合本研究撰写程序之用。Rhinoceros 3D由位于美国西雅图的Robert McNeel and Associates (McNeel)公司于1992年开始开发,1998年发售1.0版,目前最新版为Rhino 7。本研究将以Rhino 6做为平台,加上内建程序Grasshopper进行数字结构剖面图的程序撰写
5.2. 程序撰写目标
程序可以分为两个部份,第一部分是关于数字结构剖面图的图面;第二部分是着重在数字结构剖面图的文字。关于图面部分:步骤一,将设计完成后的建筑结构模型,输入进Rhino 5.0;步骤二,经由绘制图面的数位建筑设计师给的条件:(1) 在顶视图上标出剖面线位置、(2) 标示剖面线要投影的方向;步骤三,程序将自动化输出一张剖面图(图上没有任何文字)。
文字部份详细步骤如下,步骤一:输入/开启第一部分的剖面图;步骤二:选取要标示坐标的重要建筑结构;步骤三:程序将自动化将建筑相关信息输出于图上,包括编号、X坐标、Y坐标;步骤四,将数字结构剖面图完整输出(包括图以及文字)。
5.3. 设计师绘图习惯
在撰写数字结构剖面图程序以前,本研究藉由专家访谈的机会,先了解设计师透过数字软件绘制数字结构剖面图的习惯。再分析这些绘图习惯,将其拆解成数个步骤。本研究希望数字结构剖面图程序会是设计师容易学习、容易使用的工具,因此,将在尽量少改变设计师习惯的情形之下,撰写设定程序的使用方式。设计师绘图习惯分解步骤如下:
· 绘制一个参考点(建议参考平面图的放样点),以作为标示坐标之用。以剖面线为基准,旋转所有数字档案内容,使剖面线最后平行于X轴。
· 以剖面线为基准,垂直于XY轴延伸成一道平面。
· 以前一步骤的平面为基准,往剖面线的相反方向延伸成立方体,深度需覆盖剖面线的相反方向的所有模型。
· 将前一步骤的立方体与数字模型做差集(Solid difference),消去立方体中,所有和立方体中有交集的模型部分。
· 标出圆管中心线,用以标示坐标。
· 将前视图(Front view)使用“Make2D”投影在顶视图(Top view)。此图即为数字结构剖面图的图面部份。
· 如果习惯用AutoCAD标示坐标,则选取投影图(包括参考点),以“导出选取对象”指令,导出成AutoCAD文件格式。如果习惯用Rhino 5.0标示坐标,则不需汇出,直接标示。
· 清除图面及参考点以外的对象,将参考点设置在原点。将每根需标示的结构一一标示代号,以及坐标,完成后即完成数字结构剖面图的文字部分。下图以AutoCAD档案为例。
· 视需要输出成图文件,完成数字结构剖面图。
5.4. 程序撰写步骤之数字模型部分
程序撰写步骤分成两部分,第一部分为数字模型,第二部分为标注与文字。以下就第一部份说明。
5.4.1. 输入模型
在Rhino 6.0中,开启设计完成后的建筑结构模型。为了将模型汇入程序写作平台Grasshopper,在程序内建立“Geometry”(图标显示为“GEO”),再将所有的几何模型,选择“Set Multiple Geometries”,对应到程序内的“GEO”。
5.4.2. 输入剖面线以生产剖面
参考设计师的绘图习惯,模型输入之后,也要将剖面线输入进Grasshopper。程序之中。为了要将指定剖面线输入至程序之中,本研究的方式是透过「输入两点连成一线」的方式,输入两个“Point”(程序显示为Pt),程序用户只需要在剖面线上任选两点,选择“Set one Point”,对应到前述的两个Pt图示,就可以将剖面线输入至Grasshopper。由于剖面线有方向性,本研究设定依照剖面线方向,上面的Pt图标输入点的位置,要在下面的Pt图标输入点的位置的左侧。再输入“Line”(程序显示Ln),以建立程序内的剖面线。将两个Pt图标链接Ln图标左边的两个输入端,即成程序内的剖面线。接着将指定剖面线生成剖面。生成面的图标是Construct Plane (程序显示为Pl)。形成面的要素包括一点、跟指定的X轴和Y轴,选前述任一的Pt图示链接点的输入端,再以前述的Pl图示作为X轴。建立一个Z轴向量单位(程序显示为Z)为Y轴,即形成剖面。
5.4.3. 确认投影边界
确认投影范围前,要先确认所有要投影的对象的最大边界,程序内是用Bounding Box (程序显示为BBox)。
5.4.4. 确认投影面及投影范围
确认投影面及投影范围,程序内是用Plane Through Shape (程序显示为PxS)。
5.4.5. 消去非剖面线方向之所有对象
用程序指令Box Rectangle (程序显示RoxRec)将前一个步骤的投影范围生成矩形性,再以程序指令Solid Difference (程序显示SDiff)将矩形与模型做差集。
5.4.6. 将剖面线方向之所有对象投影在投影面上
用程序指令Project,将前一个步骤剩下的模型投影在步骤四的投影面上。
5.4.7. 给定投影原点,显示结构剖面图在顶视图上
顶视图同平面图方向,投影在顶视图上即等同显示平面图效果。用程序指令Point (Pt,本研究更改名称为OrintedPt),将前一个步骤的投影面上的所有线条,显示在顶视图上。
5.5. 程序撰写步骤之标注与文字部分
前一小节提到,程序撰写步骤分成两部分,第一部分为数字模型,第二部分为标注与文字。以下就第二部份说明。
5.5.1. 分别框选模型与剖面交集的部分(剖面线)
将剖面与模型作交集的部分(剖面线),以程序Bounding Box (程序显示为BBox)框选起来,再将这些范围以程序Rectangle (程序显示为Rec),形成一个个矩形。
5.5.2. 记录剖面线中心点坐标
将前一步骤的剖面线外框,透过指令Area找出每一个外框的中心点坐标,此坐标就是数字结构剖面图的结构坐标。
5.5.3. 剖面线编号
将第一步骤的剖面线外框,透过指令List Length (Lng)确认一共有几个剖到的结构,再将每一个结构透流程式Series给予编号,并显示在Rhino 6.0平台上。
5.5.4. 设置坐标显示位置及文字相关参数
在Rhino 6.0平台内新增一个点,此点为结构剖面图文字希望出现的参考点。新增一个程序Point (Pt)对应前述的点,再设定文字的大小,以及每一行文字之间的间距之后,坐标将会一一显示在Rhino 6.0平台上。
5.5.5. 数字结构剖面图输出(含图及文字)
以“Bake”指令将数字结构剖面图的图及文字一一具象化在Rhino 5.0平台中,选取结构剖面图的图及文字,在Rhino 5.0的「档案」内,找到「导出选取的对象」并点选之。再输入文件名以及存盘格式,即可得到数字结构剖面图。
6. 结论
因为台湾省数字建筑设计者必须多绘制数倍于非数字建筑图说的图量,进而导致数字建筑设计到建造的流程相较于非数字而言耗费大量人力及时间。为解决此问题,本研究以数字结构剖面图作为第一次实做,透流程式来自动衍生符合本研究新制定规范的数字结构剖面图。另外,本研究所撰写的数字结构剖面图程序,程序撰写的重点在于,将重复性的人力工作,交由计算机(程序)取代之。本研究希望此程序能够落实在实务上。所谓落实在实务上,就是指设计师能够独立绘制出符合新规范的建筑图说,将其应用在设计案上。更重要的是,程序本身必须要比原先人工绘制图面来的优越,包括了程序的易用性(Usability)、以及图面的实用性(Utility)。最后,数字结构剖面图程序无论在易用性还是实用性上皆优于非使用数字结构剖面图程序的绘图方式。不但内容正确无误,且容易操作。

Figure 1. The complete code of the building illustration automation program
图1. 建筑图说自动化程序的完整程序代码

Figure 2. Part of the detailed code of the building illustration automation program (Part 1)
图2. 建筑图说自动化程序的部分细节程序代码(第一部分)

Figure 3. Part of the detailed code of the building illustration automation program (Part 2)
图3. 建筑图说自动化程序的部分细节程序代码(第二部分)

Figure 4. Part of the detailed code of the building illustration automation program (Part 3)
图4. 建筑图说自动化程序的部分细节程序代码(第三部分)

Figure 5. The rest of the detailed code of the building illustration automation program (Part 4)
图5. 建筑图说自动化程序的剩余细节程序代码(第四部分)
本研究认为,实验的结果说明在数字媒材不只是停留在「数字化图说」,而是能够有机会将规范程序化,有效地发挥数字工具的运算能力。详细的程序内容如下,图1是完整的程序代码于计算机屏幕的截图。接下来的四张局部程序代码(图2~5),将由左至右详细呈现程序代码内容。