The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Parametric Design for Landscape Architects

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by EGO Education - LandBooks, 2023-03-19 05:36:30

Parametric Design for Landscape Architects

Parametric Design for Landscape Architects

02.04.05:Remapping distance values and creation of domains for positive and negative elevation values Figure 2.4.7 Operations utilizing distance values to derive domain value and remapping to new domain After creating this domain, the numbers are remapped (using the same process as presented in the previous example using the Remap Numbers component) to ft in a domain ranging from 0.0 to 1.0 or 1.0 to 0.0.This operation is the basis for setting the elevation extents of the attractor manipulation, where 0.0 to 1.0 is going to produce a debossed (depressed) landform, and 1.0 to 0.0 an embossed (mound) landform. _To create the ability to switch between domains on demand, use the Stream Filter component. Connect the “0” = Debossed “1” = Embossed” Number Slider to the “G” input on the Stream Filter. Connect Panels to the “0” and “1” inputs, with the “0” having the domain 0.0 to 1.0 and “1” having 1.0 to 0.0. 02.04.06: Moving mesh vertices based on multiplying domain by input elevation value Figure 2.4.8 Translating mesh vertices from original position in z-axis with remapped distance values The created domains can be toggled between one another through the changing of the “‘0’ = Debossed ‘1’ = Embossed” Number Slider to either 1 or 0. The chosen domain, based on if a debossed or embossed is desired, will be multiplied by the integer held in the “Landform Height/ Depth” Number Slider.This will output a list of values that have a lower limit of 0.0 and an upper limit matching the integer from the Number 38 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


Slider to control the height or depth of the output landform. _Connect mesh vertices being output from the Deconstruct Mesh component to the “G” input on a Move component. _“Flatten” the “T” input on the Move component to create only one data list and connect the resultant values from the Multiplication component. 02.04.07: Constructing a mesh from the moved vertices A mesh can now be constructed from the moved vertices. _Place a Construct Mesh component on the canvas and connect the output mesh vertices “V” from Deconstruct Mesh into the input “V” on the Construct Mesh. _Next, connect the output mesh faces from the Deconstruct Mesh into the “F” input on the Construct Mesh component. This operation will result in the output of a mesh based on the chosen height/depth and slope/ spread. The output mesh is represented with contour lines made from the same contouring method presented in the previous script. Figure 2.4.9 Reconstructing mesh from moved points/vertices and original faces Figure 2.4.10 Resultant manipulated mesh previewed in model space 02.04.08: Returning the resultant mesh to the position of the original input surface Figure 2.4.11 Constructed operations allowing for output mesh corners to be located at original positions of the input surface in case of depression manipulation CHAPTER 02: LANDFORM CREATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 39


When switching between 0 and 1 on the “Landform Height/Depth” Number Slider, it is seen that the location of the output mesh/landform is at a different elevation.When 0 is selected on the Number Slider, the domain for creating the elevation is set to 0.0 to 1.0, resulting in the points in the point grid having the lower limit of the z values, starting at 0.0 and gradually moving the remaining point collection up vertically to the set landform height/ depth. This leaves the reconstructed mesh at a higher Z location than the original input surface.To avoid this movement of the output geometry and bypass having to move the mesh back to the original coordinate in Rhino, an additional algorithm can be provided to the script to automate the repositioning as the type of landform is toggled between 1 and 0 Figure 2.4.12 Output iterations of mound versus depression typology on the “Landform Height/Depth”Number Slider. _Connect the output of the “Landform Height/ Depth” Number Slider to a Negative component. _Place a Stream Filter component in the fle and connect the output of the Negative component to the “0” input on the Stream Filter. Next, use a Panel to set an integer of 0 and connect to the “1” input on the Stream Filter. Plug in the output of the “‘0’ = Debossed ‘1’ = Embossed” Number Slider into the “G” input of the Stream Filter. _Next, connect the output of the Stream Filter into a Unit Z component. _Place a Move component on the canvas and connect the Unit Z to the “T” input. Following this, attach the output of the Construct Mesh into the “G” input on the Move. 02.04.09: Using curves as attractors for translating the mesh vertices Like in the last workfow example, the attractor point(s) can be substituted for with a curve as the basis for the translation of the points. _Draw a curve that intersects with the boundary of the input surface and reference in the curve to Grasshopper through a Curve component. “Flatten” the Curve component. _Connect the Curve to the“C” input on a Divide Curve component. Use a Number Slider to control the number of point divisions by attaching the output integer to the “N” input on Divide Curve. Figure 2.4.13 Output representation using curves as attractors _“Flatten”the“P” output of the Divide Curve. 40 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


_Input the resultant point collection from the Divide Curve component into the original Closest Point component “P” input. Navigate to the Rhino viewport. The resultant mesh will be based on the form and location of the line. A strength in this script using curve attractors is that, through turning on the curve’s Control Points in Rhino and moving them in the z-axis, a tapering effect of ridge or valley landform will result. 02.04.10: Creating mesh vertices translation based on surface attractors As in the last step, the addition of a few components as a replacement of the original input point attractor can be utilized to translate the mesh vertices through a different geometric input.A surface can be input to be used as the attracting geometry. _Model a planar surface in Rhino that intersects and lies within the boundary of the base surface to manipulate. Set the attractor surface in Grasshopper using a Surface to “Set one Surface”. “ Flatten” the attractor surface geometry Surface component. _Replace the existing Closest Point component with a Surface Closest Point component. “Graft” the “P” input on the Surface Closest Point component and connect the output mesh vertices from the Deconstruct Mesh to the “P” input. _Connect the attractor Surface component output to the Surface Closest Point “S” input.The Surface Closest Point component gathers all of the mesh vertices from the original base surface that fall within the boundary of the attractor surface.These points are used as the attractor points, similar to the original operation of the script. Figure 2.4.14 Previewed output manipulated mesh landforms resulting from input surfaces as attractors Figure 2.4.15 Completed script presenting optional component structures for curve and surface attraction CHAPTER 02: LANDFORM CREATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 41


_Be sure to connect the output distance values, “D”, of the Surface Closest Point to the “B” input of the existing Subtraction component. Similar to manipulating the curve geometries by use of their Control Points, the input planar attractor surface can be rotated in Rhino to produce a different resultant landform scenario. A great strength of using this script is that the output mesh can be input into another copy of the script in the fle that can allow for the continued manipulation of the mesh.All three attractor geometries and multiples of each geometry type can be used to create dynamic landscape conditions in terms of topographic performance and expression. This concept is visualized by Figure 2.4.15, where both curve and surface attractors are combined to add more complexity to the output mesh/landform. 02.05_ MORPHING GEOMETRY ON A SURFACE TO CREATE A FIELD CONDITION Process overview The following process will yield the output of a landform condition that is revelatory of a feld condition. Such a landform scenario has the ability to be applied to a landscape of operation, whether informing ecological function or as the basis for an urbanic condition that is based upon social, economic, or ecological based systems, as they can be spatialized through a choreography of patterned movements derived from a formal compliance to a deconstructed system. Building on the previous example tutorials, many of the same operations and concepts will be utilized to create attractors for generating elevation-based differences among the resultant feld condition/pattern, as well as forming the basis for the creation of a grid organizational system for the pattern. Both 2-dimensional and 3-dimensional geometry will be “morphed” or distributed across a created grid and its cell network.The workfow will revolve around the input of native and primitive geometry to Rhino.The input of a planar surface, point(s), closed planar curves, and 3-dimensional mesh geometries will be used to create a potentially dynamic and operative landform scenario.The output surface applies to many of the theoretical concepts associated with landscape urbanism, with landscape providing agency as an infrastructure.The means in which the grid organization system is disrupted and deformed can be applied to both concrete and abstract, site-specifc, characteristics, while the input geometry and the associated formal conditions can be applied to the deconstruction of the system(s) at play and have the potential to govern the site. 02.05.00: Rhino and Grasshopper base setup Beginning in a similar fashion to the previous workfows, the presented script will be based in the referencing of primitive geometries from Rhino for further manipulation. Working from a simple planar surface or plane geometry, a point, and two varying formed closed curves, the example will create a landform scenario that is expressed in a feld condition of repeated and morphed geometries onto a deformed grid. _Reference in a surface using a Surface component, and “Set one Surface”. 42 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


_Use a Point component to reference in point geometry,“Set one Point”. _Draft two closed planar curve geometries with varying formal expression (example uses a circle and square). Place near the input planar surface. _Using a Divide Surface component and Number Slider, divide the surface into a point grid. Figure 2.5.1 Input base geometry represented in model space Figure 2.5.2 Referenced surface divided into points 02.05.01: Creating a grid from surface points with Paneling Tools After having referenced in the base geometries and dividing the input surface into a grid of points, the Compose Grid Number component of the Paneling Tools plugin can be used to create a grid to morph an input geometry onto the input surface. _To create a grid using Compose Grid Number, connect the output “P” (points) of the Divide Surface component to the input “P” on the Compose Grid Number. _In order to create the output grid, an expression must be written for the “N” (Number of Rows). Right click over the “N”, select expression, and write “x+1”.This is necessary to adjust the count of points, following the same logic used when creating a surface from points. _To visualize the output grid, connect the output “Gd” of the Compose Grid Number to a Cellulate component. Figure 2.5.3 Generated grid curves from surface points CHAPTER 02: LANDFORM CREATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 43


02.05.02: Deforming a grid with point attraction Figure 2.5.4 Deformation of grid with attractor point Figure 2.5.5 Original grid and deformed grid geometries 02.05.03: Morphing the 2D planar curves onto the grid/input surface Figure 2.5.6 Morphing of list of 2D referenced curves to deformed grid The base grid for morphing a geometry to create a feld condition is now functional through the use of Paneling Tools.The grid can now allow for more alteration through a cartesian grid transformation. In manipulating the grid cells, an attractor conceit will be utilized to pull or push the grid cells further from or closer to the coordinate location of the point attractor.This transformation will allow for the cells of the grid to be distorted, creating a variation in the area metric of the cells as well as curvature in the organization system of the grid. _Place a Paneling Tool’s Point Attraction component on the canvas and connect the output “Gd” (grid) from the Compose Grid Number component into the“Gd” input on the Point Attraction. _Connect the reference point geometry output of the Point component into the “A” (attractor) input on the Point Attraction component. _Use a Number Slider to control the strength of the attraction exhibited by the point. Connect the Number Slider output to the “M” (magnitude) input on the Point Attraction component. The magnitude to which the grid is deformed based on the location of the point attractor is governed by the Number Slider. Typically, the values should range between 1.0 and 5.0. When the magnitude is set at too high an integer, the grid becomes null as the grid points overlap with one another and become displaced too far from their original organizational structure. Use a Cellulate component to visualize the output grid. After outputting the deformed grid, the two closed planar curves drawn in Rhino can be referenced in and morphed to the grid.The center of the closed geometry will be placed at the center point of each grid cell.To build in the potential for a more complex and operative-based landform scenario, the two geometries will undergo geometric metamorphosis. Geometric metamorphosis is the transition of one geometric form to another over a gradient of formal transition. In the case of the example, the input circle curve will transform into the square input curve over the course of the grid. _Reference in the circle and square curve geometries and place each into a Curve component, with one component referencing the circle 44 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


geometry and the other holding the square geometry data. _Place a Morph 2D Mean component on the canvas. Connect the output grid,“Gd”, from the Point Attraction component into the input “Gd” on the Morph 2D Mean component. Plug the output “W” (weight) from the Point Attraction into the “W” on the Morph 2D Mean.This allows for the same attractor values and strength that transformed the grid to create the metamorphosis from the input geometries. _Finally, connect the circle curve into the “S” (start of pattern) and the square into the “E” (end of pattern). 02.05.04: Building planar surfaces from the output, closed, morphed curves Because the output morphed curves are closed and planar, they can be made into closed surfaces. Recalling from the previous example, planar surfaces can be used to translate mesh vertices to output a topographic expression. Through combining the current script and previous script, the morphed curves and their output planar surfaces can provide the result of a feld condition landform where the elevation and slope can be controlled with the input forms. _To output planar surfaces from the morphed curves, use the component Boundary Surfaces.This will create planar surfaces within the boundary of the closed curves. Figure 2.5.7 Pattern generated from morphed curves previewed in model space Figure 2.5.8 Creation of planar surfaces from morphed 2D curves Figure 2.5.9 Output boundary surfaces based on grid curves as previewed in model space CHAPTER 02: LANDFORM CREATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 45


02.05.05:Completed morph 2D script connected to translated mesh vertices based on surface attractor Figure 2.5.10 Connection of output planar surfaces to mesh displacement operations Copy and paste in the Translating mesh vertices based on surface attractor script from section 02.04.10. _Connect the output Boundary Surfaces from the morphed curves into the input Surface (attractor surface(s)) component on the Translating Mesh Vertices Based on Surface Attractor script. _Plug in the input base surface for the morphed geometry into the base surface Surface component of the Translating Mesh Vertices Based on Surface Attractor script, so the surface can be converted to a mesh. The output mesh can be adjusted for elevation and Figure 2.5.11 Output mesh manipulated by morphed curve planar surfaces slope setting as described in the previous example. 02.05.06: Set up for morphing 3D geometry to deformed grid and surface The following steps will sequence how to further the ability to morph a geometry across an input surface while controlling elevation attributes. Rather than placing and deforming a 2-dimensional geometry across a deformed grid, this algorithm will use a 3-dimensional object to be repeated and altered based on the grid and height feld transformation. _Similar to the prior steps, the input geometry will consist of a planar surface input and a point for attraction. In addition to these geometries, a 3-dimesional object/panel will be morphed across the created grid. For this example, the output mesh landform from section 02.04.10 will be Figure 2.5.12 Input base geometry in model space to be referenced used ( Figure 2.4.15 ). 46 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


_Follow steps 02.05.00–02.05.02 to set up the basis for the alternative script (note: an extra Number Slider has been added to the U and V of the Divide Surface component, making the grid less regular. Plug the output of the “V” slider to both the “V” input on the Divide Surface as well as the Compose Grid Number, “N”, input). Figure 2.5.13 Creation and representation of deformed grid cells At this stage of the script, the output will consist of the deformed grid visualized through the Cellulate component. 02.05.07: Using attractor point to calculate distance values for attraction To control the elevation and height range of the intended 3-dimensional modules to be created, an attractor conceit based off the location of a point geometry in model space will be constructed.This process follows the same steps that have been represented in the previous tutorial examples. _Place a point in Rhino (you can use the same point that is being used for the grid deformation) and reference into a Point component in Grasshopper. _Connect the output point geometry from the Point component to the“C” input on a Closest Point component. Input the output points/grid, “Gd”, from the Point Attraction component to the “P” input on the Closest Point. This allows for the distance values between the grid points and the attractor point to be calculated. Figure 2.5.14 Output grid organization in model space Figure 2.5.15 Component connections calculating distance values from attractor point and grid points CHAPTER 02: LANDFORM CREATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 47


02.05.08: Remapping distance value domain to control values for elevation Now that the distance values between the attractor point and the grid points have been calculated, these values can be remapped to create a domain to generate a lower and upper limit that can be used to control elevation variation based on the location of the attractor. _Place a Bounds component on the canvas and “Flatten” the input “N” (numbers).This operation provides the output and current domain of Figure 2.5.16 Operations remapping numbers to allow for control in second grid creation the distance values. _Use Remap Numbers to create a new domain that can be controlled through inputting integers into a Panel. Input the output “D” (distance values) of the Closest Point into the “V” input on Remap Numbers. Input the output “I” (source domain) and the output of the Panel (the example presents “1.0 to 8.0”) to the “T” (target domain) of the Remap Numbers. 02.05.09: Moving grid points based on remapped attractor values The remapped number domain values will be used to dictate and control the movement of the output points/grid from the Point Attraction. This creates a second grid, which is required for the 3D-geometry to be morphed onto the input surface and created grid. _Place a Move component into the fle and connect the output “Gd” (grid/points) from the Point Attraction component as the geometry to be moved. _Use the Unit Z component to create the vector/direction for the geometry to move. Connect the output “R” (remapped numbers) of the Remap Numbers component to the “F” (factor) input of the Unit Z. Plug in the output of the Unit Z to the “T” input on the Move. The Move operation will produce a second set of grid points at elevation values that lie within the remapped domain in relation to the location of the input attractor point(s). Figure 2.5.17 Translation function moving grid points based on remapped values in z-axis Figure 2.5.18 Represented grid point translation in model space 48 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


02.05.10: Morphing a 3-dimensional mesh between the two created grids Figure 2.5.19 Morphing operation of input mesh landform typology based on created grids Having created the secondary grid of points, the 3-dimensional geometry can now be morphed to the input surface through use of Paneling Tools. _Place the Morph 3D component on the canvas. Input the output points from the Move into the “Gd2” (grid 2) input on the Morph 3D. _Next, connect the output “Gd” points from the Point Attractor to the “Gd1” input (grid 1). _Reference in the geometry to be morphed. If it is a surface, use a Surface component. If it is a mesh, use a Mesh component. A Geometry component can also be used for both surface and mesh geometry. Morph 3D allows for the use of either a mesh or surface. 02.05.11: Joining output morphed objects into one mesh using Weaverbird Figure 2.5.20 Joining of output mesh panels The output of the Morph 3D is comprised of the individual geometries that make up the morphed, 3-dimensional, geometry of the grid. In the case of this example, there are 18 individual morphed meshes created based on the number of grid cells. To combine the meshes into one cohesive mesh geometry, a component from the Weaverbird plugin from Grasshopper will be used. CHAPTER 02: LANDFORM CREATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 49


Figure 2.5.21 Completed script of morphing a 3D landform module to a grid condition and contouring the resultant terrain model _Place a Weaverbird ’s Join Meshes and Weld component onto the canvas. “Flatten” the input “M+” (meshes) to consolidate the meshes into a single data list. _Connect the output “O” (morphed objects) from the Morph 3D into the “M+” input.This creates a single output mesh geometry. Figure 2.5.22 Output landform scenario 50 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 02: LANDFORM CREATION


CHAPTER 03 LANDFORM ANALYTICS AND CALCULATIONS Automation of site dynamics Having the ability to quickly generate accurate 3D digital site models provides the grounds for intervention.With typical design process, and in confuence with contemporary practices, analysis of current and predicted systems of the site plays a large role in preluding design to inform performative measures. Not only can such systemic analysis provoke logical responses for site scenarios, but they can aid in additional explicit modeling of site characteristics that can be further analyzed or allude to intervention. When addressing site dynamics that are categorized as more metric-guided, the feld relies on allied professionals or software that can be seen as lying outside the comfort zone of the discipline.While this book calls for landscape architecture to extend its knowledge of technology to more computational based tropes, the presented concepts organize themselves to leverage familiar tools with the premise of added sophistication and authorship.The previous statements are not intended to elicit a departure or deterrent from highly multidisciplinary needs of the feld, but rather urge for an expanded knowledge within the discipline to provide additional grounds from which we can consider incorporating such data and metrics of landscape with allied felds.This potential expands beyond associated professions to the public and clients.With the ability to better inform design through calculation and representation of metrics, non-designers can become intertwined in the design process as it is made more transparent and legible.The capacity to concisely present analytics of the landscape through design and research allows for further positioning of design considerations.Typically addressed factors such as elevation, slope, and runoff calculations are navigated to meet design performance standards and are leveraged to arouse spatial/formal considerations.The following workfows present the capability of generating not only metric data, but also visual representations of the aforementioned landform characteristics through the use of simple data deconstructions and manipulations. Usually, such processes would rely upon the use of mapping and other modeling software outside of the CAD-related programs. Merely leveraging 3D site model data can produce accurate and rapid output and data visualizations. 03.01_ SHADE 3D MESH LANDFORM MODEL BASED ON ELEVATION VALUES Process overview As a normal practice of landscape analysis, elevation data is identifed and can be investigated through the representation of a gradient shaded 3D model.This provides a legible visualization as well as a model to decipher.The computational process for this fnds simplicity in the ability to deconstruct a mesh geometry down to its most basic parameters.The point geometries that comprise a mesh, whether triangulated or quadrilateral, hold x, y, z data.The z data provides the elevation value of each point as it is representative of the 3D axis. Color values can be aligned to the z values and match their distribution following their inherent domain.This alignment of values is utilized to provide the shading of the mesh landform. CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 51


03.01.00: Reference and deconstruct mesh geometry For this workfow, a 3D triangulated mesh will be used.The mesh will be referenced into Grasshopper and deconstructed to fnd the basis of its composition.The more points that comprise the mesh, the more accurate and smooth the output shading will be. A mesh rather than a surface is used, as mesh geometries facilitate the use of color properties and allow for the end geometry to be baked out of Grasshopper with the supplied coloration as an embedded characteristic. _Place a Mesh component on the canvas and reference in a mesh site model/landform from model space. _Once referenced, connect the output Mesh to a Deconstruct Mesh component.The Deconstruct Mesh component breaks down the input mesh geometry into the points or vertices that defne the mesh.These points are what provide the corners of triangles or quads of the mesh. Mesh faces are output, which are data that comprises the space in between the triangulated or quadrilateral points (similar idea to subsurfaces of polysurfaces).Any color applied to and associated with the mesh is output. If the mesh is the default material in Rhino3D, no color value will be output.The last output is the mesh normals, which specify the direction in which each mesh is facing. 03.01.01: Deconstruct mesh vertices to isolate z values and calculate domain The values to be used for the elevation analysis are supplied from the deconstruction of the points that embody the mesh.As discussed previously, points hold x, y, and z values.These values can be isolated and leveraged. _With the mesh now deconstructed, the derived points or vertices can be broken down into their x, y, and z values using the Deconstruct component. Connect the output “V” from Deconstruct Mesh to the input“P” on Deconstruct. _The third output from Deconstruct is“Z”, the z or elevation values of each point. A Bounds component will be connected to the output z values to determine the domain of the list of values.The domain registers the lowest and highest values as well as the distribution of all in between. This ordering and analysis of values aligns to the color ramp that will be used to create the gradient based on elevation. Figure 3.1.1 Referenced mesh connected to deconstruct mesh Figure 3.1.2 Resultant preview of deconstructed mesh showing vertices Figure 3.1.3 Isolation of z values and produced domain 52 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


03.01.02: Deconstruct domain and apply color gradient The domain and the list of z values provide the required information to be processed to correlate to color values and, eventually, to the coloring of the mesh itself. This list, with its highest and lowest values, can be mapped onto a list of color values. _Similar to how the mesh and points were deconstructed, the presented domain of z values can be deconstructed to output the lower and upper limits of the domain.The Deconstruct Domain component provides this operation through being connected to the output of Bounds. _The Gradient component can be used to provide the list of colors to represent the changes in elevation.There are three inputs on the Gradient component that utilize the data generated thus far.The presented colors of the gradient can be altered by right clicking on the component and choosing from a preset, or adjusting for custom colors by double clicking on the sliders within the gradient. “L0” is the lower limit of the domain with “L1” requiring the upper limit of the domain. Connect the output “S”, or start of domain, from Deconstruct Domain to“L0”, and “E”, end of domain, to “L1”.The fnal input, “t”, requires the parameters of the list of values along the domain. The output“Z” from Deconstruct provides the parameter values and should be connected to “t” on Gradient. _Now having composed the alignment of z values to a color gradient, the mesh can be reconstructed with the created distribution of color. Place a Construct Mesh component on the canvas.The inputs to the component should look similar to the outputs from Deconstruct Mesh. Connect the matching outputs to the inputs aside from “C” to “C”.The mesh vertices and faces of Deconstruct Mesh and Construct Mesh should now be connected.The color(s) for the reconstructed mesh will be supplied by the output of the Gradient component. With this connection, the mesh should be previewed with a color gradient that corresponds to its elevation in model space. This workflow has a simple computational method, but the output data, as well as representation, can provide composition for further in-depth analysis or manipulation relative to landscape dynamics that are dependent upon and dictated by elevation. Figure 3.1.4 Deconstruction of domain applied to gradient Figure 3.1.5 Gradient colors relative to elevation applied to mesh Figure 3.1.6 Resultant mesh colored by elevation values CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 53


03.02_ SHADE 3D MESH LANDFORM MODEL BASED ON SLOPE VALUES AND CULL SLOPE RANGES Process overview The presented workfow will follow a similar notion as the previous, but, rather than calculating for and representing elevation through a color gradient, percent slope will be analyzed. Such slope analysis can aid with site design and can also fuel larger intervention strategies through providing created data for further modeled analysis. Such extended analysis includes any landscape system that provokes slope as a parameter, i.e. vegetation, animal, access, drainage, human occupation, etc.This workfow expands upon the ability to deconstruct geometric data to its most basic compositional parts and create new data through additional operations.The script leverages the use of the normals that are associated with each mesh face.A normal can be described as a vector that is perpendicular to the mesh face.The normal provides the direction in which the mesh face is oriented.The process will compare these mesh normals and their associated directions with the constant variable of the z-axis.This comparison provides an angle calculation between each of the normals and the z-axis.The output angle values can be converted to a percentage, as slope is typically addressed and understood through percentages.These percentage values supply a list of values and a corresponding domain. Similar to how the mesh was colored with a gradient corresponding to a domain list of elevation values, the mesh will be colored based on degree of slope. 03.02.00: Reference, deconstruct mesh geometry and visualize normals Using a triangulated or quadrilateral mesh, the mesh will be deconstructed to separate out the underlying parameters and geometries.The normal for each mesh face will be output and used as the basis of the operations to follow. A portion of the presented steps shown are not necessary for the script to function, but rather are shown to provide clarity of how the mesh normals represent themselves. Lines will be created that extend out from each mesh face to register their associated direction. Figure 3.2.1 Referenced mesh deconstructed and created lines from mesh normals Figure 3.2.2 Preview of mesh normals _Reference in a mesh geometry to a Mesh component and connect the output to Deconstruct Mesh. The last output on the Deconstruct Mesh component will be normals of the mesh. _To visualize the normal, Line SDL will be used. This component allows for a line to be constructed from a start point, and supplied with a length and direction in which it should be drawn. The output “V”, vertices, and the output “N”, normals, from Deconstruct Mesh will supply the necessary data for lines to be drawn that correspond to the normal directions. Connect “V” to “S”, line start point, and “N” to “D”, the vector direction on Line SDL. In model space, the mesh should be previewed with lines extending outward, perpendicular in the positive z-axis to the mesh. Each face will have a line and, if the mesh is dense in its number of vertices and faces, the appearance will echo this denseness. If the lines are not visible, add a Number Slider to the “L” input on Line SDL and increase the value until they appear. 54 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


03.02.01: Calculate slope in angles and convert to percent With the mesh normals identifed, their direction can be compared to the z-axis. In doing this, the output calculated degrees will be in radians.The radians will be converted to percent slope based on the automation of a simple equation.The output for this fragment of the script will be the list of values that are representative of the normals as percent slope. _Place an Angle component on the canvas as well as a Unit Z component. Connect the output normals from Deconstruct Mesh to the “A” input on Angle, and the Unit Z output to the “B” input.The angles between the z-axis and the normals is output. _To convert the output radians, the formula, % slope = tangent (angle in radians) × 100, will be automated. Use the Tangent component to calculate the tangent of the value. Connect the output “A”, angle values, from Angle to Tangent.The output “Y” of Tangent can now be connected to the “A” input of a Multiply component. Following the outlined formula, the second input for the multiplication operation will be 100. Use a Panel component and type 100 as the value to be set and output. Connect the Panel output to the “B” input on Multiply. The tangents of the angle values are now multiplied by 100. _In performing this operation, some values may exceed a value of 100.To maintain accuracy in the analysis, the output values from Multiply will be compared to a maximum value of 100, with all values that are 100 or less to be returned. Place a Minimum component on the canvas. This component compares two items or values/lists of values with one another and returns the lesser of the two items. Connect the output of Multiple to the “A” input on Minimum, and the Panel with 100 to the “B”. All of the values in the list from Multiply that are less than 100 will be output. 03.02.02:Apply percent values to gradient and color mesh based on slope Figure 3.2.3 Calculate angle between the mesh normals and the z-axis Figure 3.2.4 Convert angle in radians to percent and output all values less than 100 Figure 3.2.5 Apply gradient to represent slope analysis CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 55


The calculated slope angles are now converted to percent and their domain can be isolated.The domain will be deconstructed and, in addition to the list of percentage values, correlated to a gradient of color values. Upon this alignment of data, the output color values will be applied to the mesh to represent slope intensity. _Connect the output from the Minimum component to a Bounds component. This outputs the domain relative to the slope percent values. Use Deconstruct Domain to output the start and end values of the domain by connecting the output from Bounds. _Plug the output start and end of domain from Deconstruct Domain into “L0” and “L1” on the Gradient component. The output from Minimum is connected to “t” on the Gradient to supply the list of values that the domain encompasses. _Using the Construct Mesh component, the output color values associated with the slope percentages are assigned to the input mesh geometry. Connect the output from Gradient to the “C” input on Construct Mesh. From Deconstruct Mesh, connect the output vertices to the “V” input on Construct Mesh and the output faces to the “F” input.The input mesh is now previewed with a gradient of color depictFigure 3.2.6 Preview of output mesh colored by slope percentage ing slope in model space. 03.02.03: Cull slope value range with an expression Figure 3.2.7 Script addition of conditional statement and culled binary pattern Typical to slope analysis is the process of classifying a site based on ranges of slope percent. This extended analysis of slope provides a quick assessment of landscape scenarios and occupations. Looking forward as a means to adjust and perform more complex modeling, this can 56 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


be used in association with elevation to derive where vegetal communities and animal species will occupy the landscape.The following additive to the script allows for a specifed range of slope values to be identifed to increase understanding of the landscape of investigation.The slope values have been calculated and converted to percent. This list of values can be sorted and culled to provide all values that ft into a specifed range. The list length of the normal output from the deconstruction of the mesh is the same length as the vertices that construct the mesh. The culled list of normal values can be matched to the vertices list, and the output previewed points or vertices will represent the areas of the mesh that have a slope percentage matching the input range searched for. _There are multiple ways to write an expression within Grasshopper, in this example the Evaluate component will be utilized for this operation.The expression will be written into a Panel component.Type the expression if((x>A) and (x<B),1,0) into the Panel. This expression is acting as an if/then conditional statement. In the case of this script, the expression is stating that if the variable x is greater than variable A and less than variable B then it is true. There are three default inputs on Evaluate, “F”, the expression, “ x”, variable one, and “y” variable two. For the outlined conditional statement to work, the variables “x” and “y” must be changed to “A” and “B”. Right click on each input and change the titles at the top of the drop-down menus.An “X” variable needs to be supplied—zoom in to the Evaluate component,“+” and “−” signs will appear near the inputs. Between the “A” and “F” inputs, click the “+” and add a variable named “X”. _Connect the output expression from the Panel to the “F” input.The “X” variable will be the output slope percentages from Minimum. For “A” and “B” the variables to be supplied represent the desired range for slope analysis. Use a Number Slider to set the values for both. “A” will be the lower value of the range with “B” being the greatest slope value to search.The example is using a value of 10 for “A” and 20 for “B”. _The slope values have been run through the conditional statement resulting in a binary presenting which values are true or false, ftting the rule of the statement.To isolate the true values from the output binary, Cull Pattern is used. Cull Pattern Figure 3.2.8 Output point locations of slope range CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 57


applies the binary of true and false to a list of values or geometries.The input values or geometries must have the same list length, as well as list order, for the operation to work properly.The vertices and normals from Deconstruct Mesh have the same number of values in their list and are ordered the same. Connect the output vertices from Deconstruct Mesh into the “L” input, and the output from Evaluate into the “ P” on Cull Pattern. The output of the script will be the points/vertices that fall within the input slope range. The presented slope analysis allows for rapid metric evaluation of principle landscape dynamics at any scale.The ability to quickly assess existing or proposed site conditions forms the basis for further modeling and testing of scenarios. Accurately identifying and calculating slope on a large territory of study via traditional methods can expend a fair bit of time, making just one facet of design consideration create an overtone for the conceit of the project at hand.Through the automation of site dynamics, such as slope, other implicit and explicit systems of the landscape can be explored and comparatively researched to their possible intersections. 03.03_ CALCULATING THE RUNOFF VOLUME OF 3D GEOMETRY USING THE RATIONAL METHOD Process overview When addressing the metrics for volume of runoff on a site, a typical conceit that is employed is the Rational Method.This is a formula for computing the peak runoff of a drainage area.The equation, q = CiA, addresses the variables of a dimensionless runoff coeffcient, rainfall intensity (measured in inches per hour), and the area.These variables provide a basic calculation of a runoff rate in cubic feet per second.The volume of the runoff can be output by multiplying the runoff rate by the duration of the storm in which it is being designed for in seconds.The equation is reliant upon variables that can be solved for through scripting as well as simple input values that are supplied by referenced charts. Such referenced charts can be found through simple web searches or via the use of site engineering books. Upon locating a chart of runoff coeffcient values, there are characteristics that need to be supplied in order to identify the coeffcient.These include the ground cover/material, the average slope of the drainage area, and the underlying soil type. The groundcover/land use and the soil properties of the landscape of investigation can be fueled by the use of GIS data, while the slope calculation can be automated through scripting, pulling from the previous workfow.The rainfall intensity is provided by a chart as well.Typically, these charts provide data for design storms associated with locations of major cities.To acquire this variable, a rainfall intensity curve for the nearest major city to the area of study can be used.This curve allows authorship in defning the design storm as 2-, 5-, 10-, 25-, 50-, or 100-year for which the calculation will be made.The outline workfow will automate the calculations of the script using a 3D mesh geometry. While the script helps to streamline the process, fle preparation of the mesh is needed prior to inputting base geometry data.The drainage area must be identifed and isolated from the remaining portions of the mesh.The mesh also must be trimmed or split based on soil data.The output of the workfow will be based in numerical value versus graphic representation. 58 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


03.03.00: Compute the average slope of the drainage area For the preliminary step of the calculation, the drainage area is isolated from the rest of the mesh and further trimmed by soil type(s).The resultant trimmed mesh(es) embodying the drainage area and the same soil characteristics are to be used to calculate the average slope.With the soil type, land cover, and average slope represented, the runoff coeffcient can be identifed.The operation held with the scripting is providing the average slope of the area of analysis. The other factors must be found through outside sources. _Using the script cluster from 03.02.01, the input mesh will be deconstructed to output its normals to compare with the z-axis and fnd the slope percentages.The slope percentages will be averaged to supply the slope variable needed for determining the runoff coeffcient. Reference in the mesh(es) of the drainage area that have the same ground cover and soil characteristics to the Mesh component. From the output calculation of the slope being converted to percentage, the average can be generated. Connect an Average component to the output “R” from Multiply. To better display the average value, connect a Panel to Average.As a means to keep the script organized, right click on the Panel and title it “Average Slope” at the top of the drop-down menu. _With the slope, soil, and groundcover identifed, the chart for runoff coeffcients can be referenced to acquire the coeffcient value. Once the value is determined, place a Panel component onto the canvas and input the value.Title the Panel with the description of the coeffcient, i.e. Clay + Silt Loam Hilly 10–30% etc. 03.03.01: Generate area calculation of drainage area in acres The formula for the Rational Method requires the area metric of the drainage zone to be analyzed.The units in which the area value is to be delivered is in acres.The model/mesh being used for this analysis should be to scale. The model space unit of the example workfow is in feet.The output area value will be in square feet, which will be converted to acres to align to the needs of the equation. Figure 3.3.1 Input mesh of drainage area parcel of same soil and groundcover characteristics Figure 3.3.2 Slope average calculation and input runoff coeffcient Figure 3.3.3 Area calculation of drainage zone CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 59


_Place an Area component into the workspace and connect the output referenced mesh(es) to the “G” input. If there are multiple input meshes that ft the same soil and groundcover identities of the drainage area, the output area value,“ A”, needs to be Grafted. In opposition to fattening, grafting allows for the input data to maintain each individual item as its own list versus combing all into a singular list. In this case, each mesh will maintain its instance and provide an area calculation for each mesh parcel. To graft, right click on the “A” output of Area and select Graft from the drop-down menu. Connect a Panel to the output “ A” and label as “Area in SqFt”. _The next portion of the operation will convert the output area from square feet to acres. The Division component will be utilized to divide the output area values by the amount of square feet in an acre, 43,560. Place a Panel in the workspace and enter 43560 as the data to be held. Connect the Panel displaying the areas in square feet to the “A” input on Division. The “B” input, the value to divide “ A” by, will be connected to the Panel housing the amount of square feet in an acre. Up to this point in the workfow, we have generated the runoff coeffcient and area values.These values must now be multiplied by each other and by the rainfall intensity value. 03.03.02: Output the runoff volume of the drainage area in cubic feet Figure 3.3.4 Peak runoff rate and volume calculations—completed script The following steps in the workfow rely simply on automating mathematical operations with supplied data to calculate runoff rate and volume.The value of the rainfall intensity is supplied through referencing a rainfall intensity curve of the major city that is closest to the territory of analysis.The other variables for the fnal calculation have been produced or made available in the script. _The runoff coeff cient value held in the Panel can be multiplied by the output area calculations. Utilize 60 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


the Multiplication component to perform this operation. Connect the output area in acres from the Panel to the “B” input on Multiply. Connect the runoff coeffcient value from the respective panel to the “A” input. If there are multiple output drainage values, as there are multiple input mesh parcels, the “A” input on Multiply will need to be set to “Graft” to maintain the lists. _The result(s) of the Multiply component will be multiplied again by the rainfall intensity value. Place another Multiply component onto the canvas and connect the output from the previous Multiply to the “A” input.The rainfall intensity value can be supplied by a Number Slider so as to allow a quick change based on the storm being designed for. Set the value and connect the Number Slider to the “B” input on the second Multiply component.This calculation will compute the peak runoff rate in cubic feet per second. _As the fnal action of the script, the peak runoff rate will be converted to a volume measurement in cubic feet. With the use of another Multiply component, attach the output value of the peak runoff rate to the “A” input. For the “B” input, the factor to multiply by will be the rain event in seconds. Recalling back to the rainfall intensity curve, the length of the storm as well as the year of the design storm is specifed to fnd the intensity. Convert the chosen duration of the storm into seconds and place the value into a Panel. Plug the output of the Panel into “B” on multiply.The output value(s) will be the runoff volume in cubic feet, concluding the rational method calculation for the mesh parcels of the drainage area that share the same ground cover and soil properties. In the situation where the drainage area of study is composed of multiple groundcovers and soil types, the script can be repeated for each set of meshes with the output runoff rates and volumes then added together. The script as represented through the equation provides a general calculation relative to runoff volume from a site. This process of automating the equation based on input 3D geometry is intended to encourage the engagement of digital workfows with traditional standards of analysis, where the validity of verifed models and equations is reformatted to ft the methods of digital modeling that are increasingly being used and adapted to in the feld. CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 61


03.04_ HIGHLIGHT AREAS OF A LANDSCAPE MESH GEOMETRY THAT RECEIVE SUNLIGHT Process overview Typically, when landscapes are analyzed in relation to solar instances, shadow studies are the standard and default. Rather, the presented workfow will produce an output that calls attention to what areas of the landscape are receiving sunlight based on the date and time of day.The script utilizes a plugin for Grasshopper, Ladybug Tools.Through the use of this plugin, the sun position for a particular day and time is calculated through the use of a weather data f le.The output point geometry that is the position of the sun is used with the vertices that comprise the mesh to create vectors.The created vectors are evaluated to output intersections with the mesh geometry, where the mesh itself acts as the obstacle for such intersections through its formal differentials of elevation and orientation.The output of the script provides point geometries that are representative of the intersections of where the mesh is receiving sunlight, based on the specifed day, time, and location. 03.04.00: Reference mesh geometry and import EPW fle for sun position The initial steps of the script require the referencing of the base data needed for the sun path to be generated, the input mesh, and a weather fle detailing the location of the analysis. _Place a Mesh component onto the workspace in Grasshopper and reference in a mesh to analyze.To begin the set-up for the sun path diagram that will be generated, use an Area component to fnd the center point of the mesh to center the diagram around. Connect the output referenced mesh into Area. _An EPW fle will be used to provide the location data for the sun path. EPW fles can be found and downloaded at https://energyplus.net/weather. This fle is used to supply weather and location data for the landscape model.Typically, the data is associated with and created from airport locations. Navigate the website to fnd the EPW fle that is closest in location to the landscape of study. To reference in the fle associated with the EPW to Grasshopper, a File Path component will be used. Right click File Path, “set one existing f le”, and locate the downloaded EPW fle. Place the Ladybug_Import Location component on the canvas and connect the output data from File Path. The mesh and the weather fle are Figure 3.4.1 Referenced mesh and imported EPW location now provided for the sun path analysis. 62 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


03.04.01: Create sun path diagram and calculate sun position for a given day and time Using the base data of the 3D mesh geometry, with its north–south orientation accurate, and the input weather data, a solar path diagram and calculation can be generated. Through added use of the components associated with Ladybug Tools, the month, day, and time, in correlation to the supplied location, can be used to create a solar diagram and output the position of the sun. Typically, with such analysis for shadow or sunlight, the dates used refect the summer and winter solstice, as well as the fall and spring equinox. On such dates, the times of analysis traditionally fall within a few hours after sunrise, mid-day, and a few hours before sunset.The date and time can be changed on demand through the presented process so as to enable an analysis that can be quickly adjusted for the typical dates and times. _Place the Ladybug_SunPath component onto the canvas. The component will have an extensive list of inputs, only six of which will be used for the purposes of this operation. Connect the output location from Ladybug_Import Location to the “_location” input on the Ladybug_SunPath component. Towards the center of the Ladybug_SunPath component there is the input“_centerPt_”.This input refers to the center point from which the output sun path diagram will be created. Connect the output centroid from Area to provide the place of the diagram at the center of the input mesh. _To specify the date and time, connect Number Sliders to the “_hour_”, “_day_”, and “_month_” inputs.The example is using December 21 at 9am. When setting the value for the hour, the values range from 1–24. If the set hour is during early morning or night, the component will throw an error as there is no sun position present at the time.With all of the aforementioned inputs connected to the Ladybug_SunPath component, a solar diagram representing all compass directions, altitude curves, and the sun position will be output.The sun position will appear as a yellow mesh sphere geometry. _If the diagram is not visible, the scale of the diagram may need to be adjusted. Connect a Number Slider to the “_sunPathScale_” input and increase the value until the diagram is previewed in model space. Figure 3.4.2 Sun path input data/settings Figure 3.4.3 Previewed sun path diagram in model space CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 63


03.04.02: Find intersections between sun position and mesh vertices to derive zones of sunlight exposure With the sun position calculated, a point geometry from this position can be generated.The points that construct the mesh and the point geometry that is the position of the sun can be used to create vectors.The starting point of the vectors will be the sun position and the end points will be the vertices of the mesh.The mesh itself will act as an obstacle to fnd which of the created vectors intersect and do not have to move through the mesh to be complete.These “output intersects” are where the sunlight is hitting the landscape. _To isolate the points of the mesh, place the Deconstruct Mesh component onto the canvas and connect the output referenced mesh geometry. _Create vectors between the sun position and the output vertices from Deconstruct Mesh through utilizing the Vector2Pt component.The output “V” from Deconstruct Mesh will be the end points of the vectors. Connect this to the input “B” on Vector2Pt.The start point of the vector, input “A”, will be the output “ sunPositions” from the Ladybug_SunPath component. _Use the MeshRay component to fnd the intersections between the input mesh and the vectors. Connect the referenced mesh to the “M” input. The second input on MeshRay is the ray start point, “P”. Plug in the output “sunPositions” to “P”.The fnal piece of data needed for the intersection is the direction of the rays.The output vectors, “ V” from Vector2Pt, provides the direction. Connect this to “D” on MeshRay. Upon the conclusion of the fnal step, point geometries that align to the intersections where the vectors are intercepting the mesh without passing through the geometry to reach their end points will be represented. The operation can be repeated to assess different dates and times, aligning to project-specifc instances or following the typical shadow study protocol of dates.These scripts give the ability to automate solar analysis of the landscape, which can be applied to either existing or proposed site considerations. Such an analysis in this format has the ability to fuel additions to the script to simulate and address landscape performance, or to simply generate a vector drawing output rather than relying upon raster outputs from rendering engines. Figure 3.4.4 Create vectors between sun position and mesh vertices to fnd intersections with the mesh Figure 3.4.5 Output point intersections between vectors and mesh depicting areas of the landscape receiving sunlight 64 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS


03.05_CONTEXT The ability to rapidly generate site models and manipulate geometry to produce landform-based scenarios, on both the site and territory scale, meets the need for addressing and weighing performance.The presented workfows provide analysis of the landscape as a reduction of performative characteristics.The output metrics typical to the understanding of landscapes as a lattice of embedded confuent attributes enable the standardization of responses in their manipulation.The represented workfows present information and resultant analyses that are typical to landscape as a metric convention. It is not only the automation of such processes that provides the value, but rather the accompanied computational understandings. These understandings help to facilitate not only the deconstruction of digital landscapes but, arguably, physical landscapes. Landscapes have been appropriated through the way in which they are inventoried and deconstructed by mathematical standards and conceits.Addressing notions of what provides performance in the landscape falls upon the use of such derived metrics. Either increasing or decreasing such numerical characteristics of the landscape to increase its performance through intervention can equate to a reductive instance of the landscape through engineering.The provided workfows provide analytical data that is of a specifed moment in time, which is inherited from the geometry and supplied data. While the use of computation provides accuracy to the creation and evaluation of landscape as a data construct, it can also provide assessment of uncertainty and evolution.These methods of evaluation provide data regarding an instance of what is presented through the rapid ability to prototype.This can then be recursively assessed, corresponding to the ability to further adjust intervention as more parameters are exposed. CHAPTER 03: LANDFORM ANALYTICS AND CALCULATIONS PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 65


CHAPTER 04 CONSTRUCTION DOCUMENTATION Mechanization of standards With the automation of generating and analyzing site models and output-designed scenarios of the landscape, it becomes valuable to continue the facilitation through documenting such outputs for construction.This chapter aims to facilitate construction documentation workfows through strategies that expedite standard detailing and associated quantifable data. Algorithms can be created that will aid in the labeling of the data necessary to represent landscape in a medium for construction. Such operations can also provide further specifed analysis and evaluation to match design standards in the feld relative to slope and elevation, through the use of models that are semi-detailed in their conveyance of a designed landscape.The presented workfows will provide instances of leveraging the existing model data held by the geometry, as well as furthering the complexity of base models to help address material aesthetics and model representation. As seen in the previous chapter, computational workf ows assist in analysis of existing conditions, especially for sites of a large or territorial scale. Using similar modeling strategies, the proposed geometry for a site design can be deconstructed or used as a base for the creation of parameters that can derive required information for technical drawings. Such annotations can include elevation in the form of contours and spot elevations for grading plans. The specif cation of strategically located slope percentages and directions can be generated, providing indexing and evaluation, as the digital model provides accuracy of the proposed design intervention. Through such annotation processes, the model can not only provide annotation for 2D-projected drawings, but also further assessment to validate the performance of the landscape proposal. Furthering the ability to expedite workfows relative to construction documentations, the presented scripting also navigates the pragmatic use of 3D modeling to address material use and quantity takeoff. The use of computational workfows can extend beyond the notion of modeling and analysis, aligning to the purpose of building information modeling.The presented scripts address the automation of such drawing sets and associated data to construction documentation relative to grading plans, planting plans, and material detailing. 04.01_ LABEL CONTOUR AND SPOT ELEVATIONS Process overview Typical of 2D representation of elevation data, there are contours depicting not only elevational instances but also the form and performative patterning of the landscape.This graphic portrayal extends across disciplines and is the standard for deciphering terrain in a palatable format. In providing drawings and data for the construction of landscapes, grading plans present graphic notation of proposed contours relative to existing topography and site elements. In combination to the contour curves that are labeled with elevation values, spot elevations record a singular, more specifed, instance of elevation among the general grading of the site, providing clarif cation on high and low points, as well as more intricately grading manipulations.The presented workfow provides automation in generating and labeling contours by elevation, and annotating spot elevations. Leveraging the operation to isolate the z value of a point geometry, the contour curves will 66 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


be deconstructed into point geometries that equally segment the curves from a set input value, providing the z value as well as locations to label the geometry with the value. Similarly, point geometries can be strategically projected onto the base geometry at appropriate locations.The projected points embody the location and subsequent elevation of the landform.Through the creation of points from contour curves and the placement of points on a terrain model, the associated z value provides the elevation numbers. These output numbers can be formatted as a text labeling that displays the values with a specifed decimal. 04.01.00: Reference mesh geometry to contour and identify point geometries along contour lines Place a Mesh component on the canvas and reference in a mesh site model/landform from model space. _Connect the output referenced mesh to a Contour component.The direction, “N”, input for the contour operation will be in the z-axis. Plug a Unit Z component into the “N” input on Contour.To supply the interval in which the mesh landform geometry is to be contoured, connect a Number Slider with a specifed value for contouring, typically at 1ft or 2ft intervals at the site scale to the “D” input. _The output contour curves can now have points placed on them that are equally spaced based on a set length value as depicted by an integer.These point geometries provide two functions, the frst of which is providing the z elevation value from the coordinates of the points as relative to each contour line, and the second is providing coordinates for labeling the contour lines at various locations. To break the contour curve geometries into equidistant points, place a Divide Length component onto the canvas. Connect the output curves from Contour to the “C” input, and a Number Slider to the “L”, length input, to defne the distancing of the points along the curves. Upon completion of the outlined operations, the referenced mesh geometry will be represented with contour curves divided into points within model space. 04.01.01: Isolating the z values of the point geometries and labeling at the point locations With the contour curves divided into point geometries at specifc locations, the points can be deconstructed to supply the z values.The output values from the deconstruction will supply the text for annotation at each point location. _Using the Deconstruct component, attach the output points from Divide Length to the “P” input. The output “Z” from Deconstruct provides the elevation values to be used as labeling Figure 4.1.3 Deconstruct points to provide elevation values and label the contour curves with the z/elevation per each contour curve. values Figure 4.1.1 Contouring mesh geometry and dividing the contour curves into equally spaced points Figure 4.1.2 Previewed mesh geometry with contour curves and points in model space CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 67


Figure 4.1.4 Represented labeled contours in model space 04.01.02: Identify and label spot elevations on the input mesh geometry Figure 4.1.5 Projected point geometries deconstructed to z values with formatting to meet graphic standards _To label the geometry, use a Text Tag 3D component. Connect the output “P”, points, from Divide Length to the input “L”. This provides the locations at which the labeling will be placed. The list of text corresponding to the elevation values is the output “Z” from Deconstruct. Connect “Z” to the input “T” on Text Tag 3D. With this string of operations, the contours are now labeled based on their elevation at each point on the curves. Using the same mesh geometry as input into Grasshopper, return to model space and project point geometries onto areas for which you wish to identify the spot elevation.The projected point geometries will be deconstructed to fnd their elevation, and then labeled. _Reference the projected point geometries into Grasshopper using a Point component. Identify the elevation value by using Deconstruct to isolate the z values. Connect the output referenced points to the “P” input on Deconstruct. _The output z value list can be formatted to a notational appearance that allows for alignment with feld standards. A “+” symbol will be placed in front of the text as well as the allowance for the value to be specifed to two decimal places. The Format component will be used for this operation. The “F” input on Format allows a list of text to be displayed as set by the input syntax. In the case of this example, the format notation will read as {0:+0.00}. Place this line of notation in a Panel and connect to “F”.The output z values from Deconstruct, “Z”, supply the data to be formatted. Connect “Z” to “0”. _The fnal operation will follow suit to the performance of labeling the contour curves at point locations. Using Text Tag 3D, input the referenced project points to “L” for the location of the labeling, and connect the output formatted text,“ T”, from Format to the “T” input.The spot elevations will be previewed in model space with proper formatting at the specifed locations. Figure 4.1.6 Previewed text geometry in model space depicting spot elevations 68 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


The presented script allows for automation in labeling and generation of elevation data to aid in the production of construction documents, in a means that quickly allows for response to base model adjustments and added spot elevation data as potentially defned through the expanse of the design process. 04.02_ ANNOTATION OF SLOPE PERCENTAGE AND DIRECTION Process overview The preparation of grading plans for the intention of construction purposes traditionally requires the placement of notion that calls attention to slope direction, and the associated percentage relative to portions of the plan that provide unique or consistent earth movement strategies as provoked by slope performance. Using the data that is associated with a mesh geometry, specifc instances within the proposed landform can be rapidly solved for and generated to facilitate this standardization of representation. Through projecting point geometries to the mesh in locations which you wish to be annotated for slope, the nearest normal of the mesh to the point geometry can be identif ed.The slope will be solved for in the same manner as presented in the previous chapter when addressing slope analysis at the scale of the entire mesh. Upon the calculation of the slope value, the output percentage will be formatted to two decimal places, as this is standard for exhibiting intended slope values in the feld. Following the standardization of graphic communication regarding slope presentation in a grading plan, the direction of the slope will be represented by a corresponding vector arrow to depict the direction based on the instance of the point of annotation. 04.02.00: Deconstruction of mesh geometry to mesh normals and normal center points to fnd closest center point to input projected point locations The base geometries of a mesh landform are used for the workfow, with projected point geometries to areas in which slope is intended to be indicated. Reference the mesh to a Mesh component, and the points to a Point component. Right click on Point and select “Graft” from the drop-down menu.The point geometries must be grafted to allow further operations of the script to be applied to each geometry, rather than holistically to a singular point list with multiple points. _To provide the data for determining the slopes and to identify points, the mesh will be deconstructed to identify the normal and center points of each face. Using Face Normals, connect the output referenced mesh to the “M” input. _The input projected points will be compared to output mesh normal center points to fnd the normal center that is closest to the projected point location. This operation will provide an output normal associated with the found closest mesh center, allowing for the slope of that point location to be generated. Connect the output of the referenced points, Point, to the “P” input on Figure 4.2.1 Referenced mesh and project point geometries in model space Figure 4.2.2 Closest point calculation between face normal center points and referenced projected points CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 69


a Closest Points component.The “C” input, or cloud of points to search, will be the output center points,“ C”, from Mesh Normals. To provide all the necessary inputs to Closest Point, the “N”, or number of closest points to fnd based off the location of the referenced point input, must be specifed. Plug in a Number Slider with a value of 1 to “N”.This provides the function of solving for only one closest point per referenced point location, thus providing grounds to identify one normal and ultimate slope value. 04.02.01: Calculating slope value for specifed point location _To match the index of the closest normal center point relative to the referenced projected points to the associated normal, List Item will be used.The second output of Closest Points, “i”, provides the list item number of the points that are specifed Figure 4.2.3 Matching index normal center points to the same index normal values to solve for slope to be the closest to the referenced points.These values can be used to select the normal of the same index value, which correspond to the closest center points. Connect the output “i” from Closest Points to input “i” on List Item. This operation provides the normal of the closest center points to the referenced projected point geometries. _With the normal that align to the closest center points solved for, the slope percent of each can be solved for using the method displayed in section 03.02.01. 04.02.02: Generating slope direction Figure 4.2.4 Moved points and created vectors to represent slope direction To generate the slope direction as associated with each point for annotation, vectors will be produced that use the original coordinate location of the points and compare it to a moved location that will fnd a lower point on the same direction. The vector will be created between the original point location and the one of lower z value. 70 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


Figure 4.2.6 Completed slope annotation script _Connect the output points “P” from Closest Points to the “G” input on a Move component. The translation vector for the operation will be set in the negative z-axis. Place a Unit Z component on the canvas and supply a negative value to the factor input using a Number Slider. _In order to generate the lower point of the direction vector for the slope depiction, the moved points are compared to the mesh geometry location, and the closest point between the moved geometry and the mesh is created.This performance can be carried out through the use of the component Mesh Closest Point. Upon completion of this operation, a point lower in z value on the mesh than the projected point location for analysis can be previewed in model space. _Vectors between the output points from Closest Points and Mesh Closest Point will be generated through creating custom vectors.The Vector 2Pt component will provide this operation through creating vectors between these points. Connect the output “P” from Closest Points to the “A” input, and the frst output of Mesh Closest Point to “B”.The component Vector Display will be used to visualize the slope direction and output vectors.The anchor points of the vectors will be the original referenced points from model space, and the output vectors from Vector 2Pt will be the “V” input. Upon referring back to model space, the vectors of the slopes associated with the points for annotation will be previewed. 04.02.03: Label slope percentages on the center of the vector arrow Figure 4.2.5 Displayed vectors in model space Figure 4.2.6 Completed slope annotation script To provide a point location for the text of the slope percentages to be labeled, a line geometry will be created that corresponds to the direction and length of the vectors. This is performed to calculate the center point of the slope direction to CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 71


Figure 4.2.7 Output labeled slope points place the text upon.To create the line geometry Line SDL will be used, as it allows for the ability to set a start point direction and length in correspondence with the vectors. Connect the output referenced points to the “S” input. The output vectors from Vector 2Pt provide the direction, “D”, and the output vector lengths supply the “L”. _With the line geometry created, the midpoint of geometry can be calculated by connecting the output lines to a Point on Curve component. The default value of Point on Curve is set to “0.500”, as this value is that of the midpoint and does not need to be adjusted. _As presented previously, Text Tag 3D will be used to set the location and text to be labeled. The “L” or location of the labeling is the output midpoints from Point on Curve.The text to be displayed contains the output slope percentage values as output from Minimum. Connect a Number Slider to the “S” input on Text Tag 3D to control the size of the output font. The above references the need to label slope percentages, in varied or consistent areas of a proposed landscape, as relevant to a grading plan. The process streamlines notation and provides evaluation and analysis relative to slope, expanding upon the previously explored slope analysis script. 04.03_ PLANTING PLAN NOTATION Process overview The production of planting plans at a larger scale, involving specifcation of species distribution based on percentage and clustering, in comparison to overly articulated smaller scale planting zones can be automated in not only its creation but also in its annotation and preparation for construction.The example geometries and workfow provide an instance of planting strategy that is based in curated randomness. It is not to say that this workfow cannot be used for fner tuned planting plans, but rather shows the ability of the rapid generation of zones that are left to fuctuation.Through the spawning of a randomly distributed collection of point geometries, plant parameters such as distribution, symbol size, and type can be produced and notated.The point collection will be divided by percentage to allow for vegetal community dynamics to be considered. After the collection has been randomly divided, the base for the symbols of various radii as corresponding to the plant types are created.The center points of the symbols are that of the point collection and allow for the ability of all points and associated symbols of the same typology to be connected with lines, as well as be labeled with the abbreviation for the plant species.The workfow leverages computational randomization and characterization of geometries to aid in the production of planting plan graphic standards. 72 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


04.03.00: Generating random point locations on input geometry and randomly dividing point list by percentage _To create a scenario for the planting scheme, reference in a plane geometry using a Surface component.To populate the base input with points randomly, which will act as the center points of the vegetation, place a Populate Geometry component on the canvas. Connect the output referenced Surface to the “G” input, and a Number Slider supplying the desired number of points to the “N” input.This operation will provide points at random locations across the surface geometry. _The created points and their associated data list will be divided based off of percent division. For the means of this example, the list will be split into two sub-lists to provide the ability to have two species of vegetation populated.This process can be repeated to match plant community dynamics, where species revelatory to the community can be generated through identifying distribution patterns.The component, Random Split List, from the plugin Lunchbox will perform this function.The output points from Populate Geometry provide the list for division. Connect the output list to the “L” input on Random Split list.To provide the division of the list, connect a Number Slider to the “S” input. Enter a value between 0 and 1, with 0.5 allowing for 50 percent division.The example uses the value 0.7 to allow for output lists that are 70 and 30 percent. 04.03.01: Creating circle geometry around each point and labeling the plant type at the center point To create the planting plan symbols or circle geometry, the component Circle CNR will be utilized.This component allows a point geometry to dictate the center of the circle creation with the ability to set the radius of the output circle(s). Place a Circle CNR component on the canvas and connect the output split list of points “A” from Random Split List to the “C” input. The radius of the circles will be set by using a Number Slider, with the value associated to the plant species being represented. Connect the Number Slider to the “R” input.With this aspect of the script complete, circles of a specifed radius are placed around one sub-list of the overall populated point geometry. _To label the created plant symbols with the associated species abbreviation, the center point of the circles will provide location. Place a Text Tag 3D component on the canvas and Figure 4.3.1 Input base geometry populated with points and divided point list Figure 4.3.2 Previewed geometry in Rhino space of populated surface Figure 4.3.3 Circle generation around point locations and plant species labeling CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 73


Figure 4.3.4 Represented operations in model space presenting circle geometries and text labels 04.03.02: Connecting similar plant species within a radius with line geometry Figure 4.3.5 Connect similar points with lines based on radii operation Figure 4.3.6 Output labeled and connected plant symbol geometry connect the “A” output points from Random Split List to the “L” input on Text Tag 3D. With the locations provided, a Panel containing the nomenclature for species can be connected to the Text Tag 3D “T” input. All points corresponding to the frst output list of Random Split List should now be previewed with text depicting the species type. The above outlined process will be repeated for the second list of points, the “B” output from Random Split List. Typical to planting plan representation is the connecting of clustered plants of the same species. The following added function to the script will search among all points of the same list division to fnd adjacent points within a specifed radius and connect them with lines. Proximity 2D will be used to carry out the performance. Input the output “A” point list from Random Split List to the “P” input on Proximity 2D. The “G” input provides the number of closest points to fnd, this will be set to “1” using a Number Slider.The last two inputs on Proximity 2D, the minimum and maximum radii to search, will be input through the use of Number Slider components. The set values are dependent on the scale of the area being addressed in correlation with the density of the populated points. Adjust as needed.This fnal operation concludes the script outputting label circle geometry that are connected by plant species types. The script provides the ability for rapid generation of planting plans that are ordered by random distribution of plant species relative to planting notions aligned to ecological restoration or larger plant bed settings. The script can be altered to work within more formatted schemes, where points are separated by layer in model space and are input as separate lists to provide the symbol and labeling creation.This provides automation in construction documentation. 74 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


04.04_ PAVER SECTION DETAIL AND QUANTITY DYNAMICS Process overview The precision of digital modeling and related software capabilities has allowed for construction information to become streamlined, especially in the feld of architecture.Arguably, in landscape architecture, notions of building information modeling are not as apparent and as commonly utilized.This can be attributed to the nature of the medium, where customization and the allowance for fux is usually chosen over standardization.This is not to say that the detailing of material systems is always a new generation for each project trope. Some details, such as those relative to the construction of paver structure, are relatively fxed based on construction practices.The following script promotes a means to navigate modeling site detail, paving, in a fashion that produces not only the geometry needed to depict the aesthetic and performative aspects, but also the ability to generate output, detailing the construction and its quantities. Using the input of a simple plane geometry, the paving pattern will be generated along with the associated sub-grade. Upon the completion of the modeling operations, the produced geometry provides for the ability to generate quantities of materials needed in constructing the paving system, as well as the output section detail for further annotation to complete construction documentation. 04.04.00: Generate paving pattern on input surface geometry Create a planar surface in model space and reference the geometry to a Surface component in Grasshopper.This geometry will serve as the base for division into a paver pattern that outputs separate surfaces per each paver.The Staggered Quad Panel component from the plugin Lunchbox will provide this operation. Connect the output referenced surface to the “Srf” input on the Staggered Quad Panel. The number of pavers/divisions will be determined by inputting values from a Number Slider to the “U” and “V” inputs. _Upon the creation of the paver surfaces, they will be extruded to provide a 3D representation that will be used in outputting a section cut of the generated construction detail. Place an Extrude component on the canvas and connect the output “panels” from the Staggered Quad Panel component.To specify the direction and magnitude of the extrusion, Unit Z and a Number Slider providing the height of the extrusion will be utilized. For the purposes of this example a value of 0.333 will be used, as the model units are in feet and so this will allow for the paver geometry to have a thickness of four inches. Connect the Number Slider to the input “F” on Unit Z, and the output vector to the “D” input on Extrude. With this series of operations, 3D pavers are produced. Figure 4.4.1 Created paving pattern and extrusion operations Figure 4.4.2 Output 3D pavers as represented in model space CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 75


04.04.01: Creating sub-grade geometry relative to a typical paver on dense grade section detail To model the prepared sub-grade, the original input surface geometry will be moved and offset to specifed depths that align with construction standards. The input surface geometry will be initially moved to model and depict the sand setting bed. Place a Move component on the canvas and connect the output referenced surface to the “G” input. Unit Z will be used to provide the translation vector, “T”, input on Move. The value to be set for the z-axis movement will be negative 0.0833, as one inch is typically the depth of the sand setting bed. Set the value 0.0833 to a Number Slider and connect to a Negative component.The output of the negative component will be connected to the “F” input on Unit Z setting, allowing for the surface geometry to be moved in the negative z-axis by one inch. _With the input surface copied and moved one inch in the negative z-axis, the mesh can be offset to provide depth to the setting bed while producing a volumetric output for cost estimating purposes. Connect the output moved geometry to the“M” input on an Offset Mesh component from the plugin Pufferf sh.The value for the second input on Offset Mesh, “D” (offset distance), will be supplied from the Number Slider used for the moving of the surface. As the set value in the Number Slider is positive 0.0833, this will allow for the mesh to be offset in the positive z-axis. Figure 4.4.3 Offset mesh and volume calculation for sand setting bed and crushed stone base 76 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


_Having now offset the mesh, it is a closed mesh that holds a volume. Using the Volume component, connect the output offset mesh,“O”, to the input “G”.Through connecting a Panel component to the output “V” from Volume, the volume calculation is presented.The value is in cubic feet, as the model units are set to feet. The above process will be repeated for the creation of the crushed stone base.The moved value for the surface to be offset will be negative 0.5, as a typical metric for the depth of the stone base is six inches. With the completion of the stone base offset, the volume can be calculated, producing values regarding quantities needed for cost estimations. 04.04.02: Combining the created offset mesh sub-base geometry with the paver extrusions to produce a section cut In order to create the section from the generated geometries, they must be joined together to present as one mesh geometry.The output extruded pavers are breps and must be converted to meshes. Place a Brep Mesh component on the canvas and connect the output extruded pavers, “E”, to the “B” input on Brep Mesh. The output will produce the extruded pavers as mesh geometries. _To join the paver mesh geometries and the sub-grade mesh geometries, the Mesh Join Figure 4.4.4 Mesh joining and section cut operations CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 77


Figure 4.4.5 Output section curves previewed in model space 04.05_CONTEXT component will be used. Connect the output offset meshes and the output of Brep Mesh to Mesh Join. Hold shift to input more than one data set to the “M” input.This operation will output one mesh geometry. _With the pavers and sub-grade geometries as one mesh, a section cut depicting the layers of the detail can be created.The section will be placed in the center of the original input surface geometry and cut through the layers.The Area component will be used to fnd the center point of the input surface geometry and mark where the section cut will be performed. For this workfow, the section will be cut in the xz-axis.This can be adjusted to work in the yz-axis as well. Connect the output “C” from Area to the input on XZ Plane. This provides an output XZ Plane at the center point of the input surface, which will be used for the direction of the section cut. _To output the section curves, the component Mesh | Plane will be used.This component will fnd the intersection of an input mesh geometry and a specifed plane. Connect the output mesh from Mesh Join to the “M” input and the output plane from XZ Plane to the “P” input. Upon completion of this operation, a curve collection representing the section cut at the given point location is produced.This collection of curves can be baked and moved apart from the model in model space. The presented workfow addresses the requirement of construction documentation through providing a graphic depiction of the detail needed, as well as the quantifcation of the sub-base materials. While the plane and paver input for the example is generic, the referencing of a more specifc surface to a design proposal can be supplied to streamline construction consideration. The workfow provides automation to what can be a tedious task when preparing construction drawings. Facilitation is provided through generating not only geometry but also text labels, which can be adjusted in formatting and appearance. Such drafting is typically completed in other software that is more common to the feld of landscape architecture, such as AutoCAD.This other software does not allow for such changes to be made rapidly.This function of annotation can be applied to previous examples of scripting where landform and site modeling is being continually adjusted, resulting in a constant updating of the 3D model as well as the output notation.The presented scripts aid in not only labeling and drawing generative operations, but also in the validation of the proposed landscape augmentation to meet standards of performance.This extension of analysis through construction document preparation provides a recursive ability to 3D digital modeling. Rather than the output modeling becoming static and estranged to the design process, it becomes 78 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 04: CONSTRUCTION DOCUMENTATION


a dynamic aspect that is continually engaged. It has arguably become common practice that the digital modeling of designed landscapes follows the pressures and pursuit for advanced illustrative-based graphic representations.While this is a beneft to modeling designed landscapes, as it provides clarity of vision for the design as well as to the associated parties so inherent to design felds, it does not fully harness the information that is created from such computational bases.This chapter’s workfows allow for provocation in this matter while streamlining processes between the typical professional design stages, and accelerating the production of both presentation and construction documents. CHAPTER 04: CONSTRUCTION DOCUMENTATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 79


CHAPTER 05 DIGITAL FABRICATION Facilitation and f le preparation In correspondence with the increased presence of digital modeling in the feld of landscape architecture, as well as with greater accessibility to associated equipment, digital fabrication has become a facilitator in the production of study and fnal models, both in professional practice and in academia. Professional design f rms and universities providing use of digital fabrication equipment in-house is becoming increasingly common. How to exploit such equipment is now taught in academic settings as a skillset that is in line with traditional model making.The mastery of such equipment and understanding the manner in which it interprets and constructs physical 3D objects from the digital realm have provided expanse in material studies and simplifcation in the ability to quickly generate physical models for comparative evaluation. The use of 3D printers, laser cutters, and CNC routers have infltrated, and become the standard of producing working and fnalized models. The utilization of such equipment encourages increased production of landscape scenarios or objects, as it is far less time consuming than analog built models of the same clarity. It is not to say that the craft of modeling is diminishing, but rather the craft itself is moving toward the digital realm.The creation and preparation of fles needed for digital fabrication must be conceived and modeled strategically so as to avoid failure in production.Traditional modes of modeling landscape have been adapted and streamlined to the use of these fabrication methods. Typical to modeling landscape is the notion of representing and evaluating topography. While contour, or “pancake”, models provide clarity in grading schemes, they rely upon the use of certain materials that align to analog cutting. While there is also limitation to the material palette to be used by digital fabrication, there is the ability to exploit the characteristics of the materials used in the process. Agency of model making is still present through choosing fabrication process and material. Dependent upon what is to be represented by the model, the digital fabrication method and associated material can be chosen. Laser cutting lends itself to expediting traditional representation strategies relative to grading and landform assessment, through its characteristic of being an additive process that embodies details, along with the ability to combine multiple materials in a 2D and 3D format to present data.While laser cutting streamlines preparation of the model’s composition, physical assembly and craft is required. Fabrication through 3D printing works as an additive process that enables the generation of usually a singular material.This process provides the ability to generate multiple objects or landscape scenarios that can be compared to one another through the legibility of uniformity of material with no post assembly.The choice in material used for 3D printing can be leveraged to provide added function to the model.The use of ABS or other plastics provide durability of the model, and allows for other materials or experimental processes to be imposed upon the model as a means of analog analysis. Such materials also allow for a long lifespan.While 3D printers can provide durability through material specifcation, they can also help to provide models of fuctuation through the use of aggregate materials than can be further tested to promote an observational knowledge of material failure, which can align to such landscape actions as erosion. As with 3D printing, CNC routing also facilitates replication of models to prepare for a series of further additive evaluations. In comparison to 3D printing and the assembly of laser cutting, CNC routing is a subtractive process where material is cleared away to sculpt the desired form.Though CNC routing typically works from one homogeneous material, multiple materials can be laminated together to provide visualization of data portrayed by the model at various depths. CNC routing has the ability to use multiple tools, paths, and patterns to provide further detail to the model, which can act similarly 80 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 05: DIGITAL FABRICATION


to that of a cartographic device. Each fabrication method can be utilized to evoke specifcation regarding the model’s intent and performance.The presented workfows will focus on 3D printing and laser cutting to facilitate fle set up and preparation. 05.01_ CONSTRUCT BASE ON MESH TERRAIN MODEL FOR 3D PRINTING Process overview In order for a digital model to be 3D printed, it must have a minimal thickness.Typically, the thinnest dimension to print should be 0.125 inches to ensure that the model does not fail based on lack of dimension. Landform or terrain models are typically generated via 3D printing.To begin the fle preparation for the 3D printing of a site model or design intervention, the mesh or surface must be a singular geometry.This geometry represents itself as a continuous geometry that does not have dimension of thickness in the z-axis, but rather is the geometric representation of the points or vertices that embody its construction. The presented process will deconstruct a mesh geometry and compute the lowest z value.The boundary curve of the mesh will be generated and moved to the lowest point of the mesh. Once moved, the lowest point of the mesh (the boundary of the mesh) can be further translated in the negative z-axis to a desired depth, which will create thickness to the mesh and a base for 3D printing. 05.01.00: Deconstruct mesh and fnd lowest point and z value The frst operation of the script deconstructs the mesh into its vertices and further deconstructs each point into xyz coordinates. With the mesh vertices deconstructed, the z values can be isolated and the list of values ordered in ascending order, starting with the lowest value.This operation provides the closest offset distance that can provide a base that encompasses the depth of the mesh. _Using Mesh component, reference in a mesh landform or terrain geometry into Grasshopper. Connect the output mesh to a Deconstruct Mesh component. Use the Deconstruct component to provide the z values of the output vertices of the mesh. Connect the output “ V” from Deconstruct Mesh to the input “P”, point, on Deconstruct. _Having now calculated the z values of the mesh vertices, the list of these values can be reordered to create a new list that starts with the lowest value and ends with the highest value. Place the Sort List component into the workspace. The two inputs that Sort List calls for are “K”, a list of sortable keys, and “A”, a list of values to sort synchronously with the keys.The goal of this action is to order the z values in ascending order and output the vertices of the mesh in the order that is associated with their z value, to output the lowest point. Connect the output “ Z”from Deconstruct to the “K” input on Sort List, and the output “V” from Deconstruct Mesh to the “A” input. _With these connections, the previewed geometry in model space will represent all of the mesh vertices. To separate the point of the lowest z Figure 5.1.1 Deconstructed mesh and ordered vertices based on z value Figure 5.1.2 Preview of lowest point geometry CHAPTER 05: DIGITAL FABRICATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 81


05.01.01: Generate mesh boundary curve and project to lowest point Figure 5.1.3 Generate mesh boundary curve from naked edges, join edge curves, and project to the mesh lowest point Figure 5.1.4 Projected mesh boundary value from the list, the List Item component will be used. Place List Item on the canvas and connect the output “A”, the synchronous values, from Sort List, to the “L” input.The List Item component allows for a specifed item to be sequestered from the other values in the list. Since the input list of points being output from Sort List are in ascending order of z values, the lowest value, and thus the lowest point geometry in the mesh, are the frst items in the output lists. The default item index, or “i” input, on List Item is 0, or the frst item in the list. Because the lowest point is the frst item in the list, no value has to be set for the “i” input, as the default value embedded in the component provides the necessary input.With the output of List Item previewed, the lowest point on the mesh should be visible. With the lowest point calculated, the boundary of the mesh can be created to help in the production of creating a bottom to the base of the model. Knowing that the lowest point determines the minimum the base can be, the created boundary of the mesh can be projected to this point, making it a planar curve. _To extract the boundary curve(s) of the mesh, connect the referenced mesh geometry to a Mesh Edges component.This component effectively generates the wire frame of the mesh—all of the curve boundaries of the faces that create the mesh. The frst output, “E1”, provides the naked edges.These are the edge curves that are not joined to connecting faces, meaning all of the curves that make up the outmost edges of the faces that border the mesh. Upon output, the naked edges are a collection of curves, one per each outmost face edge. _Use the Join Curves component to join each individual naked edge curve into one closed curve. This creates the boundary curve of the mesh. _Place a Project component onto the canvas. The geometry to be projected is output closed curve from Join Curves. Connect the output “C” to the input “G” on Project. The second input parameter for Project requires a projection plane. The plane to be projected to is the plane associated with the lowest point of the mesh. Connect the output point from List Item to the “P” input on Project.The curve will now be planar and located at the lowest point location. 82 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 05: DIGITAL FABRICATION


05.01.02: Move the projected mesh boundary curve and create closed mesh The fnal portions of the script allow for the projected mesh boundary curve to be moved in the negative z-axis to allow for a thicker profle and base to the model.The curve is moved and the sides of the model are created through lofting between the original boundary curve and the projected planar boundary curve. This creates sides to the model with the terrain functioning as the fourth side. The resultant brep will be capped to enclose the bottom, creating the sixth side. With the lofted sides capped, the brep can be joined to the input mesh terrain model.This creates a fully closed model that can have its thickness adjusted and updated. _Connect the output projected boundary curve to a Move component. The translation vector will be in the negative z-axis. Create a Number Slider with a negative value for the factor of the translation. Connect the Number Slider to a Unit Z component.This provides a vector in the negative z-axis.The output vector from Unit Z will be connected to the “T” input on Move. The projected curve can now be adjusted to provide a thicker base. _To create the sides of the model, use the Loft component.This component provides the same function as the native loft command in Rhino3D. Connect the output curve form Join Curves to the “C” input on Loft. Holding shift, drag the output curve from Move, “G”, and connect to the “C” input on Loft. The output will be an interpolated brep between the two curves. _The lofted geometry will be an open geometry. To close the bottom of the loft, as it is planar, use the Cap Holes component. As with loft, Cap Holes functions the same as the cap command in Rhino3D. Plug the output geometry from Loft to Cap Holes.This action completes fve of the six sides of the 3D object.The original input mesh of the terrain will surface as the fnal side to be joined. The Mesh Join component will be utilized to convert the brep to a mesh and join to the terrain mesh. Connect the output from Cap Holes and the input mesh geometry to Mesh Join. Right click on the “M” input on Mesh Join and select “Flatten”. A singular closed mesh is output. The script provides an output mesh that is prepared for 3D printing through providing a closed Figure 5.1.5 Created model sides and joined meshes Figure 5.1.6 Output closed mesh geometry CHAPTER 05: DIGITAL FABRICATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 83


geometry with a base that will allow for successful printing.While this process can be completed through modeling in various ways in Rhino3D without the aid of scripting, the script provides a simple input and output that can be adjusted for the thickness of the model to facilitate 3D printing and the desired model needs. 05.02_ GEOMETRY CREATION FOR LASER CUT WAFFLE LANDFORM MODEL Process overview Continuing the notion of fle creation and preparation for digital fabrication methods, the following workfow presents the ability to generate the output geometry needed to produce a laser cut waffe model of a terrain. Similar to a contour model, the waffe model approaches physical representation of a landscape through the compilation of planar cuts of geometry.The geometry for such a model approaches a series of section cuts in the xz and yz planes. Rather than the typical planar approach to a contour model that navigates cutting the geometry in the z-axis, multiple axes of the geometry are cut to provoke a representation of the sectional differentiation that embodies the terrain.This model typology provides an output that characterizes itself through a structural lattice of section cuts with void spaces.This type of model elicits for a response of expanded representation, where further materials can be added to the void spaces to provide another level of visualization through the model.Through using the input of a 3D mesh terrain model, the script produces the cuts that will be processed by the laser cutter. 05.02.00: Convert input surface to a mesh geometry and thicken mesh To prepare the landform model for the operations of the script and the intended output, the geometry of the model will be provided a thickness so as to create a sectional profle with depth. The provided depth can be controlled to allow for authorship in the aesthetics and performance of the output physical model, as well as to ensure proper construction. The presented workfow allows for the use of either a base geometry that is a surface or a mesh to provide extended applicability of the script. With the input of a surface geometry, it will be converted to a mesh to allow for simplicity in providing thickness to the geometry. If using a mesh as the input geometry for the script, the presented portion of the workfow that converts surface to mesh can be bypassed. Figure 5.2.1 Input surface geometry converted to mesh _Using a Surface component, reference in the input model geometry. _To convert the surface to a mesh geometry, place a Mesh Surface component on the canvas and connect the output referenced surface to the “S” input. In order to create a mesh that is accurate to the input surface geometry, the UV count that is relative to the constricted output mesh must be specifed. As with typical mesh construction, the more faces and vertices that comprise the mesh, the more intricate and accurate the mesh portrays itself. Connect a Number Slider with 84 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 05: DIGITAL FABRICATION


a relatively high value to the “U” and “V” inputs on Mesh Surface. 100 is used in this example to set the UV divisions of the output mesh to an accurate resolution. _With the surface converted to a mesh geometry, the mesh can be supplied a dimensional depth. The generated depth functions as, and is representative of, the section profle that will ultimately be laser cut. Using the Offset Mesh component from the plugin Pufferf sh, connect the output mesh from Mesh Surface to the “M” input. The second input on Offset Mesh, “D” (or distance), provides the input unit value of what the offset operation will produce. The direction in which the mesh will be offset is dependent upon the orientation of the mesh in model space—its normal and positive or negative value input. With the assumption that the landform model is oriented typical to the cplane in model space, connect a Number Slider with a negative value to the “D” input on Offset Mesh. This action will output a solid mesh with thickness offset in the negative z-axis. 05.02.01: Provide section cuts of the solid mesh in x and y through contouring The operation of creating section cuts through the solid mesh geometry can be performed as the thickness has been supplied to the geometry. Ultimately, the outlines (curve boundaries of the section cuts) will provide the necessary output geometry to be used in the digital fabrication of the model. After the section cuts have been generated, those corresponding to the x- or y-axis will be moved in to the positive z-axis.This is done to allow for further operations that will create the slots relative to the intersections of the curves to allow for the construction of the physical waffe model. The unit value of the translation is the thickness of the material that is to be laser cut. _To contour the output offset mesh, place a ConFigure 5.2.2 Output offset solid mesh geometry tour component on the canvas and connect the output mesh to the “S” input on Contour. The “N” input requires the input data of a vector to provide the direction in which the geometry is to be contoured.The frst set of contours to create cuts in the geometry will be in the y-axis. Using the component Unit Y, plug into the “N” input on Contour.The last input of data needed is the distance or interval between contours. Connect a Number Slider with a set value, to dictate the distance between the contours, to the “D”, distance input, on Contour. Figure 5.2.3 Contour operations on mesh to provide section cuts CHAPTER 05: DIGITAL FABRICATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 85


Figure 5.2.4 Preview of contoured geometry in x and y axes 05.02.02: Create slits at the intersections of the contour cuts in the mesh Figure 5.2.5 Generation of slits at the intersections of the two sets of contours Figure 5.2.6 Output section curves and surfaces with slits _The same process can be repeated to provide the contouring in the direction of the x-axis. Copy and paste the cluster of components comprised of Contour, Unit Y, and the Number Slider. Substitute Unit X for Unit Y for the “N” input on the copied Contour component.To keep the same number of cuts and divisions in the geometry, the Number Slider value for the copied contour operation will remain the same. _To create the ability for the cut pieces of the model to intersect in a manner that allows them to slide together via cut notches or slits, one set of the contours needs to be moved in the z-axis. For this workfow, the output contours in the x-axis will be moved to the positive z-axis. Connect the output contours from the copied contour operation to the “G” input on the Move component. For the translation vector, e] “T” input, on Move, a Number Slider with the value representative of the thickness of the material to be cut by the laser cutter is supplied and connected to a Unit Z component.The output vector from Unit Z with the supplied magnitude from the Number Slider can now be connected to the “T” input on Move. To further prepare the planar geometry of the contour cuts for fabrication through laser cutting, the intersections of the two sets of contours must be found to create slits.The output digitally fabricated model is comprised of interlocking sets of sections cuts.To allow for the assembly of the model, the cuts must slide into one another at their intersection points, creating the gridded representation.The following steps of the workfow allow for the automation of generating the cuts for the assembly, and outputting the 2D outlines of the sections with the slits. _The outputs of the two sets of the Contours provide planar curves. Using the Region Slits component, the data sets of the contour curves can be input to create the output slits at their positions of intersection. Plug in the output “C” from the y-axis contours, and the “G” output from Move for the x-axis contours, to the “R” input on Region Slits.As each output contour is existing as a list of its own, the “R” input must be fattened. Right click on “R” and select “Flatten” from the drop-down menu.The second variable to be provided for Region Slits is a value to defne the width of the slits.The width for the slits 86 PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS CHAPTER 05: DIGITAL FABRICATION


should be that of the thickness of the material to be laser cut. Connect a Number Slider with the desired thickness value to the “W” input on Region Slits. _The output “R” of Region Slits provides an output geometry of the section cuts with slits in the form of either curves or surfaces. Attach a Curve component and a Surface component to “R”. For the purposes of laser cutting, the curves provide the data needed, and the output surfaces allow for a visualization and further working digital model of the landform conceit. With the completion of the workfow, the necessary parts for fabricating and building a physical model of a terrain as represented through specif ed section cuts is produced.The provided script, as well as representation, can have more intelligence built into it as based on visualization conceits.The spacing of such contour cuts can allow for irregularity to call attention to physical differences of the landscape. Also, multiple materials can be chosen to depict other parameters and layers of the landscape. 05.03_ PREPARATION OF GEOMETRY FOR LASER CUT CONTOUR LANDFORM MODEL Process overview Continuing to address fle preparation automation for digitally fabricating models with the use of laser cutting, this workfow utilizes the previous two algorithms. Using the landform model prepared for 3D printing, one which is a closed mesh with a base, the model can be used to produce closed contour curves as needed for creating a contoured, laser cut model.The generated curves stack onto one another to represent the elevation-based form of the model.The output of the workfow not only generates the closed curves needed, but also automates their planar ordering apart from the model, with the number in which each piece is to be cut and assembled assigned. Leveraging the ability to fnd the center of each contour as a closed geometry then moves them away from the model and numbers them based on their item index in the data list. 05.03.00: Contour creation and writing of function to provide movement and spacing of curves for laser cutting As with other presented workfows, the input geometry will be contoured to produce curves that provide reference to its formal expression by cutting through the geometry at a specif ed interval and vector direction.Typical to representing and understanding landscape through metrics, the model surfaces provide reference to elevational changes by vertically contouring the geometry from the lowest to the highest extents. _Using a closed mesh with a base, reference the geometry to a Mesh component.The base and profle of the mesh allow for the creation of closed square contours, which do not depict any Figure 5.3.1 Contour and generate the square root of the area calculation of the mesh landscape model CHAPTER 05: DIGITAL FABRICATION PARAMETRIC DESIGN FOR LANDSCAPE ARCHITECTS 87


Click to View FlipBook Version