Part 1: Two Unit Work
The two unit work took an existing mass family and flexed different parameters to create different design cases. This began with the one Twisting Rectangular Mass Family, where the mass was divided into floors and the location was set to San Francisco.
(1) The Mass Family instance parameters were defined (Figure 2) and some formulas were created to differentiate this case from the example (ie. depth = building height/3, etc.) (Figure 3).
(2) Dynamo Logic was created to flex the building height. This was done by first importing the model element and the relevant input parameter and the desired outputs (Figure 4).
Then, a custom node that takes the building form, parameter names, and names to report was created (Figure 5 and 6).
From here, a range of inputs was created that all fall into the 1.25 to 1.5 million sqft requirements for the building. These were fed into a list map that evaluated each within the custom node function (See Figure 7 below).
Finally, the results were exported to Excel using the following logic (See Figure 8):
The results for the Excel Output look as follows:
A main purpose of creating parametric designs is the ability to easily change and evaluate new designs. For this reason here is an additional testing scenario. These are the extremes of the values tested, between 660ft and 700ft height. Notice the base widens due to the relationship I set up earlier.
Part 2: Three Unit Work
The unit portion of this assignment is based on creating your own building geometry that can be parametrically changed. The geometry could be built through Revit or Dynamo exclusively, but in this case I decided to use Dynamo as it typically runs quicker than Revit. The custom building geometry can be seen below and uses a curved and twisting facade. There was no original building form, as this was created exclusively using Dynamo. While this required more work to develop the entire geometry from scratch and work out any bugs, in the end I was able to create a very unique geometry that can be altered quicker.
I decided to choose to alter the building height and storey height. The sample effects of changing this can be seen below:
The flowchart for the nodal network can be seen below and will be explained in more detail:
(1) Define User Inputs
First, the user inputs were defined for the system:
- This includes five (5) X,Y points (See Figure 5)
- Middle Degree of Twist (See Figure 6)
- Middle Height (Super imposed on mid-height)(See Figure 6)
- Top Degree of Twist (superimposed on middle degree) (See Figure 6)
- Top Height (See Figure 6)
- Storey Height (See Figure 6)
(2) Create a custom node function that can output the volume, surface area, and gross floor area for a desired building geometry based on changing user inputs.
In this case, the geometry is created by the user inputting 5 points, these 5 points are connected through a closed curve. From here, they are translated upwards and twisted, once again based on user input. These are ultimately lofted through a surface then the volume, surface area, and gross floor area are calculated.
First, a base profile was established using the 5 points from user input by using a closed nurbs curve. This was then translated to the middle and top profile. (See Figures 8, 9 and 10 below).
From here, the profiles were lofted into a solid and surface as seen in Figure 11 below:
Then, the mass floors were calculated so that the gross floor area could be outputted. After consultation with Glenn, he suggested that I stick with the XY plane method instead of using the rectangular intersection. So keep in mind that the points for this geometry must remain in the first quadrant. Regardless, the methodology includes taking the user inputted height and storey height, creating a list of floors. Then, an XY plane is translated to all these floors and intersected with the building geometry (like a cookie cutter). Finally, the surfaces are formed at each floor so the area can be calculated (See Figure 12).
Finally, the solid is taken to calculate the volume, the surface for the surface area, and the floors for the gross floor area (see Figure 13) below. They are compiled into a list so they can easily be combined with the user inputs outside the node.
(3) Create Combinations of User Inputs for Testing
It was required that at least two variables and 12 total test cases be completed for this section. I elected to change storey height and total building height (See Figure 14).
(4) Function Apply
The next step included running the custom node function to evaluate the input parameters. This included taking the list of inputs and evaluating for volume, surface area, and gross floor area (See Figure 15).
(5) Data Reporting
Finally, the data was compiled into a list then exported to Excel (See Figure 16).
The raw result from Dynamo was a table with 16 test values. I completed more than the required 6 because some did not fall within the 1,250,000 to 1,500,000 square foot requirements. It is important to note that all designs are limited by a 200 foot by 200 foot footprint as per the guidelines. The raw table can be seen below (See Figure 17). Note that the height of 200-230ft is from the middle height of 200ft (400-430ft total).
The contextualized and organized data table can be seen below (Figure 18). The inputs were tower height and floor height while the outputs were the volume, surface area, and floor area.
A main purpose of creating parametric designs is the ability to easily change and evaluate new designs. For this reason here is an additional testing scenario. In this case, the base layout was changed using the sliders for the profile change. The points were changed to those seen in Figure 20 from those seen in Figure 5 above. See how drastically the building can completely change form and the geometry and calculations automatically update.