How to Model a Strandbeest in Revit - Part 2

How to Model a Strandbeest in Revit - Part 2

...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.

No alt text provided for this image

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).

No alt text provided for this image

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.

No alt text provided for this image

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:

No alt text provided for this image

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:

No alt text provided for this image

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)

No alt text provided for this image

For example: to find the rotation of segment j:

  1. 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).
  2. Set point A as the current work plane
  3. Draw a circle with center at A and radius equal to segment j.
  4. Draw a circle from the adjacent elbow point (in this example, the fixed elbow H) with radius equal to segment b.
  5. Host a reference point anywhere on circle 1 or on circle 2.
  6. 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.
  7. 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 :

No alt text provided for this image


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!

No alt text provided for this image

Thanks for reading Part 2. Stay tuned for Part 3 next week.

Alfredo Medina

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.

  • 该图片无替代文字
回复
David Conant

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!

Ryan Taube

Director of Design Technology at Clayco and Lamar Johnson Collaborative

4 年

That last animated gif is a thing of beauty

要查看或添加评论,请登录

Alfredo Medina的更多文章

社区洞察