Thursday, April 28, 2011


ARCH653: Final Project
Using Revit Architectural to Model "Bransdall House"

Student: Saied Zarrinmehr



Introduction
This project is an extension of project 1. Therefore, I would suggest readers first take a look at the previous post to get acquainted with the process of creation of the Revit model for the Barnsdall House. in summary, In the development of project 1 I used two different parametric families: (1) a mass family, and (2) a family for the ornaments. All of the parameters in these two families are different, except the angle. Angle refers to the sloped surface of the mass family where the ornaments will be mounted (figure 1). In the design of the Barnsdall House it seems that Wright used the same angle for all of the sloped edges. Therefore, one could claim that essentially there was no need to define angle as a parameter. However, defining angle as a parameter has an advantage too. As designers we are always interested to know if Wight’s choice of angle was the best, or it is possible achieve more pleasant choices by manipulating the angle!


Figure 1. How the two families of mass and ornaments connect to each other.

At this step of project two I would like to be able to change the parameter of angle in the Revit Project level to see if the appearance of the whole configuration will improve. For this sake I will use external commands that are developed by Revit API and C# coding. This external command should change the angle parameter for both mass and ornament families.


The C# coding consists of two different sections, each following a different task. At the first step we want to change the angle parameter. For this sake we will give the ID of instances of both ornament and mass families. Revit will change the current angle value. Although angle is a taken from instances, once changes it will update all of the instances of the ornament and mass families. The global change is because of the classification of angle parameter as a type parameter.


In the previous post, I explained that in some cases like chimney walls or some openings, I had to manually make some changes in walls and roofs that were created by-face. This cannot be a good idea anymore, because it will be very time consuming to change everything manually after each execution of the external command. Therefore, I made all of the openings parametrized so that their position could be easily changed. Also, in cases that they do not exist, there are buttons to remove them (figure 2).


Figure 2: Newly developed mass family.

After the execution of the first section of the code, the walls and roofs should be updated to fit new edges of the mass. The second part of the C# code will update the walls. Currently, I do not have a solution or a C# code template to update the roofs with an external command; though, we could easily do the updating. To do so, we can right click on one of the instances that are created by-face, and select other similar instances, and then click "update to face" on Revit interface. Figures 3 to 8 show the execution of the external command.

Figure 3: external command asks for the value of the new angle.

 figure 4: walls are created after the execution of the external command.

 figure 5: walls and the internal space is shown via section-box.

 figure 6: Reapplication of the program, when new value could be entered.

 Figure 7: New walls are generated, after removing older walls.

Figure 8: Figure 7 from a different perspective.


The following video demonstrates this process. It also summarizes the whole process that I went through from the scratch to develop this model. 


No comments:

Post a Comment