This project is an extension of the Project 1. Dynamo has been explored here to see its advantages and extra features over Revit. Three scripts have been made each having a different purpose.
Fig 1: Exterior Rendering with all 3 scripts implemented
Script 1: Controlling panel rotations
In my first project, I linked each panel on the inclined towers with the inclination of the respective tower. This inclination of the tower was calculated by a formula (user defined). In addition each panel had to be selected and the rotation had to be linked to the tower inclination. This involved manual work. In addition the panel rotation could not be changed as the inclination was changing with the height. In order to make this better Dynamo program was created
Hence, in the dynamo code the panel inclination changes with the height. Also all the panels can be changed simultaneously and no manual work is required. In addition the inclination is calculated by the program and hence scope of error is also removed.
The script starts with selecting all the exterior faces of the towers. These are combined in a list. When these are combined the surfaces appear as list of list. To bring these in one list only, list mapping was used. This helps us to run the entire program on different faces without copying the entire code for each face. Further a Lunch Box node was used to divide the surfaces. This node is more advanced than the Dynamo node as it gives the dived surfaces and points together. Using Dynamo nodes to find the points of the divided surface is a tiresome process. This can be seen below.
Fig 1: First part of Script 1
Once we have the divided the faces, a normal node was used to find the normal of each divided panel. The orientation of the normal was found with the z axis (reference axis) by using dot product. Some math operations were done to get the angle of rotation of the panels. This angle was then assigned to the parameter rotation angle parameter of the panel family. This part of code is seen below. The output can also be seen.
Fig 2: Second part of Script 1
Also if the opening of the towers is changed in the family then Dynamo automatically updates the inclination of the towers and hence the rotation of the panels. This can be also be seen below.
Fig 3 : Rotation of panels changing with the height hence the inclination of the surface
Script 2: Modelling trusses
This feature was added to project. The actual Marina bay sands does not have this but I thought it would add a creative aspect to the boat structure. The basic idea was followed from the Auto desk tutorial (Module 2 part 3). The script starts with selecting the boat face. Then planes are created on the edge of the boat at fixed distances. The intersection of these planes are found on different curves of the boat face. This part of the code can be seen below.
Fig 5: Different curves used for modelling
Then various listing operations were done to get these points in order to create the adaptive components. This was most challenging task. The points were list of list of list values. Hence mapping was done to reduce the listing order. Then a list was created with these 4 list (each representing one curve) and then transposed.
Fig 6: Listing operations to obtain points for adaptive component
Fig7 : Final output of the trusses
Fig7 : Final output of the trusses
Script 3: Panel on Boat
This is also an additional feature given to the project. The boat surface is selected first and then divided using the same Lunch Box function for triangular geometry used earlier. The idea was to change the color of the panels. Instead of using the Override color in view, read image or excel to control this I decided to use listing operations to randomize the color of the panels. To change the color I made various materials of glass having different colors. A list of all these materials was made and replicated number of times to give a long list containing the materials multiple times in random order. Then another list was made to select every nth item from this long list. By changing the n value the randomizing can be changed as pleases. This would select materials randomly from the list giving us a random colored boat façade. The script can be seen below.