How to Model a Strandbeest in Revit - Part 2
Alfredo Medina
Architect at Alfredo Medina Architectural Services LLC | AMAS Architecture
...Continues from Part 1 (See link to Part 1 at the bottom of this article).
Last week I had resolved most of the geometry of the leg, except parameters "m=15 ", "m=38", and "l=7.8". And those are critical because they determine the location of the rotating "backbone" that generates all the movement of the leg.
Because the sketch in Theo Jansen's video does not have any angles, last week I had created a family that could calculate the three angles of a triangle when only the length of the three sides are given.
And that family worked well to a certain point, but there were still two problems: 1) the "unknown" distances indicated with blue dashed lines above, and 2) the location of the horizontal and vertical dimensions of the rotating circle, shown above with red dashed lines.
However, the next day after writing Part 1 of this article, I thought about another method for finding the angles of a triangle when only the lengths of the sides are given: drawing circles from the two ends of one known side (points 1 and 2), with radius equal to the other known lengths. Then the intersection of those two circles (point 3) is the other vertex.
(Little did I know then that this method was going to be the key to solve not only this problem, but the much bigger next problem: making the leg move).
Using the method shown above, I tried to resolve the two problems, 1) the size of the "unknown" segments, and 2) the location of the circle. So I drew many circles, many times, trying to locate the rotating circle so that the horizontal line "m=38" was outside the pentagon, and trying to make my shape match the shape and angles of the sketch as much as possible. So, after a long while I was satisfied with the sizes and angles shown below, and I decided to stop there and continue to the next phase. This, below, is the geometry of the leg, with all sizes and angles.
Now that I know all the angles and sizes, I can proceed to study the movement. So, I started a new family with the Generic Model Adaptive template, and I started to draw these dimensions in the Front view.
Note for Autodesk
The Front and Back views in Revit 2021 in the Generic Model Adaptive template are still named incorrectly in relation to the View Cube. The "Front" view is the Back of the view cube, and the "Back" view is the Front of the view cube. Very annoying. I've commented this for years. Anyway, let's continue...
Analyzing the Leg
First, I go to my true Front view, and I draw all the segments of the initial position of the leg. I draw with reference lines, looking at the image above that contains all the lengths and angles. So I draw something like this:
Looking at Theo Jansen's video about the movement of the leg (see Part 1), I see that there are three types of elbows, as shown below: "H" is a hinge, "F" is fixed, and "L" is locked. At points indicated with "H", lines are free to rotate around that point. The only point indicated with "F" is fixed to the body of the Strandbeest. Point "L" is locked because this one is attached to the lever, which is the "backbone" of the beast, the axis that moves with the wind:
So, how are these segments going to rotate? There is one important rule, maybe obvious but good to keep in mind: these lines represent conduits. So, that means these lines cannot change their length.
Making the Leg Move
First Approach: Rotation by Reference Points
My first approach to the solution was using reference points. I thought that I could host a point on the rotating circle, and then host segments to that point, then change the angle of rotation of the point, and voila, the segments will rotate. Yes, they did rotate, but... in the wrong way. The segments were rotating around the circle, like a fan. That was not the rotation I needed. Wrong approach. There goes one idea.
Second Approach: Formulas
My second approach was in the direction of formulas. I thought that I could start from elbow "L" and figure out that when "L" was at the 0 position, point H was at another position. So I watched the video several times to figure out the angles and their limits. I spent a couple of hours doing this until I realize that it was going to be impossible to determine all these rotations by formulas. Wrong approach. There goes another idea.
Until, I remember that idea of the circles...(Second image in this article).
Third Approach: Intersections of Circles
Instead of trying to calculate the angle of rotation of each of those segments with rotation of points or with formulas, let's let Revit tell us where the start and endpoint of each segment should be, like this (see image below)
For example: to find the rotation of segment j:
- Host a reference point on the rotating circle (point A), and create a parameter A to control that rotation (this is the only parameter needed for the whole family).
- Set point A as the current work plane
- Draw a circle with center at A and radius equal to segment j.
- Draw a circle from the adjacent elbow point (in this example, the fixed elbow H) with radius equal to segment b.
- Host a reference point anywhere on circle 1 or on circle 2.
- Select the reference point and click on "Host Point By Intersection", and select the other circle. The point will move to the intersection. If it moves to the other lower, intersection, use "Toggle Point Hosted by Intersection" to make the point jump to the upper intersection.
- Draw Model Lines from point A to B.
As point A rotates by parameter A, circle 1 rotates, and as it rotates, the intersection of circle 1 and circle 2 varies, and that keeps the length of segment j the same while j rotates with the movement of the lever.
Changing the Value of the Rotation Parameter to See the Movement
After each segment was tested with the above process, I loaded the family into a project and created a small script in Dynamo to change the value of A and see the movement quickly, and test if the segment was rotating correctly. This is the script :
Putting it All Together
After all the segments passed my test of having correct rotation and correct distances, I created an animation, keeping the auxiliary circles visible to understand the mechanism.
What a joy to see this moving!
Thanks for reading Part 2. Stay tuned for Part 3 next week.
Architect at Alfredo Medina Architectural Services LLC | AMAS Architecture
1 年Glad to see that the issue that I was commenting in this article under the subtitle "Note to Autodesk", has been finally fixed. Kudos to Autodesk. Fixing little annoying things makes the users happy. So, this is correct now in Revit 2024, and to my surprise, it was correct already in Revit 2023.1 (but since I have not been using that version, I had not noticed it). The issue was present for several years until Revit 2022.
User Experience Principal focused on transforming interactions with complex data
4 年Very cool piece of work. It's great to see someone pushing a tool to unite creativity across several domains: art, geometry, function, ...
This is incredible. What I love about it the most is that it transcends the tools intent and functionality and produces something completely unexpected. It’s Alchemy at its finest!
Director / Founder
4 年Mark McKenna
Director of Design Technology at Clayco and Lamar Johnson Collaborative
4 年That last animated gif is a thing of beauty