![]() ![]() ![]() |
![]() |
首页 | Master | 作品 | 招聘 | 招标 | 动态 | 热帖 | 杂志 | 帮助 | 搜索 | 注册 | 登录 | Blog 积分 简历 |
» ABBS 论坛 » 纯粹建筑论坛
» 理论
动态 | 热帖 | 招聘 | 杂志 |
|
![]() |
![]() ![]() ![]() |
Re:Foral的Blog----陆续更新 [精华] |
fora1
![]() ![]() ![]() 发贴: 217 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Case Study 2.3 所谓的Parametric Urbanism ////////Big Time!! Sketch up parametric design!!/////// Example 2.3.3(Parametric Zoning by Columbia(哥伦比亚大学) GSAPP)(这个估计需要连载三次) 先暂时离开一下AA和维也纳 从2006年开始,在GSAPP开设了一个叫做Parametric Zoning的课程,基本是针对城市设计的学生,主要是在教授3D visualization techniques in relation to urban planning,课程从最基本的geometric components开始,让学生们创造空间系统。这个课程以New York City 的zoning(区域)标准作为geometric investigation的基本。将建筑限高,退让标准,sky exposure planes, FAR等一系列建筑规范定义为parameters,让学生来创造3D system. ![]() ![]() Rob Viola, GSAPP Fall 2007学生作品,将光照,影子,建筑高度,用户的能源需求作为parametric,然后来生成一个街道。 ![]() 这里有一篇NewYorkTimes关于GreenZoning的报道,大家有兴趣可以看一下, http://www.nytimes.com/2008/04/07/science/earth/07redwood.html?ref=us 还有一篇“Parametric Zoning 宣言” ”The existing practice of city-wide zoning (originated in New York City in 1916 and exported around the world (witness the tower-on-a-base typology even in Dubai)) attempts to define architectural potential as a set of static parts - modular components. Rather than satisfying a range of possible conditions, the collection of zones repeatedly fails to produce the effects prioritized, even as new zones are generated. The ubiquity of the "special" portends this failure as zones lose any universal ability and become merely a lowest common denominator from which specialization can occur. This ongoing project seeks to design zoning mechanisms capable of generating all prioritized effects. Success is satisfied when the zone is capable of generating its own specificity. To accomplish this, the strategy of parametrics is deployed. The field of possibility is dynamic - the logic of the system develops recursively. Feedback loops and corruption become part of the system, not foreign to it. “ 最让我惊讶的是,这个课程中使用的parametric软件竟然是SketchUp(天哪!!!),并且连接 Microsoft Excel,来对数据进行更有效的管理。 似乎从SketchUp Pro 6开始,SketchUp中就引入了叫做SketchUp Ruby的parametric系统,Ruby Scripting。我整理了一下Ruby的使用方法(我本身对于SketchUp很生疏了,如果大家使用的有问题,回馈给我信息),结合Parametric Zoning的课程,做了三个关于Ruby的教程,希望大家多尝试 首先,以下是几个我的教程需要的Ruby Script的下栽连接 1.Parametric http://download.sketchup.com/downloads/downloads/rubyscripts/parametric.zip 2.Shapes http://download.sketchup.com/downloads/downloads/rubyscripts/shapes.zip 3.Mesh_Additions http://download.sketchup.com/downloads/downloads/rubyscripts/mesh_additions.zip 4.windows http://download.sketchup.com/downloads/downloads/rubyscripts/windows.zip 5.Model_Report http://www.crai.archi.fr/rubylibrarydepot/ruby/model_report.rb 6.IncRandomPushPull http://www.crai.archi.fr/rubylibrarydepot/ruby/IncRandomPushPull.rb 7.Grow http://www.crai.archi.fr/RubyLibraryDepot/Ruby/Grow.rb 8.ExtrudePath http://www.crai.archi.fr/RubyLibraryDepot/Ruby/EM/ExtrudeAlongPath.rb 下栽之后,解压缩,然后将 .rb 文件保存在C:\Program Files\Google\Google SketchUp 6\Plugins文件夹下。打开你的SU之后,这些Script所定义的新的功能就会自动出现在你的工具栏的某个地方(具体出现在那里,是有Script的编写者定义的,不要着急,我的教程里会作示范) 作完上面的步骤之后,就开始我们的第一个SU Parametric模型的构建 如果你正确的做了上面的步骤,当你打开SU后, Draw下面就会出现一个新的功能--Shapes,从Shapes里面选择Box ![]() 然后输入尺寸 Width 50’ Depth 50’ Height 10’ ![]() 这个box看似寻常,但其实内部是有parametric在控制的 然后做一个四棱柱(Draw -> Shapes -> Prism),Radius 35’ and Height 10’ 将四棱柱移动远离box ![]() 然后将两个物体都复制两次 ![]() 将复制后的物体 Explode,但是不要Explode最初的两个物体 ![]() 试着调整一下第一对copy的物体, - 移动top face up and down,旋转 - 选择一个顶点,然后移动它 - 选择一个边线移动它 - 选择一个边面移动它 注意你模型中的两种物体,对于你相同的操作,反映不同(这是因为定义它们自身的ruby script不同,我在最后会讲这一点) ![]() 对于第二对复制得到的物体,选择顶面,然后向上复制5次 ![]() 现在我们就有了两个六层的building, 接下来使用长方形命令为这两个六层的房子,加表皮 ![]() 选择一下表皮的长方形,你会发现,左边的长方形会自动和楼板选择在一起,而右边的不会 ![]() 接下来基于刚才两个box对于相同命令不同的反映,试着改变这两个六层楼,看看楼的表皮会有什么样不同的反映 ![]() 搭拉,这就是我们的第一个parametric SU model !! 好现在让我们来分析一下Ruby Script是怎么影响我们的模型的,如果用windows的写字板打开叫做Shape的Ruby Script, 找到其中关于Box的定义,我们会看到下面的东西 class Box < Parametric def create_entities(data, container) w = data["w"].to_l d = data["d"].to_l h = data["h"].to_l pts = [[0,0,0], [w,0,0], [w,d,0], [0,d,0], [0,0,0]] base = container.add_face pts h = -h if base.normal.dot(Z_AXIS) < 0.0 base.pushpull h end def default_parameters defaults = {"w", 4.feet, "d", 4.feet, "h", 4.feet} defaults end def translate_key(key) prompt = key case( key ) when "w" prompt = "Width" when "h" prompt = "Height" when "d" prompt = "Depth" end prompt end end 其中 “ pts = [[0,0,0], [w,0,0], [w,d,0], [0,d,0], [0,0,0]] base = container.add_face pts h = -h if base.normal.dot(Z_AXIS) < 0.0 base.pushpull h” 这段话就定义了每当我们改变一个顶点的位置,自动的就会分割那个顶点所影响的面为两个三角形 其中关于棱柱体的定义 class Prism < Parametric def create_entities(data, container) r = data["r"].to_l h = data["h"].to_l n = data["n"] circle = container.add_ngon ORIGIN, Z_AXIS, r, n base = container.add_face circle h = -h if base.normal.dot(Z_AXIS) < 0.0 base.pushpull h end def default_parameters defaults = {"r", 2.feet, "h", 4.feet, "n", 6} defaults end def translate_key(key) prompt = key case( key ) when "r" prompt = "Radius" when "h" prompt = "Height" when "n" prompt = "Number of Sides" end prompt end def validate_parameters(data) ok = true if( data["n"] < 3 ) UI.messagebox "At least 3 sides required" ok = false end ok end end 这个几何关系 “ circle = container.add_ngon ORIGIN, Z_AXIS, r, n base = container.add_face circle h = -h if base.normal.dot(Z_AXIS) < 0.0 base.pushpull h” 确定了顶面和底面无论你怎么操作,一定是正方形 接下来的定义 def validate_parameters(data) ok = true if( data["n"] < 3 ) UI.messagebox "At least 3 sides required" ok = false end ok 确保了一个物体里最少会有三个面,这就是为什么“选择一下表皮的长方形,你会发现,左边的长方形会自动和楼板选择在一起,而右边的不会” 好的,今天到此为止,下次会讲如何将Microsoft Excel和SU做连接,来input,output数据 ps: 大家也可以试一下名为grow的script ![]()
fora1 edited on 2008-12-11 13:29
|
![]() ![]() ![]() |
|
![]() |
![]() |