Thursday, December 3, 2015

Project 2 - Beethoven Concert Hall (Automated Modeling by Dynamo)



Building Information Modeling in Architecture 

    This is a follow-up on my previous video which was about modeling Beethoven Concert Hall designed by Zaha Hadid. 





    For that project, I created a mass then created adaptive component to apply on it. However, at the end, I had to select the components one by one and either change them to another panel or change their instance parameters. So, I decided to benefit from Dynamo and do some automation. The objective is to randomly select a portion of panels and replace them with other once, again a random basis. 

     Since we might need to change certain percentage of panels on each surface, I initiate the graph with selecting the divided surface. I am using a slider to change the percentage of panels that needs to be changed, then using a "Random List" node I make a list of random indices within the range of the selected surface. 




      Sine there is no replace node in Dynamo, I need to create new panels in the same location as the existing ones and then erase the existing panels. So, I use a node to retrieve the location of the existing panels. The new panels are created using the same location points. Then, the existing panel will be erased by use of custom node because Dynamo does not have an erase node.




    I just need to mention that random selection is done by creating a list of random numbers which would be the indices. After randomly selecting a panel, it can be replaced by any of four existing panels and this selection needs to be done randomly as well. So a string of random integers within the range of 1 to 4 is created and the replacement is selected based on the associated number using a set of conditional statements.






    The next step is to modify the parameters of created panels, again on a random basis. Another string of random integers within the range of 1 to 4 is created to drive the base vertex parameter of the new panels.




     The number of solid and transparent sections of each panel needs to be modified randomly as well. Since this is driven by a set of binary parameters, another process is used to generate random string. Briefly, if a random integer within the range of 0 to 7 is written in binary mode, a string of 3 binary numbers is generated. 




     The main challenge in this process is about the nature of Dynamo. When Dynamo graph is run on a surface, it works perfectly for the first time but if the same graph is run on another surface, the panels created in the first run will be removed. It seems that Dynamo remembers what it creates to change it again and again. The solution to this problem is to delete the node that creates the panels and place a new node there. Then rewire it the same way and run it again.

Also, after loading the mass into the project, I decided to change the color override of glasses. The challenge was that the glass element was not separate from the frame when I created them in the first place and I needed to recreate the combination using a separate family for the glass part.








Tuesday, November 3, 2015

Project 1 - Beethoven Concert Hall



Project 1 (Fall 2015)

Building Information Modeling in Architecture 


For the first project, I decided to model a building designed by Zaha Hadid. It is Beethoven Concert Hall and is located in Bonn, Germany.


courtesy of : http://www.zaha-hadid.com
courtesy of: http://www.zaha-hadid.com

Looking at the building, it can be noticed that the mass itself has both smooth and sharp edges. In other words the mass consists of polylines with smooth or curved edges. So a very essential component to create the mass is to create such polylines. Also we should be able to control the curvature. I created an adaptive family with eight placement points, assuming that there is no need for more points. Then, I placed more reference points on the reference lines and created a spline through those points and also made the ‘Normalized Curved Parameter’ of each of these points associated with an instance parameter so that we can control the vertices.
Since I will need polylines with different numbers of vertices (like for example sometimes 3 or 5), I added an instance parameter named “points”. It controls the visibility of the placement points.



Using this parametric polyline, I drew layout of the exterior surfaces at the base and at the top and created those surfaces. By moving the adaptive points and changing the curvatures at each point, I am able to modify the mass.


The next step is to create the façade panel. By looking at the drawings and renderings, I noticed that panels have 4 different types.  Also, I should be able to rotate each panel within the curtain system. Moreover, I should be able to make each segment of a single panel either solid or transparent.

I created two adaptive families with four placement points to represent solid and transparent segments. I also created each of four panels using solid and transparent adaptive families and added parameters to hide/unhide those and therefore I am capable of making each segments solid or transparent.


    A major challenge was to create the ability to rotate the panels (90, 180, 270) pattern based curtain panel does not have such a parameter so I did a trick. I created a 1×1 curtain system. Now, I am able to rotate the panel using rotation parameter of the 1×1 curtain system.





   The next step is to assign the panel I have created to the surface of the mass. Another challenge I experienced was to divide the surface of the mass based on the drawings and renderings.





    In addition to simply dividing the surface by fixed distance or fixed number, I used the “intersect” tool. I drew lines and project those on the surface of the mass to create the grids.





    After assigning the panels to the surface, they can simply be selected and changed to another panel or using the parameters, the segments can be set to solid or transparent. The mass can be loaded to a project file to do the renderings and to add more details.



    The structure of the solution and the use of different families, can be explained by the following hierarchy diagram.


The following are the initial renderings of the model I have created.