Friday, August 6, 2021

Unfolding Curtain Walls for Documents

    One of the advantages of using Revit is in making documents. Revit makes it easy for me to create plans, elevations, legends or schedules. But some of elements in Revit models are quite tricky to make it's documents.

    Curtain Wall is one of them. It's harder especially when it has curved location line. In Autocad environments, I've naturally drawn a planar for it's documents, but in Revit, I had to use 3d views, assembly or other ways to explain it through documents.

    I know there are several Dynamo solutions for unfolding. But I couldn't find a great one for creating construction documents from any of them. So, I created my own dyn for the job.

1. Approach

    From a selected Curtain Wall , you can get Panels or Mullions. 

    At the moment, I realized that what I needed in documents were not Panels but Mullions, except the case without Mullions which is rare. And the size of data to be cared is smaller in mullions than the one in Panels.(Lines vs Surfaces)  So I choose to go with Mullions. The choice makes a lot of differences in following graph. 

2. Categorize

    There are two kinds in mullions. Horizontal(transoms) and Vertical(mullions). I just separated them. 

    Below code is written for making the work easy.

3. Merge vertical lines from Mullions.
    The lines from mullions are all split to several ones in one aligned mullion. Lines are all merged if they are in one mullion. it will make the code run fast and let the work easy potentially.

4. Translate vertical lines at a plane.

    For translating standing lines to an xy plane, a baseline should be defined with proper length. It is shorter than the length of Walls location line when the wall is curved. The length can be found by calculating each distance between mullions.
 After defining a baseline, lines for vertical mullions can be easily located at the plane by replacing z coordinates of the original standing lines to y coordinates for a plane.

5. Translate horizontal lines at a plane.

    Measure parameter of each horizontal lines at original wall location, and apply it to the new baseline. It will be x coordinates in the plane. Z coordinates will be y coordinates again. Mullion width also can be found from distance between aligned horizontal lines.

6. Adjust V and H lines.

    Now all lines are translated at a plane. But one last thing had to be done before offset each lines.
    As a picture below, mullion lines are at the outside of each mullion if it's for border.
    These lines should be moved to each center of mullions. The mullion width which I took above tells me the distance to move.

7. Offset lines and get the final draft.

    It's the easiest part. Just offset and use DetailCurve.ByCurve node

Watch how it works.

    I used python nodes mostly, but I believe the same can be done with the original Dynamo nodes.

I have no idea how the documents for Curtain Walls are delivered in each country though, hope it would help some of you.

Enjoy. :)