How to Create a Beam using Rotating Profiles?

Hello everyone! First post.

I thought this was a simple operation to perform but I can’t seem to figure it out!

I would like to create a Structural Framing Beam from a set of rotating profiles using Dynamo.

  1. The profile does not vary in size and is constant throughout the length of the Beam
  2. The profile is always perpendicular to the Path curve
  3. I should be able to precisely define the rotation of each profile along the curve

Is there a way to do this? The StructuralFraming.BeamByCurve component does not allow me to do so.

From a geometry perspective I could of course:

  1. Divide the Path curve
  2. Generate perpendicular planes
  3. Rotate each plane accordingly
  4. Orient the profile curves to each plane
  5. Perform a sweep to obtain the solid form of the beam

The problem with the above method is that the result will not be a ‘beam’, i.e., I would not be able to change the profile of the beam natively in Revit and maintain the rotation of the profiles. And, it would not register as the appropriate Beam in a schedule.

I am new to Dynamo and there is probably a workaround available that I am unaware of.

I did see something by RevitCat using Adaptable Components which might work as a last resort:

Any help would be much appreciated!

Thank you.

1 Like

Hi @khanff2

Welcome on Dynamo Forum!

Could you show us what you have tried so far in dynamo with errors expanded if any.

I think what you have is a problem with how Revit defines beams, and what you are trying to do is more complex than the allowable definition.

Beams in Revit are line-based families. You can use different types of curves to define the “Line” in Revit: Straight line, Arc, Partial Ellipse, Spline…

One thing these all have in common is that the definition is planar: All of these curves are limited to definition in a single plane. You can monkey around with this a bit by changing parameters such as Start/End offsets, Z and y direction projections, etc, but the underlying definition is always planar.

If I understand your sketch correctly, it appears that it curves in 3 dimensions, so the Beam.ByCurve node barfs on the curve you are feeding it because it doesn’t know how to handle it. (Anyway, that’s my guess, because I know more about Revit than Dynamo)

So, I think you have 2 options: Adaptive components (whose geometry is essentially generic, but can be applied to every category) or in-place families (which may not be possible because in general, Revit doesn’t give you the tools to create true 3d curves, which is why people use adaptive components and Dynamo for more complex geometry.)

Now, just how these beams will behave when you try to work with typical Revit beam behavior (Beam joins/cutbacks, analytical models, level hosting, etc.) is a whole 'nother story.

Let us know what solution you come up with and why it works (and what about it doesn’t) and why the other options weren’t successful.

Good luck!
Joe

2 Likes

I agree with @Joe.Charpentier.
I just want to put an accent to some things:

  1. You can definitely use the mass/adaptive environment in Revit to make that geometry.
    • It cannot be set to the structural columns/beams category.
    • it could be a reusable 2-point adaptive component.
  2. You can definitely use Dynamo to create the geometry and import it as a Structural Beam/ column. But in revit it will be just a static component, a family instance with no parameters for controlling the geometry.
    in both cases - Cutbacks, coping, etc is as Joe said another story.
  3. I see another option here though.
    A series of swept blends in a traditional structural beam family + Dynamo:
    Here’s what I got:

This is the family:

Three Swept blends. Each profile is rotated 30 degrees counterclockwise. You can set it as a parameter, you can
probably do some math to keep the surfaces tangent to each other.
And I used Dynamo to place the family on some random nurb curve:


So with this kind of family (if built in a “correct” way) you can get the advantages of the regular structural beams. Even an analytical model:

P.S. This curve still has to be in 1 plane though

I noticed that if it’s not in a single plane the beam fails, but the analytical curve is still correct:


Good Luck!

3 Likes

@viktor_kuzev & @Joe.Charpentier:

Thank you so much for your time and help!

I am going to run some test and see what I get.

From what I understand, essentially I could get the form defined as a ‘beam’ as long as the path curve is planar, in which case I could use Rhino+GH to first optimize a complex 3D curve into a series of planar single-radius arcs, and then use the arcs as the paths for the swept blend.

Going to try this now. Will update when ready!

Thank you again.

Thank you.

_Azhar

Hi @viktor_kuzev & @Joe.Charpentier,

I was able to generate the swept blends across a series of arcs using Dynamo. Yay!!

However, I was unable to then edit the angle of the profiles.

Is it possible to create a parameter accessible to Dynamo that defines the rotation of the section profile as opposed to a fixed number?

I am trying to use ‘set parameter’ nodes but had had no luck!

KHAN_Swept%20Blend%20Beam

If you any ideas please let me know.

I am going to try the method of using Adaptive Components next, although I would prefer using BeamByCurve as it would give me a real beam.

Thank you.

_Azhar

Family parameters are accessible from Dynamo. There are nodes like Set ParameterValue By name and get parametwr by name.
Did you create a parameter in the family?

Hi @Kulkul, Sorry I did not reply earlier. I was unable to attach my definition as a ‘new user’ to the forum.

Hi @khanff2

Drop your rvt and dyn files in dropbox or to any other cloud services and share the link here.

Hi @viktor_kuzev, @Joe.Charpentier,

I managed to solve the issue!

The dynamo definition and corresponding family can be downloaded here (sorry I am still not allowed to upload files):

The script can apply the profile to any planar curve and you can adjust the rotation angles of the end profiles using sliders. Each profile rotation is associated with an ‘instance’ parameter in the swept blend type definition.

I will be applying this to a complex steel structure of a bridge project and will update this post down the line with more images.

1 Like

Great work, Azhar!

And thank you so much for sharing the finished product. I’m glad to hear that you could accomplish what you need to do using only planar curves.

Joe

By the way, Azhar’s files are attached to this post, since he was not able to upload them:

KHAN_Swept Blend Beam.dyn (30.9 KB)
ThisIsASweptBlendProfile01.rfa (460 KB)

Thanks Again!