These parameter types can be used in formulas:
- Number
- Integer
- Length
- Area
- Volume
- Angle
- Yes/No
- <Family Type..>
- etc
The following parameter types cannot be used in formulas:
- Text
- URL
- etc
There is another kind of schedule parameter, which is not listed above (because it is a system parameter that you cannot choose from a list of types):
"Count", which is just a number (always = 1 for each item).
However, if you try to use this in a schedule formula, Revit gets very uppity and says you cannot.
This is unprecedented in Revit - a message that actually explains why it can't do what you want!
- In case its not obvious what this means, it is referring to when you uncheck "Itemise every instance" under the Sorting/Grouping tab.
Count Dracula Formulas
In your schedule, you can create your own "Count" parameter:a Calculated Value with a formula = 1
You could call it "Dracula", but that might confuse everyone later, so its better to use something more prosaic like "MyCount"
MyCount formatted to No Calculation |
Don't forget to format your Count Dracula parameter to 'Calculate Totals' otherwise it will list only 1 even for multiple elements per row (as above).
MyCount formatted to Calculate Totals |
Once you have 'MyCount' working, you can include it in a formula:
- You may have a numeric parameter - say 'Num Shelves', which represents the number of shelves in a unit.
- This can be multiplied by your Count parameter in a new 'ShelfCount' calculated value
Revit is quite happy to include "Dracula" or "MyCount" in the formula even though it is doing the same job as the system parameter 'Count'.
The formula could include an if statement:
Or you could put a formula directly into your 'MyCount' parameter
NB . The last two formulas were somewhat superfluous, but just shown to demonstrate that you can create formulas with your own Count parameter. For a more realistic example, refer to my previous post on Hiding Zeros in Schedule Formulas
This workaround removes one of Revit's many limitations - the programmers obviously put that one in deliberately to prevent "wrong workflows", but in reality they didn't anticipate all our requirements with schedule formulas. [Yes, my spellchecker doesn't like "formulas", but then I never liked learning Latin, so I'm not changing it!]
For more information about Revit Schedules, refer to this index of Schedule blog posts
What happens when Count is greater than 1?
ReplyDeleteYou don't have to hardwired the value 1 as a formula. You can make it a value that can be changed by users (to 0 or 2, 3 etc)- but if you do that then you'll need to put in error checking formulas too.
DeletePerfect! Working! Many Thanks :)
ReplyDeleteCan you answer this? I wanted to run a formula such as this:
ReplyDeleteif(Identify Quantity as Lot, "lot", if(qtyformula = 5, "5", if(qtyformula = 4, "4", if(qtyformula = 3, "3", if(qtyformula = 2, "2", if(qtyformula = 1, "1", ""))))))
where "qtyformula" is my built counter, but even with "calculate totals" clicked it still always shows up as 1 in my results
Hi Unknown. The count parameter has to be a number or integer. Your formula has "" quotes, which implies you are using text parameters, which won't work.
Deletehi RevitCat, I guess I should explain:
DeleteIm trying to be able to substitute the word "Lot" for an actual count in certain instances, so I did the following:
1) created a count parameter QTYFORMULA just as you instructed, and added the"caculate totals" feature, which does in fact count just like count does.
2) Then i created a second calculated value QTY (which is a text parameter) and inserted that formula.
In every other case where i have converted a real number to text this has worked. its a standard swap-out parameter formula - it should look at QTYFORMULA, see that the calculated value is some number and match it to the list - but it always sees QTYFORMULA as either 1 or 0, never 5... Mind you, I normally use this formula to print the result of a shelf that got streched or something, so the math is visible in a parameter somewhere....
Your calculation works per line, not on the totals, even when you don't itemize every instance. Have a look at "Using Totals in Formulas" on my blog to solve this
DeleteReally useful. Many Thanks.
ReplyDeleteGlad you liked it Molecule
DeleteExtremely useful and well explained. Thank you.
ReplyDeleteThis is a very useful trick, save my all days work, thanks a lot
ReplyDelete