Monday, April 25, 2016

ARCH653 Final Project

Parametric BIM Applications - Creative Design and Optimization



INTRODUCTION


There are two parts in the final project. Part one is about using parametric BIM through visual programming. Part two is about parametric BIM-based design optimization.


PART I: Parametric BIM through Visual Programming


This part uses Dynamo visual programming in the Revit model created in project 1 to improve the model. I focused on creating trusses for the exoskeleton frames by using the concept of the adaptive component in Dynamo.


PROCESS OF CREATING TRUSSES
Figure1-- Trusses_1
Figure2--Trusses_2
Figure 1 & 2 are pictures of the trusses that I want to create through Revit. There are totally six trusses in the exoskeletons of the building.

The trusses can be separated into three parts to create in Revit. The first part is three arcs connect at the same start and end point. The second one is the triangle shapes separate equally between the start and end point of arcs. The last one is X shapes between sides of the triangles. I'm going to explain how I create the trusses in Revit step by step.


Step 1_ Three Arcs:

At first, I used conceptual mass file to make the arcs, but it's really hard to load the mass into the project one. It was difficult to rotate the trusses to the right direction in the exoskeleton file. Thus,I tried to use adaptive components to create the arcs. I make the start and end point of the arcs to be adaptive points. Then, I used the drawing tool of the start-end-radius arc to draw the arcs. The result is showed in figure 3.
Figure3-- Three arcs of trusses
I can use family type to change the relationship between the truss length and the radius of arcs. Figure 4 shows the relationship between the two values.
Figure4-- Family type for the arcs


Step 2_ Triangle Shapes:

I used Dynamo visual programming to create triangle shapes and X shapes. Figure 5 is the entire Dynamo program used to create the two shapes. On the top of figure 5 is for triangle shapes showed in figure 6. I'm going to explain how I make it step by step.
Figure5-- Entire Dynamo program

Figure6-- Dynamo program for triangle shapes

First, I need to select model elements. There are four lines I need to select. That is the central straight line and the three arcs created in step 1. The result is showed in figure 7.
Figure7-- Select model elements

Second, I need to find points for an adaptive component showed in figure 8. The adaptive component can be altered by changing parameters in the family type. It has three adaptive points, so I have to find three points in a group to form the triangle shapes.
Figure8-- Adaptive component for triangle shapes
Below is the screenshot demonstrating how I find equal distance points in each arc. First, I assigned 8 points to the central straight line. Then, formed planes perpendicular to the line. Last, used the planes to find points on the arcs by using intersect tool.
Figure9-- Find points on the arcs

Third, I need to delete the first and last point on the arcs because the three arcs have the same point at these two points. I need three different points to create the adaptive component, or the Dynamo can't run successfully. The Dynamo program about this part is showed in figure 10.
Figure10-- Delete the first and last point on the arcs

Last, created the triangle shapes from points found above. The result is showed in figure 11.
Figure11-- Triangle shapes


Step 3_ X Shapes:

The real X shapes are presented in figure 12. Each X shape has 4 points on two arcs. Each arc has two points on it. We can find the Dynamo program for the X shapes at the bottom of figure 5. I'm going to explain the process of the Dynamo program in figure 13 from left to right.
Figure12-- Real X shapes

Figure13-- Dynamo program for X shapes

I need to find points for an adaptive component in figure 14. There are 4 adaptive points in the component, so I have to find four points in a group to make the X shapes.
Figure14-- Adaptive component for X shapes

First, I tried to find points on the arcs in the sequence of numbers showed in figure 15. The Dynamo program about this part is showed in figure 16.
Figure15-- Find points for X shapes_1
Figure16-- Find points for X shapes_2

Then, tried to find 4 points in a group to form the X shapes. The result of the four points should be in the sequence of numbers showed in figure 17. The Dynamo program about this part is showed in figure 18.
Figure17-- Find points for X shapes_3
Figure18-- Find points for X shapes_4

Last, formed the X shapes from points found above. The result is showed in figure 19.
Figure19-- X shapes


RENDERINGS

Below are the pictures of Burj Al Arab in Revit after adding the trusses.
Figure20-- Trusses_daytime

Figure21-- Trusses_sunset

Figure22-- Trusses_nighttime

Figure23-- Burj Al Arab


PART II: Parametric BIM-based Design Optimization


This part also uses Dynamo visual programming to find the lowest Energy Use Intensity (EUI) for the San Francisco Airport (SFO) Admin Campus Buildings by changing the building dimensions. Figure 24 is the bird's-eye view of the buildings. I'm going to find the best building dimensions for the Admin Building 1 & 2. Besides the building dimensions, there are three targets need to achieve. They are Building Volume, Energy Use Intensity, and View Factor respectively.

Professor Wei Yan gave us some examples about a design optimization. Our goal is to update the Dynamo program of the examples to get the lowest Energy Use Intensity (EUI) for the SFO Admin Campus Buildings. I'm going to explain how I changed the program to my final result step by step.
Figure24-- Bird's-eye view of the buildings


Step 1_ Building Dimensions:

I need to find the site boundary first. The site boundary of the SFO buildings is given, but it has already included the campus parking structure. I measured figure 24 to get a new site boundary just for the two Admin buildings. Then, I gave a fixed distance 82-ft between the two buildings. The Dynamo program about this change is showed in figure 25. I did the change in the "Building Generator” node.
Figure25-- Dynamo program_fixed distance between two Admin buildings

There is a constraint different from the previous example, which is "Number of floors." It was "Floor Height" in the previous example. The building height is an input. When I have the building height, I can either get the floor height or the number of floors. Thus, I switched the two nodes and changed some connections between them. Figure 26 is about the change I did in the "Building Generator” node.
Figure26-- Dynamo program_number of floors


Step 2_ Building Volume:

There is a project goal for the building volume. I can change some nodes in the "Test Optimo" node to achieve the goal. I've tried two methods to achieve this goal. The first one is to minimize the absolute value of the difference between the target building volume and the building volume that calculated by the input building dimensions. The way that I've done is showed in figure 27.
Figure27-- Dynamo program_method 1 for the goal of building volume

However, my computer can't run the program successfully when I did the change. Thus, I used the second method to achieve the goal. It is to minimize the absolute value of the difference between the target floor area and the floor area that calculated by the input building dimensions. The target floor area is not given, so I used the target building volume divided by the floor height to get the value. The value is 253835 square foot. Figure 28 shows how I modified nodes in the "Test Optimo" node.
Figure28-- Dynamo program_method 2 for the goal of building volume


Step 3_ Energy Use Intensity:

Another project goal is the Energy Use Intensity.  It can also change some nodes in the "Test Optimo" node to achieve the goal. The original project goal is the annual energy use, so I need to divide the annual energy use by the total floor area to have the EUI. Figure 29 shows how I modified nodes in the "Test Optimo" node.

Figure29-- Dynamo program_Energy Use Intensity


Step 4_ View Factor:

The last project goal is the view factor. It can also change some nodes in the "Test Optimo" node to achieve the goal. The target view factor is 0.7, so my method is to minimize the absolute value of the difference between 0.7 and the view factor. Figure 30 shows how I modified nodes in the "Test Optimo" node. In addition, the original project only has two goals, so I need to update the "Number of Objectives" node in the main program from 2 to 3.
Figure30-- Dynamo program_View Factor


RESULTS

The iteration number of my best result is only 2. I think it's because my computer performance is not good enough to run the Dynamo program if the iteration number is more than 2. Figure 31 is the best result that I can obtain so far. Figure 32 is my best result in 3-D view.
Figure31-- The best result
Figure 32-- The best result in 3-D view


CRITIQUE


Overall, Dynamo visual programming is an easy and fast way to create adaptive components in the way I want them to be. In addition, it can help us easily change colors and directions of window panels. However, there are a few drawbacks to note below.

After running the program, I changed something and wanted to run it again. It didn't change the result in Revit, but it showed that run completed. I tried to disconnect some lines and reconnect again, and then run it. It still had the same result. Eventually, I have to close Dynamo and open again to run it. It's very inconvenient for me to do that.

Another drawback is Dynamo doesn't have object snap tracking feature. It's hard to align the gray small windows when I want the top of the windows at the same height.


FINAL PROJECT -- PART I MOVIE






FINAL PROJECT -- PART II MOVIE