Need help with Parametric Joist

I've spent 3 days trying to figure out how to get this done. I'm new to the parametric modeling aspect and could use some help. I'm trying to get a parametric joist that I can use in our architectural group. I've got the top chord and bottom chord working as I need them, but cannot figure out how to get the webbing to move with the bottom chord and array with the length of the joist.

If someone has some time could you take a look and let me know how to do this. There is probably a better way to get the top chord and bottom chords working in a better fashion too.

There is a lot of potential with these parametric blocks I wish there was more information available on how to put these things together.


  • Fossa
    edited December 2022
    I was able to put this together. Still would like to have webbing in it to be more accurate. It has a massive panel in where the webs should be. Looks like SDS/2 geometry.
  • rose_barfield
    edited January 2023
    I have taken your first model and added an array to the webbing so that you can control this parametrically by length.
    I have then applied a user parameter "Webbing" so that
    webbing=(joist_length-20)/2'-3 59/64" - the length minus the starting gap at each end divided by the spacing between the webbing. I was unsure of the exact gap you would like, so assumed each would touch.

    Let me know if you need any more help/advice

    Edit: you can also add a parameter to control the spacing and apply this to the formula and the array.
  • Ian Johnson
    edited January 2023
    Rose, how about the depth of the webbing when the "Joist_Depth" is changed?
    Your example doesn't change the "Z" height of the webbing.
  • Fossa
    edited January 2023
    I had noticed that too. I was trying to mimic what Autodesk had done with their joists in Autocad Architecture. They have Multiview Block that works with grips. The grips don't work quite right in Bricscad. In AcadArch they have rotation and top chord extensions, in Bricscad this breaks for some reason. The base structure of the joist are polyface meshes, so they don't show up in sections. I've attached these as an example of what I was trying to achieve with one parametric block. I'm still not really understanding how to put these things together.
  • I also added an array, playing with this. I parametrized row number as well as spacing, using ceil() function to limit array length not to exceed Joist_Length. That seems to work alright, once I figured out the expression. (The panel interface sure does not make it easy to see or edit parameter expressions.)

    Where I am stuck is trying to link the height of the rod webbing element of the array back to the global Joist_Depth parameter. I chose "link to parameter" but then was unable to edit the array element to adjust its 3D constraints, getting this warning:

    "Block contains coordinate system constraints which are not supported in REFEDIT."

    Hope somebody can make headway from here.
  • Perhaps Autocad's dynamic blocks are still superior to Bricscad's parametric blocks?
  • I believe they are. Being able to grip edit a dynamic block vs. how BC does it is a no brainer. These joists though have some intelligence from being some kind of architectural object additionally. I don't think you could build one of those in vanilla cad.
  • rose_barfield
    edited February 2023
    Attached you can find an example on how to use joist depth parameter inside an array. The steps I did were: explode copy of existing array to get the sources for the new array (not possible to add constraints inside arrayEdit mode), autoparametrize them with 3d constraints, create an array again (reuse value for column, place at correct location).

  • Hi Rose,
    looking at your example doesn't appear to adjust the working points of the diagonals. If the depth of the truss changes, then the angle of the diagonals should change so they intersect at the bottom and top chords as per attachment.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Click one of the buttons on the top bar to get involved!