No announcement yet.

Parameter Inception Guidance for a Rookie

  • Filter
  • Time
  • Show
Clear All
new posts

    Parameter Inception Guidance for a Rookie

    Good day All,

    I feel rather guilty asking these questions and not figuring it out myself, but after many attempts I've gotten this far my brain is stuck in a plethora of nested circular references . I'm winging it and taking it as it comes.

    Please refer to the family file attached.

    I'm attempting to set up a general rack family with the following end goals in mind:
    1. I would like for the Beam x Height to be a x-variable parameter, and not limited to the amount of defined beam height parameters. So that if I define No. of Beam Levels to 14, it will show Beam 1 Height to Beam 14 Height, etc. At the moment I've defined up to Beam 10 Height, but if I set No. of Beam Levels to 3, it still shows up to Beam 10 Height. I would like to hide the ones that aren't used if I can't define Beam x Height as a variable. Is this possible?

    2. I would like to array this family in a project as a row, and would like the visibility and counts of frames to suit, avoiding duplicates. I need to be able to define pedestals either at each frame, or only at the end of the aisle, the requirement of which could change during the design process due to budget change, etc. Therefore I have Left Pedestal and Right Pedestal visibility parameters defined, however I'm struggling to associate them to their respective frames, and instead both are defined Right Pedestal which is associated to Pedestal in the nested Frame family.. How would I separate these? In the rack family I try to define one frame by Left Pedestal and the other by Right Pedestal but the Pedestal parameter will only associate to one at a time. When I try to change the Pedestal parameter to an instance I get the error in the attached image. Would I have to change the associated parameters to instance parameters? Or how would I go about solving this problem?

    3. I put the No. of Beam Levels, End of Aisle Rack, Left & Right Pedestal parameters under Constraints, so that its at the top of the table, by level of importance. I would like for these parameters to be under Visibility, but I would like that to be at the top of the table, is this possible?

    3. The Brace Count parameter is defined in the Frame family which is nested in the Rack family. So if I have 5 racks in a row in a project, how would I go about counting the braces?

    4. Eventually I would like to have an Excel sheet where I can input values that will adjust the Rack families accordingly. And then I would like to have a sort of macro that would export the profiles to dwg. Is this possible? And if so, I presume it would be an add-in for 'Excel-to-Revit'. Then I could use a macro to export the profile to dwg? My idea is to install Revit on the server PC, and get our IT developer to create a .exe shortcut which will output a .dwg file from the users .xlxs input file, reasonable?

    Let me know if I need to clarify anything, or if you have any other general advice.

    Thanks in advance,
    Attached Files

    You're trying to accomplish an awful lot here...

    1: There is no way to dynamically create or destroy parameters (variables) in a loadable family, nor any way to affect their visibility in the Properties dialog.

    2: (part 1) Perhaps this is possible in the project environment, but I would approach it differently. I would array the frames and beams as 2 separate arrays nested into a line-based family. This will eliminate the need for 'left' and 'right' frame controls. You will need to know how to control arrays in loadable families. (part 2) Yes, change the parameter (and any parameters that reference that parameter) into an instance parameter, since you want the values to vary by Instance.

    3: No, you are stuck with the OOTB order.

    4: These ideas are sort-of-kinda possible, but might not be worth the effort. Do more research about Dynamo and the API and you'll be able to formulate a more reasonable workflow. I'm not a .Net developer, but my initial guess is that a DWG workflow is more appropriately handled by the AutoCAD APIs.

    Good luck.
    Chris Ellersick


      Hi Chris,

      Thank you kindly for your guidance!

      Regarding the points above:
      1. That’s unfortunate, but at least my mind can rest at ease.

      2.2. Okay, changing the other formulas to instance parameters solved the issue. I've significantly improved my understanding of instance and shared parameters since my first post.

      3. Like point 1, I will just have to make peace with the fact.

      4. What you say here makes complete sense, I will have to look into those options if I ever get the AutoCAD/Revit Suite - for now I am limited to the LT versions.. Some reading up suggests that exporting to .dwg from Revit is quite formidable when set up correctly. For now the programming idea is tertiary, further reading suggested that its possible, I will tackle this issue once I've completed my C# course, and share what I find.

      Back to 2.1:
      I've attached an image Profiles.png which shows how we currently draw up profiles, after which we do a floor plan as in Floor Plan.png. Using this information we then calculate the number of beams, frames, pedestals, etc. needed for the project using Excel. I’ve started playing around with schedules in Revit (very primitive, still getting the hang of it), and the built in counts are a much more fluid process, refer to Schedule.png. Also in Revit we can specify everything as in Excel Example.png

      The rack family I created now works very well for creating individual rack profiles as required (beam length, frame length, frame depth, beam heights, left and/or right pedestal (YES/NO), etc. I would now like to translate this family to be workable as below:

      Question 1:

      When arranging the racks in rows, the frames are still an issue. I know you said to have different nested arrays, my issue however is that the frames differ by the including of a pedestal or not, also the distance between frames can differ depending on the beam length. Could I have nested arrays with different instances? So that some arrayed frames have pedestals and others not? Could I also specify different beam lengths within an array?
      To see how I’ve achieved rack row compilation so far refer to Rack Row Joined.png (How its supposed to look when constructed), Rack Row Separated_3D.png (Separated to differentiate between family types). I kind of achieve what I want here, in that the counts are correct, however I end up having to make different types of the same rack profile, which is inconvenient and can be confusing.

      Question 2:

      If the arraying option as above isn’t possible, could you advise on how you would improve/change the way I’m currently doing things?

      Question 3:

      Lastly, if the arraying option above isn’t possible I would like to have the racks as “rack mountable”, such that they lock into each other when placing them, so different types don’t have to be aligned.

      Thank you again for your time.

      Attached Files


        Perhaps for rack compilations I should have different family types consisting of just the beams, and family types consisting of just the frame. Then array them separately in the project, and then I can just change the frame types and rack family types in the project to suit the arrangement. This seems like it would be simplest and probably best? This wouldn't be nested arraying though?

        Then the rack profile drawings would just need a naming convention to not be inclusive of the pedestals, so that the frames can be treated as a different entity in naming of profiles.

        I'd still like to know if its possible to create a kind of attachment parameter, similar to say - a wall mountable object that must always be attached to a wall. So that I can place the beam family that automatically wants to attach to a placed frame family?


        Related Topics