Various balconies on a facade


Categories: Tutorials

Tagged with: | | | | |


The tutorial shows a building with a facade having varieties of balconies: different depths and different shapes.  For an architect point of view it shows the building has a big varieties of apartment types inside, which is a rich feature. In this project, we will show three different types of balconies.

render grasshopper facade balconies

code grasshopper


1) The first step is to draw the shape of the façade building. It can be a flat façade of a curved one, or anything. Here, we use a curved façade.

2) The second step is to separate the facade into several cells, which will represent the apartment units and the future balconies. We are on surfaces so we can use Domain² and then Divide Domain². But we can also work with the Lunchbox plug in (Quad Panels is used here). With it, we can have flat cells on a curved façade, which is better for economical reasons when designing.


code grasshopper 1


code grasshopper 2







code grasshopper 14


3) We want different apartments to have different types of balconies so could use the Dispatch tool and a pattern to have a balcony diversity. We can be playful with the pattern. Here, we want to work with columns (basic building with repeated floors) so the Dispatch tool is not the best solution because the pattern would change for a different number of floors. Instead, we can use data trees. By using Partition List, we take all of the cells and put them into X lists of Z cells (Z is the number of floors). We create columns. With the Split tool, the tree is divided in two for the two types of balconies on this facade.

code grasshopper 1


4) First kind of balcony :

The Deconstruct Brep and List item tools permit to get the edges lines of each cell (“Cell right edge”, “cell bottom edge”,…).

We will use the low points of the right and left edges to create two new points for the top edge of the balcony. We use the tool Evaluate Curve which will extract a point from the curves. We “reparameterize” to make it go from 0 to 1. We choose with the parameter the height of the future balcony. The problem is that the same parameter on both curves moves the point in opposite direction, so we need to type “1-x” in the expression of the parameter of the second Evaluate Curve tool. We now have all of the edges of the balcony, we can start to draw the balcony shape. The first kind of balcony we draw is the triangle shaped.

We use the top and the bottom lines of the balcony. We use the tool Evaluate Curve which will extract a point from the curves. We “reparameterize” to make it go from 0 to 1. We choose with the parameter the orientation of the future balcony triangle. Then we move those two points forward by using a y vector which gives a direction to extrude the balcony. The balconies will follow the y direction even if the facade is curved. We draw a line to connect the two new points and connect the last edges of the balcony. We use Loft and we select Options>Loft Options>Align sections and Straight. With Loft we can join the lines to form the balcony. We don’t forget to close the floor of the balcony with Join and Boundary.


code grasshopper 2


5) Second kind of balcony :

We do the exact same thing for the second kind of balconies with two points to extrude instead of one.

code grasshopper 3



code grasshopper 12

6) Third kind of balcony :

We do the same thing for the third kind of balconies. Here, we chose another façade so the direction of the vector for direction will be X instead of Y. To form round balconies, we use Loft Options>Normal.

code grasshopper 4code grasshopper 11

7) To render the balconies, the Custom Preview and Colour swatch tools permit to give colors to the balconies.

code grasshopper 9

8) We want the draw the frames of the windows. We use the Panel Frame tool from the Lunchbox plug in, we chose the thickness of the frame. With the Custom Preview tool, we also give a color to the frames and the windows.

code grasshopper 10

code grasshopper 15

Conclusion – whole comments together :

code grasshopper annote

To play more, we could use Random and have the balconies in random places. We could also use an attractor to orientate the balconies towards the sun, or even use the ladybug plug-in to know the sun orientation from the chosen site. Or we could as well use Remap, Bounds and Construct Domain to gradiently change the depth of the balconies. Etc

Lunchbox plug-in :
plug-in by Nathan Miller // (free after creating an account)

Download Rhino and Grasshopper files