The further explained grasshopper scripts on the building volumes generation are the output of the DigiWo reserach cooperation between the Bauhaus University Weimar, Decoding Spaces GbR and DIPLAN Gesellschaft für Digitales Planen und Bauen GmbH. This research was supported by the ZukunftBau Program by the Federal Ministry of the Interior, Building, and Community.
In the following tutorial, you will get introduced to a set of User Objects & Components for the semi-automatic generation of residential multi-family buildings, enabling a user to generate either an urban block or a slab typology, as well as provide the scripts with a predefined sequence, that can generate variations with minimal guidance. The video below presents the concept of how the generation process is organized.
Iuliia Osintseva (Author), Reinhard König (Supervisor), Sven Schneider (Supervisor), Martin Bielik (Supervisor), Andreas Berst (Contributor), Egor Gavrilov (Student Assistant), Martin Oravec (Student Assistant)
If you prefer reading over watching – here is the paper on the block generation.
Topics covered in tutorial:
Block Generation Components
1a. Basic Block
- Delete Edges
- Random Breaks
- Reduce Height
- Towers (& Envelopes)
- Yard Buildings
Slab Generation Components
2a. Single Plot Generation
2b. Subdivision of Complex Concave Sites
2c. Multiple Plot Generation
Block Generation Components
1a. Basic setup.
In order to start the generation, the minimal requirement is a closed planar polyline in Rhino, representing the construction site. Additionally, you can add a layer with lines, representing the street axis, as well as the neighbor buildings context on a separate layer. Both those layers will then be considered during the generation.
It is as well required to select the location of the building area in order to derive the correct spacing (see the video above to learn about the spacing concept). Further, you can select multiple values for the building depth to try out, as well as set up a range of the floors count for the basic block. The output of this step is a closed block (or a range of those) around the construction plot perimeter, considering the required spacing based on the block height.
It is possible though, that the spacing should be neglected, in case that your construction plot is placed within existing blocks and thus you should continue the street profile, placing the buildings right along the plot edge. In this case, you can just draw the lines in Rhino to indicate where the spacing should not appear, and insert them into „Baulinie“ input.
The resulting generations are gathered at the „House Instance“ data type, which is a combination of six different parameters: plot after spacing; surfaces; outlines (façade lines towards the street); inlines (façade lines towards towards the inner yard); depth of a building (as a number), floor count (as a number). Using Surface and Floor Count you can display the geometry preview as well as calculate the basic performance indicators, such as FAR, Site Occupancy, or Total Built Area.
1b. Actions over the Block.
1b.1| DELETE EDGES
This action can delete one or multiple edges to reduce the density or to solve a too narrow concave block intersection. You can select the edge to start with and decide on the number of edges to delete.
1b.3| SETBACKS CORNERS
This action creates a setback at the corner if the length of the adjusting edges is sufficient and the setback does not cause an intersection. You can select the edge for generation, dimensions range for the setback parameters and a seed for the randomness.
This action creates passageways in the block‘s corners, thus avoiding the creation of corners that are rather difficult for the later apartments placement. You can change the width of the passageways as well as the directions of the cuts.
This action creates a spacing envelope, as well as both summer and winter solar envelopes (with the help of LadyBug tools). Informed by those envelopes, you can place buildings that act according to the local requirements, or that are placed to minimize the influence on the lighting conditions for the neighbor buildings around the given site.
1b.| YARD BUILDINGS
This action creates buildings within the block yard after the user-drawn axis. You can select the depth of the yard buildings as well as their floor count.
1b.2| SETBACKS EDGES
This action creates a setback along an edge if the edge length is sufficient. You can selecte the edge for generation, dimensions range for the setback parameters and a seed for the randomness.
1b.4 | RANDOM BREAKS
This action creates passageways through the block perimeter at either random, or user-driven spots. You can select the total amount of area to delete or the total width of the passageways, as well as the number of random options to try out per input block.
1b.6 | REDUCE HEIGHT
This action cuts the block through the corners and reduces the floor count of some of the building fragments. Here, you can indicate the total amount of area to delete. This actions creates several different height profiles per input block.
1b.8 | TOWERS
This action places one or two towers along the existing block perimeter in order to gain extra area. You can select the desired area per tower, restrict the extra floors, or assign a point where the tower should be located if you dont want random generations to appear. The limit of tower height is resulting from the envelopes script.
1b.10 | ROOFTOPS
This action creates offsetted rooftop floors over the block perimeter. You can decide on the orientation of the buildings (toward street/yard), depth, and their overall amount.
1c. Examplatory Generation Sequence
In the following video you‘ll find an examplatory combination of actions for generating a bunch of various building volumes for one construction site, including the parameters setting for each of the actions. Keep in mind that the suggested sequence is not the only possible one, and you can try to arrange actions in another way, and thus receive different results.
*please remember to unblock the .gha components before inserting them into your Libraries folder