BILT Speaker

BILT Speaker
RevitCat - Revit Consultant

Tuesday, 20 August 2019

Architects Declare Climate and Biodiversity Emergency

At the beginning of June 2019, a group of leading UK architects started "Architects Declare Climate and Biodiversity Emergency"

The list of signatories rapidly grew, and as of 19 Aug 2019 they have 580 architectural companies signed up.

On 25th July 2019 a group of leading Australian architects followed suit with Australian Architects Declare Climate & Biodiversity Emergency, and within a few weeks had garnered 476 signatories (and counting).  The Australian Institute of Architects have endorsed the declaration.

If you know of any architectural companies who believe in sustainable design (or say they do), please ask them to sign up.  If  architects in your country have not yet initiated such a declaration, please ask them to contact the UK group so they can affiliate.

Architects in Norway have already started a similar initiative

Monday, 19 August 2019

PS - Update on Hide Zeros in Revit Schedules

Following on from my previous post about Hide Zeros in Multi-Element per Row Schedule, here is a simplified version of the schedule formulas - as noted in a comment by Kovyljan.

. . . . . When using the percentage formula, we can cut out one calculation field by changing which field the percentage is taken from:
"Schedule Count" instead of "MyCount" - since both of them have a value of 1 (or 0/Blank) when the schedule is expanded.

  • The 'MyCount' formula can then be changed to take on the role that 'MyCountTotal' had in my previous version:
    if(Schedule Count / MyPerc = 0, Blank, Schedule Count / MyPerc)

  • Make sure that 'MyCount' is formatted to not calculate totals - otherwise you'll get totals of totals per room.

  • Hide the 'Schedule Count',  'Blank' and 'Count' columns (Count is only required for checking anyway)
  • Rename 'MyCount' to whatever you need.

For more detail on this technique, refer to Hide Zeros in Multi-Element per Row Schedule
and Using Count Parameter in Schedule Formulas

Friday, 9 August 2019

Hide Zero Values in Multiple Item Rows in Revit Schedules

Hide zero values in schedules (Previous post)

Following on from a previous post about how to Hide Zero Values in Revit Schedules, I have noticed that it does not work when you untick 'Itemise each Instance' (Multiple items per row) and you set the formatting to calculate totals - the zero returns.

Calculate Totals - Zeros shown
In the example above, you probably would want to show the zeros when calculating totals of different numbers - but there are situations where you legitimately do not want to show the zero.  Here follows an example, and yet another workaround to solve that problem.

Example of Workflow

A situation where you may not want to show the zeros might be when the field is a count of items.  As demonstrated in my previous "Count Dracula" post, it is not possible to include the system parameter 'Count' in a Schedule formula; nor is it possible to make a 'Count' value of zero - the workaround to that problem is to create your own 'MyCount' parameter, as described previously.

In this example,  items are to be listed in a schedule with consecutive room numbers - at this stage some of the rooms do not yet have any real items placed in them.  The schedule needs to show all the room numbers, even when not yet furnished.   In order for the rooms to appear in the schedule, a dummy item has to be placed in the room, but we do not want it to be formally counted.
This is where a 'MyCount' parameter is useful, as the dummy items can be forced to schedule with a count of zero.
  • First a 'Schedule Count' parameter has to be created for the nominated categories
  • Set the value to 1 for all items to be counted
  • Set the value to zero for those not to be counted
  • [NB. This could be a Y/N parameter, but that has complications - to be dealt with in another blog post]
  • If it does not yet exist, create a 'Blank' calculated value, with no formula
    (Refer to Hide Zeros)
  • Then create a 'MyCount'  calculated value (Number or Integer)
  • It can be given a formula of:
    if(Schedule Count' = 0, Blank, Schedule Count)

  • The schedule should list a 1 MyCount value for each item to schedule, and nothing for those Spare (dummy) items.

  • Group the schedule by Room Number (no footers)
  • Untick "Itemise every Instance"
  • Notice that the MyCount total values are not totalling up
  • Format 'MyCount' to calculate totals
  •  Untick "Itemise every Instance"
  • Aaaargh!   The zeros are back


In order to get the number of items in each room to total, you have to add a couple more calculated values - this is where it starts getting crazy!
  • Add another Calculated Value 'MyPerc' or 'MyPercentage'
  • Make it a Percentage (not a formula)
  • Select the field 'MyCount' of which it is to show a percentage
  • Select the Grouping title - 'Room Number' (rather than Grand Total) - so it only calculates a percentage of that Room sub-total

  • Add another calculated value, with a formula:
    if(MyCount/MyPerc = 0, Blank, MyCount/MyPerc)

  • This will show the total count per Grouping (Room) in each row - which looks a bit crazy when each row is listed separately

  • Untick 'Itemise every instance' and it looks better - and without the zeros
  • Do not Calculate Totals for these two calculated values, otherwise it gives wrong totals

  • Hide the intermediate calculated values, and rename the 'MyCountTotal' as desired

Now, if you actually want to show Grand Totals for the Item Count, that is another story . . . .
  • You would probably need to create another schedule that shows 'MyCount' (which gives the correct total), but collapse it down to one row (no sorting/grouping; no grant total) - and align it on a sheet with the column for MyCountTotal.
  • That would also enable you to have bold text for the total
  • However, I am not going to try that here - you are on your own.
[Edit.  A comment from Kovyljan has pointed out that the last method above can be simplified by making the percentage calculate on 'Schedule Count' instead of MyCount - refer to ps Update on Hide Zeros ]

For more information on this technique, refer to an earlier post on using Totals in Formulas *
For more information on creating your own Count parameter

* Thanks to Martijn de Riet of BIMForce who initially posted on his blog a similar solution to another scheduling problem in Revit

Monday, 5 August 2019

Using Count Parameter in Revit Schedule Formulas

Anyone who has tried to master Revit Schedules would have encountered all kinds of limitations.  One of those is the limitations on which parameter types can be used in a calculation:

These parameter types can be used in formulas:
  • Number
  • Integer
  • Length
  • Area
  • Volume
  • Angle
  • Yes/No
  •  <Family Type..>
  • etc
They are all basically a number or a choice between items that have a number hidden behind them (Y/N  or <Family Type..>

The following parameter types cannot be used in formulas:
  • Text
  • URL
  • etc
They are some kind of text, which is all too hard for Revit to cope with (poor little Revit).

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.

However, it is quite likely that you do actually want to perform a calculation on the combined result when multiple elements appear on the same row.  If not that, you may want to calculate per item and then total up the results of your calculation.  Here is my workaround:

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

Thursday, 1 August 2019

Hide Zero Values in Revit Schedules

Revit likes to show a '0' or '0.00' in a schedule when the value is either zero or blank (sometimes).  This is not always desirable - in some situations you may actually want the schedule to show nothing when the value is zero.

There is a way to do this, although it is not in the units or display settings . . . . .

Blank Value Workaround

Let's suppose you have a 'Numeric value' field that is displaying zero values
  • The first thing to do in your schedule is to create a new Calculated field called 'Blank' (for example) - make it a Number type (if that is what your desired type is)
  • Do not put anything in the formula

  • Create another Calculated Value field - in this example I've called it 'Hides Zeros', but it can be whatever you want the title to display in your schedule
  •  This time give it a formula something like:
    if(Numeric value > 0, Numeric value, Blank)
  • This will hide all zero and negative values

  • If you want to display negative values and only hide the zero values, change the > in the formula to =:
    if(Numeric value = 0, Blank, Numeric value)

  • The next step is to hide the intermediate calculation columns:
  • Go to the Formatting tab and make the 'Numeric value' and Blank' columns hidden

Multiple Elements Per Row

What happens when you have a schedule that displays multiple elements per row, when you have unticked the grouping setting 'Itemise every instance'?
The zeros may return!
In which case refer to this post on Zero values in multiple elements per row Schedules

Sunday, 28 July 2019

Arrays in Revit Global Parameters

Continuing with the theme of  Global Parameters in Revit . . . . .

Global Parameters and Arrays

Global parameters do not directly support arrays – you cannot associate a parameter to an array number in a model (unlike the ability to do so in the family editor).

When you select an array number in a project, have a look at the Options Bar - there is no label for you to associate a global parameter.

In the family editor, when you select an array number - there is a label on the Options Bar for you to associate a family  parameter to the array number.







To work around this Global Parameter limitation, you need to build the array into an external family:
  • The family needs to have an integer instance parameter - this can be created directly when associating the array number (or created prior).
  • The array could consist of nested families or arrayed elements - it is usually much easier to control the array when it is a nested family, but that may slow response times if there are too many levels of nesting.
  • If you need to be able to schedule, tag or select individual families in the project (from the array), then the nested family should be 'Shared'.

  • Once you have associated the array number to a controlling parameter, it is wise to use that as a check parameter, to prevent users from inputting a value of less than 2 - because this would break the array.
  • You need to then create a User Input parameter, which is the one used in the project.
  • The check parameter is then driven by the User Input array number, with a check formula in place to prevent an input less than 2

  • Load the family into project then its instance property (Array Number) can be associated to a global parameter.

Once this is set up, your nested family array should be driven by Global Parameters in the project.

If you would like Autodesk to fix this annoying limitation, please go to Revit Ideas to vote:

Enable global parameters to associate to Array Numbers

Wednesday, 17 July 2019

LRUG Computational Design LT in Revit

Pump up the Volume - Control Panel using Adaptive Components

Last week I did a presentation at LRUG (London Revit User Group) entitled "Computational Design LT" - using Revit as a design tool, with model changes driven by sliders (100% Revit, no Dynamo).  This was achieved by various methods, including Adaptive Components and Global Parameters.   This talk was largely based on presentations that I did at RTC/BILT conferences in Scottsdale, Arizona and Adelaide, South Australia: "Power to the People" (2016-7);  and "Pump up the Volume" in Chicago and Melbourne (2014).
Sliders Using Global Parameters

In previous blog posts I have documented most of the background research I did on Global Parameters (refer to contents page).  In future blogs I will add more descriptions of how this works.

Sliders by Design