Representation + Landscape
Landscape Architecture Program Graduate School of Design Harvard University
Spring 2020
C o r e I V D a y 0 3 : Tu t o r i a l 0 3 / P a r t 0 2
2
Core IV Pre-term
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
CONTENTS
in tro duction
page 0 4
scrip t overview
page 0 6
heigh tfield
page 0 8
image samp ler in gh
page 1 0
su facefromp oin ts
page 1 8
delau n ay mesh
page 2 0
delau n ay mesh to brep
page 2 2
co n to u r
page 2 4
co n to u r to mesh
page 2 6
mesh to smoo th su rfa ce
page 2 8
p rojecting cu rves to landf orm
page 3 0
movin g massin g up to landf orm
page 3 2
3
4
Core IV Pre-term
Catalogue of Yard Variations- Chelsea Kilburn, Andy Lee,
Catalogue of Data Center and Planting Variations - Dana
Kari Roynesdal
Hills, Andreea Vasile-Hoxha
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
5
in t ro d u c t i o n This part of the workshop will use the cities/towns of where you are currently located, in conjunction with reimagining historical case studies to define the city as a set of multiple ecologies that have specific material flows, cycles, and metabolic states. In turn, these assemblages indicate how human and non-human actors inhabit the city. Today’s instruction aims to construct code for your urban assemblage. The workflow aims to demonstrate the processes for the production of an Axo drawing demonstrating assemblage variation. Part two of the instruction will focus on altering and reconfiguring the assemblage according to land formations changes. This document captures: •
Techniques for constructing landform
•
Workflow for projecting built mass and infrastructural lines on an undulating surface
Landform Adaptations- Lamia Almuhanna, Edyth Jostol, Sam Gilbert
6
Core IV Pre-term
s c ri p t ove r view
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
7
8
Core IV Pre-term
H e i gh t f i e l d
1. In Rhino, use command Heightfield to import an image. This can be a DEM, or any image of your choice. 2. Specify the number of sample points, and maximum height. 3. You have the option to create a mesh or a surface with this tool.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
9
10
Core IV Pre-term
I m a ge S a m p l er in G H
4. We can do a similar operation using Image Sampler tool in Grasshopper.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
11
12
Core IV Pre-term
I m a ge S a m p l er in G H
5. Select a boundary curve for your landform. Use DivideSurface component to create a grid of points that approximate the surface. Specify the U and V Count.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
13
14
Core IV Pre-term
I m a ge S a m p l er in G H
6. Bring up the Image Sampler component. Double clicking the component will display a dialogue box. 7. Set the file path to your image. 8. Set the X Domain and Y Domain to match the dimensions of the boundary curve. In this case, my boundary curve is 500m x 500m, so the X and Y Doimain is set at 0 to 500, respectively. 9. Connect output Parameters from Divide Surface to the input node of the Image Sampler component.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
15
16
Core IV Pre-term
I m a ge S a m p l er in G H
10. Connect a panel to the Image Sampler component’s output, to see the list of points that are moved in Z-direction, using the image as an approximate height value. 11. We’re going to use RemapNumbers component to control the range of these values generated from Image Sampler component. 12. Construct a domain using Construct Domain component, set the bottom and top value. Connect the output to input Target of RemapNumbers component. 13. Using Bounds component, extract the domain of the list of numbers generated from Image Sampler. Connect the output to input Source of RemapNumbers component. 14. Connect the output of Image Sampler to input Value of RemapNumbers component. 15. Use the output of RemapNumbers component as a Factor for Unit Z component. 16. Using Move component, move the surface division points (output Points of DivideSurface component).
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
17
18
Core IV Pre-term
S u r f a c e f r o mPo in ts
17. SurfacefromPoints component will generate a surface from the now moved points. You will need to specify the U Count input (number of rows).
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
19
20
Core IV Pre-term
De l a u n ay M e sh
18. Alternatively, you can generate a Mesh using Delaunay Mesh component.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
21
22
Core IV Pre-term
De l a u n ay M e sh to Brep
19. If you would like to turn the mesh into a series of triangular surfaces, bring up Deconstruct Mesh component first. 20. Connect output Faces of Deconstruct Mesh to Deconstruct Face component. 21. Use the output (it will give you four corners by default, but we only need three in this case. Use Corner A, B, and C as index to select Vertices output from Deconstruct Mesh component, using List Item component. 22. Graft each output of the List Item component, then connect all three of them to an empty Point component. 23. Using Polyline component (make sure input Closed is set to True) and Boundary Surfaces component, you can generate individual triangular surfaces from the Mesh.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
23
24
Core IV Pre-term
C on t o u r
24. Contour component is very simple to use. The Shape input can accept either Brep or Mesh. The Distance input specifies the contour distance.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
25
26
Core IV Pre-term
C on t o u r t o M esh
25. It may be easiest to edit your landform by manipulating the contour curves. We will go through the steps to generate a mesh from the contour curves. 26. Use the Divide Distance component to create points at a regular interval along your contour curves. Additionally, you can use EndPoints component to make sure that you have points at the start and end of each contour curves. 27. Combine the outputs from Divide Distance and EndPoints components into a flattened list of points, and run the Delaunay Mesh component to generate a continuous mesh.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
27
28
Core IV Pre-term
M e s h t o S mo o th Surface
28. In order to generate a Brep (Surface in Rhino), we will set up a base rectangular grid underneath the mesh generated from Delaunay Mesh component. 29. It is recommended to scale the rectangular boundary by some percentage, or offset by a small margin, so that the points at the edges and corners would not return null. 30. Divide Surface by desired U & V Count. 31. Use Mesh | Ray component to project the flat rectangular grid of points on to the mesh. 32. Use SurfacefromPoints component to creat a Brep surface from projected points.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
29
30
Core IV Pre-term
P r o j e c t i n g Cu rves to Landfo rm
33. We are going to project the parcel boundaries onto this new landform surface, from a flat XY-plane. 34. Extrude the parcels using Extrude component, and specify the Factor of Unit Z component. 35. Use Brep | Brep component to find the intersection between the extrusions and the landform Brep.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
31
32
Core IV Pre-term
M ovi n g M a s sing U p to Landfo rm
36. In order to move the massing up to the newly created landform from a flat XY-plane, first get the intersections between the massing and XY-plane, using Brep | Plane component. 37. Explode component will give you the points along this curve, organized under discrete branches related to each massing. 38. Use ProjectPoints component to project the points up to the landform Brep (surface). 39. Calculate the distance between the points on XY-Plane and the projected points using Distance component. 40. Use Sort List component, set the Keys and Value to the output of Distance component. This will sort the list of distances from smallest to largest. The first item (List Item with Index 0) will be the shortest distance. We will use this distance as a factor to move the massing up in Z-direction. 41. Use Move component, connect the original massing to Geometry input, and connect Unit Z factored by output of step 40 to input Motion.
Tu t o r i a l 0 6 : L a n d f o r m M a n i p u l a t i o n
33