No announcement yet.

Use lookup table(s) to drive VAV inlet size

  • Filter
  • Time
  • Show
Clear All
new posts

    Use lookup table(s) to drive VAV inlet size

    I'm looking at driving the (inlet) size of my vav boxes via a lookup table that has the manufacturer's max flow data. However, I'm stuck on what to use for my reference column. I've always used the inlet/connector size as my reference for lookup tables, so I can't picture using anything else.

    I'm sure you can do this easily by associating the right parameters. You can also do this easily with nested statements. Can you post a screenshot or more info?

    Tannar Z. Frampton ™
    Frampton & Associates, Inc.


      I want plural manufacturer's data, so a conditional statement will not be sufficient (I guess I should have written manufacturers', not manufacturer's...ugh). I guess I'm stuck on the notion that the size of the primary connector (the inlet) is what drives the lookup table, based on my experience with lookup tables being with pipe fittings.

      I'm also pretty sure that lookup tables have to have an exact value match in order to work(?), so I'm not sure how/if I can check the max flow allowed per size when the flow is variable.

      I guess I'm soliciting for "is this possible?" and "how can I achieve it?"

      edit: I intend to have the inlet size as instance based, which is why my original thought is to have the flow going through the box drive what the inlet size is, but now I'm thinking I should be going the other way and checking the air flow through the box against the max value allowed at the given inlet size and then giving a "box not appropriate size" warning? I'm just not sure/am leery of have an instance-based inlet size is appropriate going with the second way.
      Attached Files
      Last edited by evan.dodds; August 17, 2017, 06:45 PM.


        Hey Evan, I'm working on something very similar at the moment. I've been refining our VAV families for years, but we always had separate families for different manufactures and types (series or parallel, etc.). I've never liked this because there's so much going on under the hood of these families, and keeping ALL of them updated as changes and refinements are made is a real hassle. One building owner likes Titus, another likes Kruger, etc. So I've been working on ONE family that will represent all Terminal units: single duct, series, parallel, and multiple manufacturers/models.

        Here's a pasted-together image of the Family Types window for my family, showing all of the parameters. It's a bit of a beast, I've been building on this for a while. Now to answer your first question, about the inlet sizing: Absolutely, make this an instance parameter. What I do (boxed in green) is create a series of Type parameters for the size thresholds the box will use. "06inMaxCFM, 08inMaxCFM, etc." I enter the maximum CFM for each size into these parameters, and then in my Inlet Diameter Parameter (also in green) I have a simple conditional formula that compares "Maximum Air Flow" (My 'flow' parameter that the duct connectors are using) to each of those Type parameters. At the end, after the largest size, the formula sets the inlet diameter to 0", which is geometrically impossible. This will cause your family to "break" and throw a "Can't Make Type" error if you overload it. (I also do this for my diffuser families, it works quite well.)

        Since these maximum values are Type parameters, they can vary by Type. This works for me because I'm making every Type a different model, so I can then enter the specific maximums for each model.

        As for your second question, about look up tables, this is the thing I've been working on lately. (See the red boxes in my image.) What I did was look at the cut sheets for the 4 manufacturers we use the most (Titus, Krueger, Nailor, and Trane) and create a standard set of values that defined their geometry and electrical characteristics. Then I created a CSV file for each model, entering the dimensional data as well as the electrical horsepower and FLA data for the ECM and PSC fans. Then (and this is the part that may interest you), I created a Text parameter generically called "Model Lookup Table." That formula then selects the correct Lookup Table, based on the value of a Numeric Type parameter I'm calling "Model_Numeric." I did this because you can't use text values in conditional statements, so I had to create a numeric code that defined the various models. Each Type (model) has a different "Model_Numeric" value, which the "Model Lookup Table" formula uses to select the correct lookup table.

        From there, the dimensional and electrical parameters for my VAV box use a size_lookup to grab each value from the lookup table that's been selected.

        Hope that helps! I'm mostly done with my family, and when I am done we'll have one box family that works in pretty much every application, which I'm pretty stoked about.

        Attached Files
        Last edited by Necro99; August 25, 2017, 09:26 PM.


          DO have your coil data in the same schedule as your vavs? How do you reconcile the zero-fest of "non-coil" vavs with "coiled" vavs? I am looking at having the coil as a shared sub-family (versus non-shared) which makes the vav's that don't have a coil have blank cell values, but you can't directly edit the parameter values of the shared sub-family without adding parameters in the main family ().

          I wish conditional formatting could affect text colour instead of just the cell colour...


            Not sure what you mean by "coil data." All we use are electric coils, so all there really is is a formula that calculates the kW needed to satisfy a formula.

            The non-coil and coiled VAVs have separate schedules, so the zeros aren't a problem for us. If I had to show all of them on one schedule, I'd just tell my superiors that this is how it has to be because of "Revit reasons."


              I just meant the coil related parameters by "coil data"

              Anyways... this is how my first pass at the VAV turned out. I didn't add any calculated values for the coils as my boss(es) are currently uncomfortable with advancing to that step/that's future work, so it's not as fancy in that regard. But, I condensed your max cfm method into one set of parameters, and I added a toggle functionality so that the box can work with metric and imperial projects (bleh). My lookup tables are freaking huge because of that .
              Attached Files


                Nice! I wish I was as regimented in my parameter naming. Over a period of years, it's hard to stay consistent with myself.

                As a suggestion, I would make your temperature parameters unit less numbers. It saves you a layer of "Inconsitent Units" hassle. There's really no practical value to using temperature units IMO.

                Instead of having separate shared parameters for VAVs like "VAV Heating Coil Leaving Air Temperature", I would use one parameter that worked on all heating coils (AHUs, duct heating coils, unit heaters, etc.) It'll help reduce the number of shared parameters.

                As I learned recently, electrical phase =! Number of poles. There are instances when electrical will use a 2-pole 208v circuit. If your electrical connectors are using your "Phase" parameter to control Number of Poles, you could wind up with a "2" in the phase column of your schedule, which is just embarrassing. So, in the electrical connector, just leave "Number of Poles" blank and use an Integer parameter for Phase. It's actually not a big deal that they're not related.

                I'm surprised that your bosses are so against using formulas for basic things like calculating coil kw or LAT. I mean, they trust spreadsheets, right? Once I showed my bosses that my VAV families produced the same result as our standard spreadsheet, and showed them the actual formulas, they bought in. The point you need to drive home is that families behave like spreadsheets. They understand spreadsheets and that helps them be comfortable with using Revit as an engineering tool and not just a drafting tool.
                Last edited by Necro99; August 27, 2017, 02:40 PM.


                  I also use long If(.. formulas.
                  If you write them in Notepad, over multiple lines and with tab indents, its a lot easier to edit.
                  Then when you cut and paste into revit the spaces and line breaks get automatically removed.
                  "One must imagine Sisyphus happy." Albert Camus - "The innovator has for enemies all those who have done well under the old conditions, and lukewarm defenders in those who may ​do well under the new." Nicolo Machiavelli -"Things that are too complex are not useful, Things that are useful are simple." Mikhail Kalashnikov


                  Related Topics