Coding the Heydar Aliyev Centre in Grasshopper (Part 3)
Updated: Jun 11, 2021
Now that the panelling code has been successfully produced on a small scale, I am able to open each component and right click the master surface command at the beginning of the code tree and select ‘set on surface’ this then applies the code to the components. From there I can change the number of U + V panels to what appears aesthetically appropriate when comparing to site images of the building.

The curves have been successfully sequenced it’s time to code the piping to be boolean differenced creating the panelling grooves.
This is done by using a data command containing the information for our horizontal and vertical lines both of which can be given piping commands for which we can attach a multiplication command to the radius allowing the diameter to be specified. In this instance 0.09 is visually appropriate.

Whilst these commands worked to produce the piping as desired, they would only reach the edges of the components, leaving the sides capped as seen in the image below. This would have caused issues with boolean difference later as Rhino has issues subtracting material from two objects end of start at the same point in space. To fix this the addition of an extrusion command extended the pipes beyond the edges of the model by 1mm. These pipes could now be capped using the cap command creating a closed solid.



From here the cap command can be baked into Rhino allowing me to Boolean difference as discussed in depth on my 'Taking a look at Grasshopper' blog.

Now that the code has been completed, it's time to apply it to my components. To do this the panelling for the Heydar Aliyev Centre must be baked into Rhino and converted into a 'Mesh'. From here we can 'OffsetMesh' and convert 'MeshtoNURB'. This reverts the building back into a workable polysurface to 'Bake' in the piping and Boolean difference.

Building surfaces pre-panelling

Building surfaces post panelling






Piping baked into Rhino

Piping pre-boolean difference

Example of finished component

Finished code

Finished code for all components with varying U, V divisions
Comments