SlideShare a Scribd company logo
1 of 24
A.Penaloza Caicedo , A.F.Utama, B. Vincent , D. Nam, O. Oladunjoye [ Hyperbody, Faculty of Architecture, TUDelft ] MSC 3  FALL 2008 STOMATA MEMBRANE  Performative  Skin
The Stomata Membrane - Parametric Facade  - Interactive System A stomata is found in a leaf and stem epidermis and its used for internal to external exchange in terms of gas, and water vapor. The concept of the performative aspect of the stomata was an inspiration for our skin component. Stomata
Geometry - criteria The final geometry chosen was the fourth in the second behavior series. We were testing  a geometry that suits the qualities of a stomata . Performance - Adaptable - Recursive pattern - Interactive. The geometry was thought of in relation to a building skin - wall, floors, and roof. In the phase of sustainability, our geometry tackles the following questions Can the geometry store water? Could the geometry permit light? Could the geometry generate wind energy? How adaptable is it? Geometry Evolution
Rules & Notation
Option Explicit 'script written by Dayo Oladunjoye' 'hyperbody research group, tudelft. december 2008' 'pseudocode 'select a mesh 'draw parrelelogram on the mesh 'locate points 'addsurface Call SurfaceUV() Sub SurfaceUV()   Dim strSurface 'the surface   Dim uDiv,vDiv, intMax : intMax = 100 Dim arrUDomain, arrVDomain  Dim Ustep, Vstep Dim arrParameter Dim arrC1,arrC2,arrC3,arrC4 Dim arrMidpt Dim intWidth: intWidth = Rhino.getInteger("please select width",1) Dim intHeight: intHeight = Rhino.GetInteger("please select height",1) strSurface = Rhino.GetObject ("please pick surface",8, True) If IsNull(strSurface) Then Exit Sub uDiv = intwidth  'Rhino.GetInteger("please enter number in U-direction",10,1,intMax) If IsNull(uDiv) Then Exit Sub vDiv = intheight  'Rhino.GetInteger("please enter number in V-direction",10,1,intMax) If IsNull(vDiv) Then Exit Sub arrUDomain = Rhino.SurfaceDomain (strSurface, 0) arrVDomain = Rhino.SurfaceDomain (strSurface, 1) UStep = (arrUDomain(1)-arrUDomain(0)) / uDiv Vstep = (arrVDomain(1)-arrVDomain(0)) / vDiv Call Rhino.EnableRedraw (False) Component in line geometry mapping of line geometry Script Development
Call SurfaceUV() Sub SurfaceUV()   Dim strSurface 'the surface   Dim uDiv,vDiv, intMax : intMax = 100 Dim arrUDomain, arrVDomain  Dim Ustep, Vstep Dim arrParameter Dim arrC1,arrC2,arrC3,arrC4 Dim arrMidpt Dim intWidth: intWidth = Rhino.getInteger("please select width",1) Dim intHeight: intHeight = Rhino.GetInteger("please select height",1) strSurface = Rhino.GetObject ("please pick surface",8, True) If IsNull(strSurface) Then Exit Sub uDiv = intwidth  'Rhino.GetInteger("please enter number in U-direction",10,1,intMax) If IsNull(uDiv) Then Exit Sub vDiv = intheight  'Rhino.GetInteger("please enter number in V-direction",10,1,intMax) If IsNull(vDiv) Then Exit Sub arrUDomain = Rhino.SurfaceDomain (strSurface, 0) arrVDomain = Rhino.SurfaceDomain (strSurface, 1) UStep = (arrUDomain(1)-arrUDomain(0)) / uDiv Vstep = (arrVDomain(1)-arrVDomain(0)) / vDiv Call Rhino.EnableRedraw (False) Dim u,v Dim lum Dim strName Dim arrObjects For u = 0 To uDiv-1 For v = 0 To vDiv -1 arrParameter = Array(arrUDomain(0)+ UStep * u, arrVDomain(0)+ VStep * v) arrC1 = Rhino.EvaluateSurface(strSurface,arrParameter) arrParameter = Array(arrUDomain(0)+ UStep * (u+1), arrVDomain(0)+ VStep * v) arrC2 = Rhino.EvaluateSurface(strSurface,arrParameter) arrParameter = Array(arrUDomain(0)+ UStep * (u+1), arrVDomain(0)+ VStep * (v+1)) arrC3 = Rhino.EvaluateSurface(strSurface,arrParameter) arrParameter = Array(arrUDomain(0)+ UStep * u, arrVDomain(0)+ VStep * (v+1)) arrC4 = Rhino.EvaluateSurface(strSurface,arrParameter) '__________________________________________________________________ Overall Surface
Function SurfaceOne(strSurface,arrC1,arrC2,arrC3)     Dim arrPoints1, arrPoints11, arrPoints12    Dim addCurve1, addCurve11, addCurve12    Dim srfMain1, arrObjects1     arrPoints1 = Array(arrC1,arrC2,arrC3)   addCurve1 = Rhino.AddCurve(arrPoints1,4)   arrPoints11 = Array(arrC1,arrC2)   addCurve11 = Rhino.AddCurve(arrPoints11)   arrPoints12 = Array(arrC2,arrC3)   addCurve12 = Rhino.AddCurve(arrPoints12)   arrObjects1 = Array(addCurve1,addCurve11,addCurve12)   srfMain1 = Rhino.AddEdgeSrf(arrObjects1) End Function   Function SurfaceTwo(strSurface,arrC3,arrC4,arrC1)   Dim arrPoints2, arrPoints21, arrPoints22    Dim addCurve2, addCurve21, addCurve22    Dim srfMain2, arrObjects2     arrPoints2 = Array(arrC1,arrC4,arrC3)   addCurve2 = Rhino.AddCurve(arrPoints2,4)   arrPoints21 = Array(arrC3,arrC4)   addCurve21 = Rhino.AddCurve(arrPoints21)   arrPoints22 = Array(arrC1,arrC4)   addCurve22 = Rhino.AddCurve(arrPoints22)   arrObjects2 = Array(addCurve2,addCurve21,addCurve22)   srfMain2 = Rhino.AddEdgeSrf(arrObjects2) End Function Surface  division into u-v
Function SurfaceThree(strSurface,arrC1,arrC2,arrC3,arrPeakPtMid)   Dim arrPoints3, arrPoints31, arrPoints32, arrPoints33, arrPoints34    Dim addCurve3, addCurve31, addCurve32, addCurve33    Dim srfMain3, arrObjects3, arrDomain3       arrPoints3 = Array(arrC1,arrC2,arrC3)   addCurve3 = Rhino.AddCurve(arrPoints3,4)   arrDomain3 = Rhino.CurveDomain(addCurve3)   Dim addCurve3midpt: addCurve3midpt = Rhino.CurveMidPoint(addcurve3)     addCurve33 = Rhino.SplitCurve(addCurve3,0.5)     arrPoints31 =Array(arrC3,arrPeakPtMid)    addCurve31 = Rhino.AddCurve(arrPoints31)       arrPoints32 = Array(addCurve3midpt,arrPeakPtMid)   addCurve32 = Rhino.AddCurve(arrPoints32)     arrObjects3 = Array(addCurve33(1),addCurve31,addCurve32)   srfMain3 = Rhino.AddEdgeSrf(arrObjects3) End Function Function SurfaceSix(dblHeight,strSurface,arrPeakPtMidMin,arrC1,arrC4,arrC3)     Dim addCurve6, addCurve61, addCurve62, addCurve63   Dim arrPoints6, arrPoints61, arrPoints62   Dim srfMain6,arrObjects6, arrDomain6     arrPoints6 = Array(arrC1,arrC4,arrC3)   addCurve6 = Rhino.AddCurve(arrPoints6,4)   arrDomain6 = Rhino.CurveDomain(addCurve6)   Dim addCurve6midpt: addCurve6midpt = Rhino.CurveMidPoint(addCurve6)     addCurve63 = Rhino.SplitCurve(addCurve6,0.5)     arrPoints61 =Array(arrC1,arrPeakPtMidMin)    addCurve61 = Rhino.AddCurve(arrPoints61)       arrPoints62 = Array(addCurve6midpt,arrPeakPtMidMin)   addCurve62 = Rhino.AddCurve(arrPoints62)       arrObjects6 = Array(addCurve63(0),addCurve61,addCurve62)   srfMain6 = Rhino.AddEdgeSrf(arrObjects6)   End Function mapped geometry on surface division
Function surfaceFour(strSurface,arrPeakPtMid,arrC1,arrC4,arrC3)     Dim addCurve4, addCurve41, addCurve42, addCurve43   Dim arrPoints4, arrPoints41, arrPoints42   Dim srfMain4,arrObjects4, arrDomain4     arrPoints4 = Array(arrC1,arrC4,arrC3)   addCurve4 = Rhino.AddCurve(arrPoints4,4)   arrDomain4 = Rhino.CurveDomain(addCurve4)   Dim addCurve4midpt: addCurve4midpt = Rhino.CurveMidPoint(addCurve4)     addCurve43 = Rhino.SplitCurve(addCurve4,0.5)     arrPoints41 =Array(arrC3,arrPeakPtMid)    addCurve41 = Rhino.AddCurve(arrPoints41)       arrPoints42 = Array(addCurve4midpt,arrPeakPtMid)   addCurve42 = Rhino.AddCurve(arrPoints42)       arrObjects4 = Array(addCurve43(1),addCurve41,addCurve42)   srfMain4 = Rhino.AddEdgeSrf(arrObjects4) End Function Function SurfaceFive(dblHeight,strSurface,arrPeakPtMidMin,arrC1,arrC2,arrC3)     Dim arrPoints5, arrPoints51, arrPoints52, arrPoints53, arrPoints54    Dim addCurve5, addCurve51, addCurve52, addCurve53    Dim srfMain5, arrObjects5, arrDomain5       arrPoints5 = Array(arrC1,arrC2,arrC3)   addCurve5 = Rhino.AddCurve(arrPoints5,4)   arrDomain5 = Rhino.CurveDomain(addCurve5)   Dim addCurve5midpt: addCurve5midpt = Rhino.CurveMidPoint(addcurve5)     addCurve53 = Rhino.SplitCurve(addCurve5,0.5)     arrPoints51 =Array(arrC1,arrPeakPtMidMin)    addCurve51 = Rhino.AddCurve(arrPoints51)       arrPoints52 = Array(addCurve5midpt,arrPeakPtMidMin)   addCurve52 = Rhino.AddCurve(arrPoints52)     arrObjects5 = Array(addCurve53(0),addCurve51,addCurve52)   srfMain5 = Rhino.AddEdgeSrf(arrObjects5)   End Function mapped open geometry on surface division  Add surfaces on mapped open geometry
Parametric Logic
Parametric Skin
Parametric Bone + Skin
Components
Light – Energy -  Water
Construction
Technical Drawing
Location : Delft Latitude: +52.01 (52°00'36"N) Longitude: +4.36 (4°21'36"E)  Temperature (o C) Wind speed  (m/s) & direction Precipitation  ( mm) Sun Angle ,  duration, Clearness  Environmental Factor
Location : Delft Latitude: +52.01 (52°00'36"N) Longitude: +4.36 (4°21'36"E)  Environmental Factor
The  Components  location is determined by the elevation. The highest position  are light components  in order to maximize solar gain. The energy generating components are located in the slope to take advantage of water flow and wind, while the Water capturing components are located in the lowest part to catch the rain water. Components Location
Operational Diagram
Performative Skin Simulation
 
 
 

More Related Content

What's hot

Rate of change and tangent lines
Rate of change and tangent linesRate of change and tangent lines
Rate of change and tangent linesMrs. Ibtsam Youssef
 
Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...
Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...
Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...Databricks
 
Presentation 2
Presentation 2Presentation 2
Presentation 2massie19
 
computer graphics practicals
computer graphics practicalscomputer graphics practicals
computer graphics practicalsManoj Chauhan
 
Programming for Mechanical Engineers in EES
Programming for Mechanical Engineers in EESProgramming for Mechanical Engineers in EES
Programming for Mechanical Engineers in EESNaveed Rehman
 
Lista de exercícios 6 - Cálculo 1
Lista de exercícios 6 - Cálculo 1Lista de exercícios 6 - Cálculo 1
Lista de exercícios 6 - Cálculo 1Carlos Campani
 
型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへYusuke Matsushita
 
D3 svg & angular
D3 svg & angularD3 svg & angular
D3 svg & angular500Tech
 
17 tangent planes and total differentials
17 tangent planes and total differentials17 tangent planes and total differentials
17 tangent planes and total differentialsmath267
 
Performing Iterations in EES
Performing Iterations in EESPerforming Iterations in EES
Performing Iterations in EESNaveed Rehman
 
4 areas in polar coordinates
4 areas in polar coordinates4 areas in polar coordinates
4 areas in polar coordinatesmath267
 

What's hot (17)

Rate of change and tangent lines
Rate of change and tangent linesRate of change and tangent lines
Rate of change and tangent lines
 
Histogram
HistogramHistogram
Histogram
 
Myraytracer
MyraytracerMyraytracer
Myraytracer
 
Joclad 2010 d
Joclad 2010 dJoclad 2010 d
Joclad 2010 d
 
Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...
Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...
Building Machine Learning Algorithms on Apache Spark: Scaling Out and Up with...
 
Presentation 2
Presentation 2Presentation 2
Presentation 2
 
computer graphics practicals
computer graphics practicalscomputer graphics practicals
computer graphics practicals
 
3rd Semester (June-2014) Computer Science and Information Science Engineering...
3rd Semester (June-2014) Computer Science and Information Science Engineering...3rd Semester (June-2014) Computer Science and Information Science Engineering...
3rd Semester (June-2014) Computer Science and Information Science Engineering...
 
Sop and pos
Sop and posSop and pos
Sop and pos
 
Programming for Mechanical Engineers in EES
Programming for Mechanical Engineers in EESProgramming for Mechanical Engineers in EES
Programming for Mechanical Engineers in EES
 
Lista de exercícios 6 - Cálculo 1
Lista de exercícios 6 - Cálculo 1Lista de exercícios 6 - Cálculo 1
Lista de exercícios 6 - Cálculo 1
 
型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ
 
D3 svg & angular
D3 svg & angularD3 svg & angular
D3 svg & angular
 
17 tangent planes and total differentials
17 tangent planes and total differentials17 tangent planes and total differentials
17 tangent planes and total differentials
 
Performing Iterations in EES
Performing Iterations in EESPerforming Iterations in EES
Performing Iterations in EES
 
4 areas in polar coordinates
4 areas in polar coordinates4 areas in polar coordinates
4 areas in polar coordinates
 
diss_present
diss_presentdiss_present
diss_present
 

Similar to Stomata Membrane

programs on arrays.pdf
programs on arrays.pdfprograms on arrays.pdf
programs on arrays.pdfsowmya koneru
 
1sequences and sampling. Suppose we went to sample the x-axis from X.pdf
1sequences and sampling. Suppose we went to sample the x-axis from X.pdf1sequences and sampling. Suppose we went to sample the x-axis from X.pdf
1sequences and sampling. Suppose we went to sample the x-axis from X.pdfrushabhshah600
 
The Ring programming language version 1.9 book - Part 45 of 210
The Ring programming language version 1.9 book - Part 45 of 210The Ring programming language version 1.9 book - Part 45 of 210
The Ring programming language version 1.9 book - Part 45 of 210Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 42 of 202
The Ring programming language version 1.8 book - Part 42 of 202The Ring programming language version 1.8 book - Part 42 of 202
The Ring programming language version 1.8 book - Part 42 of 202Mahmoud Samir Fayed
 
Useful javascript
Useful javascriptUseful javascript
Useful javascriptLei Kang
 
R Programming: Numeric Functions In R
R Programming: Numeric Functions In RR Programming: Numeric Functions In R
R Programming: Numeric Functions In RRsquared Academy
 
Fp in scala with adts part 2
Fp in scala with adts part 2Fp in scala with adts part 2
Fp in scala with adts part 2Hang Zhao
 
Kotlinify Your Project!
Kotlinify Your Project!Kotlinify Your Project!
Kotlinify Your Project!OrNoyman
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1Little Tukta Lita
 
Idioms in swift 2016 05c
Idioms in swift 2016 05cIdioms in swift 2016 05c
Idioms in swift 2016 05cKaz Yoshikawa
 
โปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐานโปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐานknang
 
LET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERSLET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERSKavyaSharma65
 
Program 1 (Practicing an example of function using call by referenc.pdf
Program 1 (Practicing an example of function using call by referenc.pdfProgram 1 (Practicing an example of function using call by referenc.pdf
Program 1 (Practicing an example of function using call by referenc.pdfezhilvizhiyan
 
R/Finance 2009 Chicago
R/Finance 2009 ChicagoR/Finance 2009 Chicago
R/Finance 2009 Chicagogyollin
 

Similar to Stomata Membrane (20)

programs on arrays.pdf
programs on arrays.pdfprograms on arrays.pdf
programs on arrays.pdf
 
Vcs16
Vcs16Vcs16
Vcs16
 
1sequences and sampling. Suppose we went to sample the x-axis from X.pdf
1sequences and sampling. Suppose we went to sample the x-axis from X.pdf1sequences and sampling. Suppose we went to sample the x-axis from X.pdf
1sequences and sampling. Suppose we went to sample the x-axis from X.pdf
 
DataStructures notes
DataStructures notesDataStructures notes
DataStructures notes
 
The Ring programming language version 1.9 book - Part 45 of 210
The Ring programming language version 1.9 book - Part 45 of 210The Ring programming language version 1.9 book - Part 45 of 210
The Ring programming language version 1.9 book - Part 45 of 210
 
The Ring programming language version 1.8 book - Part 42 of 202
The Ring programming language version 1.8 book - Part 42 of 202The Ring programming language version 1.8 book - Part 42 of 202
The Ring programming language version 1.8 book - Part 42 of 202
 
Eta
EtaEta
Eta
 
Useful javascript
Useful javascriptUseful javascript
Useful javascript
 
R Programming: Numeric Functions In R
R Programming: Numeric Functions In RR Programming: Numeric Functions In R
R Programming: Numeric Functions In R
 
Fp in scala with adts part 2
Fp in scala with adts part 2Fp in scala with adts part 2
Fp in scala with adts part 2
 
Kotlinify Your Project!
Kotlinify Your Project!Kotlinify Your Project!
Kotlinify Your Project!
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
 
Idioms in swift 2016 05c
Idioms in swift 2016 05cIdioms in swift 2016 05c
Idioms in swift 2016 05c
 
array
arrayarray
array
 
โปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐานโปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐาน
 
LET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERSLET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERS
 
Groovy
GroovyGroovy
Groovy
 
Program 1 (Practicing an example of function using call by referenc.pdf
Program 1 (Practicing an example of function using call by referenc.pdfProgram 1 (Practicing an example of function using call by referenc.pdf
Program 1 (Practicing an example of function using call by referenc.pdf
 
R/Finance 2009 Chicago
R/Finance 2009 ChicagoR/Finance 2009 Chicago
R/Finance 2009 Chicago
 
Cpl
CplCpl
Cpl
 

Stomata Membrane

  • 1. A.Penaloza Caicedo , A.F.Utama, B. Vincent , D. Nam, O. Oladunjoye [ Hyperbody, Faculty of Architecture, TUDelft ] MSC 3 FALL 2008 STOMATA MEMBRANE Performative Skin
  • 2. The Stomata Membrane - Parametric Facade - Interactive System A stomata is found in a leaf and stem epidermis and its used for internal to external exchange in terms of gas, and water vapor. The concept of the performative aspect of the stomata was an inspiration for our skin component. Stomata
  • 3. Geometry - criteria The final geometry chosen was the fourth in the second behavior series. We were testing a geometry that suits the qualities of a stomata . Performance - Adaptable - Recursive pattern - Interactive. The geometry was thought of in relation to a building skin - wall, floors, and roof. In the phase of sustainability, our geometry tackles the following questions Can the geometry store water? Could the geometry permit light? Could the geometry generate wind energy? How adaptable is it? Geometry Evolution
  • 5. Option Explicit 'script written by Dayo Oladunjoye' 'hyperbody research group, tudelft. december 2008' 'pseudocode 'select a mesh 'draw parrelelogram on the mesh 'locate points 'addsurface Call SurfaceUV() Sub SurfaceUV() Dim strSurface 'the surface Dim uDiv,vDiv, intMax : intMax = 100 Dim arrUDomain, arrVDomain Dim Ustep, Vstep Dim arrParameter Dim arrC1,arrC2,arrC3,arrC4 Dim arrMidpt Dim intWidth: intWidth = Rhino.getInteger("please select width",1) Dim intHeight: intHeight = Rhino.GetInteger("please select height",1) strSurface = Rhino.GetObject ("please pick surface",8, True) If IsNull(strSurface) Then Exit Sub uDiv = intwidth 'Rhino.GetInteger("please enter number in U-direction",10,1,intMax) If IsNull(uDiv) Then Exit Sub vDiv = intheight 'Rhino.GetInteger("please enter number in V-direction",10,1,intMax) If IsNull(vDiv) Then Exit Sub arrUDomain = Rhino.SurfaceDomain (strSurface, 0) arrVDomain = Rhino.SurfaceDomain (strSurface, 1) UStep = (arrUDomain(1)-arrUDomain(0)) / uDiv Vstep = (arrVDomain(1)-arrVDomain(0)) / vDiv Call Rhino.EnableRedraw (False) Component in line geometry mapping of line geometry Script Development
  • 6. Call SurfaceUV() Sub SurfaceUV() Dim strSurface 'the surface Dim uDiv,vDiv, intMax : intMax = 100 Dim arrUDomain, arrVDomain Dim Ustep, Vstep Dim arrParameter Dim arrC1,arrC2,arrC3,arrC4 Dim arrMidpt Dim intWidth: intWidth = Rhino.getInteger("please select width",1) Dim intHeight: intHeight = Rhino.GetInteger("please select height",1) strSurface = Rhino.GetObject ("please pick surface",8, True) If IsNull(strSurface) Then Exit Sub uDiv = intwidth 'Rhino.GetInteger("please enter number in U-direction",10,1,intMax) If IsNull(uDiv) Then Exit Sub vDiv = intheight 'Rhino.GetInteger("please enter number in V-direction",10,1,intMax) If IsNull(vDiv) Then Exit Sub arrUDomain = Rhino.SurfaceDomain (strSurface, 0) arrVDomain = Rhino.SurfaceDomain (strSurface, 1) UStep = (arrUDomain(1)-arrUDomain(0)) / uDiv Vstep = (arrVDomain(1)-arrVDomain(0)) / vDiv Call Rhino.EnableRedraw (False) Dim u,v Dim lum Dim strName Dim arrObjects For u = 0 To uDiv-1 For v = 0 To vDiv -1 arrParameter = Array(arrUDomain(0)+ UStep * u, arrVDomain(0)+ VStep * v) arrC1 = Rhino.EvaluateSurface(strSurface,arrParameter) arrParameter = Array(arrUDomain(0)+ UStep * (u+1), arrVDomain(0)+ VStep * v) arrC2 = Rhino.EvaluateSurface(strSurface,arrParameter) arrParameter = Array(arrUDomain(0)+ UStep * (u+1), arrVDomain(0)+ VStep * (v+1)) arrC3 = Rhino.EvaluateSurface(strSurface,arrParameter) arrParameter = Array(arrUDomain(0)+ UStep * u, arrVDomain(0)+ VStep * (v+1)) arrC4 = Rhino.EvaluateSurface(strSurface,arrParameter) '__________________________________________________________________ Overall Surface
  • 7. Function SurfaceOne(strSurface,arrC1,arrC2,arrC3) Dim arrPoints1, arrPoints11, arrPoints12 Dim addCurve1, addCurve11, addCurve12 Dim srfMain1, arrObjects1 arrPoints1 = Array(arrC1,arrC2,arrC3) addCurve1 = Rhino.AddCurve(arrPoints1,4) arrPoints11 = Array(arrC1,arrC2) addCurve11 = Rhino.AddCurve(arrPoints11) arrPoints12 = Array(arrC2,arrC3) addCurve12 = Rhino.AddCurve(arrPoints12) arrObjects1 = Array(addCurve1,addCurve11,addCurve12) srfMain1 = Rhino.AddEdgeSrf(arrObjects1) End Function Function SurfaceTwo(strSurface,arrC3,arrC4,arrC1) Dim arrPoints2, arrPoints21, arrPoints22 Dim addCurve2, addCurve21, addCurve22 Dim srfMain2, arrObjects2 arrPoints2 = Array(arrC1,arrC4,arrC3) addCurve2 = Rhino.AddCurve(arrPoints2,4) arrPoints21 = Array(arrC3,arrC4) addCurve21 = Rhino.AddCurve(arrPoints21) arrPoints22 = Array(arrC1,arrC4) addCurve22 = Rhino.AddCurve(arrPoints22) arrObjects2 = Array(addCurve2,addCurve21,addCurve22) srfMain2 = Rhino.AddEdgeSrf(arrObjects2) End Function Surface division into u-v
  • 8. Function SurfaceThree(strSurface,arrC1,arrC2,arrC3,arrPeakPtMid) Dim arrPoints3, arrPoints31, arrPoints32, arrPoints33, arrPoints34 Dim addCurve3, addCurve31, addCurve32, addCurve33 Dim srfMain3, arrObjects3, arrDomain3 arrPoints3 = Array(arrC1,arrC2,arrC3) addCurve3 = Rhino.AddCurve(arrPoints3,4) arrDomain3 = Rhino.CurveDomain(addCurve3) Dim addCurve3midpt: addCurve3midpt = Rhino.CurveMidPoint(addcurve3) addCurve33 = Rhino.SplitCurve(addCurve3,0.5) arrPoints31 =Array(arrC3,arrPeakPtMid) addCurve31 = Rhino.AddCurve(arrPoints31) arrPoints32 = Array(addCurve3midpt,arrPeakPtMid) addCurve32 = Rhino.AddCurve(arrPoints32) arrObjects3 = Array(addCurve33(1),addCurve31,addCurve32) srfMain3 = Rhino.AddEdgeSrf(arrObjects3) End Function Function SurfaceSix(dblHeight,strSurface,arrPeakPtMidMin,arrC1,arrC4,arrC3) Dim addCurve6, addCurve61, addCurve62, addCurve63 Dim arrPoints6, arrPoints61, arrPoints62 Dim srfMain6,arrObjects6, arrDomain6 arrPoints6 = Array(arrC1,arrC4,arrC3) addCurve6 = Rhino.AddCurve(arrPoints6,4) arrDomain6 = Rhino.CurveDomain(addCurve6) Dim addCurve6midpt: addCurve6midpt = Rhino.CurveMidPoint(addCurve6) addCurve63 = Rhino.SplitCurve(addCurve6,0.5) arrPoints61 =Array(arrC1,arrPeakPtMidMin) addCurve61 = Rhino.AddCurve(arrPoints61) arrPoints62 = Array(addCurve6midpt,arrPeakPtMidMin) addCurve62 = Rhino.AddCurve(arrPoints62) arrObjects6 = Array(addCurve63(0),addCurve61,addCurve62) srfMain6 = Rhino.AddEdgeSrf(arrObjects6) End Function mapped geometry on surface division
  • 9. Function surfaceFour(strSurface,arrPeakPtMid,arrC1,arrC4,arrC3) Dim addCurve4, addCurve41, addCurve42, addCurve43 Dim arrPoints4, arrPoints41, arrPoints42 Dim srfMain4,arrObjects4, arrDomain4 arrPoints4 = Array(arrC1,arrC4,arrC3) addCurve4 = Rhino.AddCurve(arrPoints4,4) arrDomain4 = Rhino.CurveDomain(addCurve4) Dim addCurve4midpt: addCurve4midpt = Rhino.CurveMidPoint(addCurve4) addCurve43 = Rhino.SplitCurve(addCurve4,0.5) arrPoints41 =Array(arrC3,arrPeakPtMid) addCurve41 = Rhino.AddCurve(arrPoints41) arrPoints42 = Array(addCurve4midpt,arrPeakPtMid) addCurve42 = Rhino.AddCurve(arrPoints42) arrObjects4 = Array(addCurve43(1),addCurve41,addCurve42) srfMain4 = Rhino.AddEdgeSrf(arrObjects4) End Function Function SurfaceFive(dblHeight,strSurface,arrPeakPtMidMin,arrC1,arrC2,arrC3) Dim arrPoints5, arrPoints51, arrPoints52, arrPoints53, arrPoints54 Dim addCurve5, addCurve51, addCurve52, addCurve53 Dim srfMain5, arrObjects5, arrDomain5 arrPoints5 = Array(arrC1,arrC2,arrC3) addCurve5 = Rhino.AddCurve(arrPoints5,4) arrDomain5 = Rhino.CurveDomain(addCurve5) Dim addCurve5midpt: addCurve5midpt = Rhino.CurveMidPoint(addcurve5) addCurve53 = Rhino.SplitCurve(addCurve5,0.5) arrPoints51 =Array(arrC1,arrPeakPtMidMin) addCurve51 = Rhino.AddCurve(arrPoints51) arrPoints52 = Array(addCurve5midpt,arrPeakPtMidMin) addCurve52 = Rhino.AddCurve(arrPoints52) arrObjects5 = Array(addCurve53(0),addCurve51,addCurve52) srfMain5 = Rhino.AddEdgeSrf(arrObjects5) End Function mapped open geometry on surface division Add surfaces on mapped open geometry
  • 14. Light – Energy - Water
  • 17. Location : Delft Latitude: +52.01 (52°00'36"N) Longitude: +4.36 (4°21'36"E) Temperature (o C) Wind speed (m/s) & direction Precipitation ( mm) Sun Angle , duration, Clearness Environmental Factor
  • 18. Location : Delft Latitude: +52.01 (52°00'36"N) Longitude: +4.36 (4°21'36"E) Environmental Factor
  • 19. The Components location is determined by the elevation. The highest position are light components in order to maximize solar gain. The energy generating components are located in the slope to take advantage of water flow and wind, while the Water capturing components are located in the lowest part to catch the rain water. Components Location
  • 22.  
  • 23.  
  • 24.