Thursday, May 16, 2019

Cost Estimating Directly in Revit

Revit can be used to develop a detailed construction cost estimate which includes soft costs, e.g. Labor Rate, Labor Hours, Overhead and Profit. We can even account for non-modeled items, such as rock removal and tower cranes. This post is based on material I presented in a session titled Interior Design Workflows at RTC-Asia 2015 in Singapore (now known as BILT and DBEI).

Be sure to scroll to the bottom and see images showing the RS Means estimating module built-in to Revit many years ago.


In preparation, we need to create parameters and the schedule with calculated values.

Keep reading to learn more...

The parameters can be set up in one of two ways; in the content (i.e. families) or as Project Parameters (i.e. in a project or template). The latter will make for a more robust solution. Creating Project Parameters, associated with EVERY category, will ensure the cost estimating parameters will be available for ALL content no matter where it came from.

The image below shows several Project Parameters (Manage tab > Project Parameters) created and each has all categories checked.

Project parameters created and associated with every category

To properly schedule elements from multiple categories, create a <Multi-Category> schedule.

The Type parameters required are as follows:

·         Revit Parameters:
o   Mark
o   Type Mark
o   Family and Type
o   Count

·         Custom Parameters (type of parameter):
o   Cost Sorting Title (text)
o   Labor Rate (currency)
o   Labor Hours (number)
o   Tax Rate (number)
o   Material Cost (currency)
o   Overhead Profit Percent (number)

·         Calculated Values: (type of parameter)
o   Labor Cost (number)
§  Labor Rate * Labor Hours
o   Sales Tax (number)
§  Material Cost * Tax Rate
o   Overhead Profit (number)
§  (Material Cost + Labor Cost + Sales Tax) * Overhead Profit Percent
o   Total (number)
§  Check Calculate Totals on Formatting tab
§  Material Cost + Labor Cost + Sales Tax + Overhead Profit

Multi-category schedule with required parameters added
The trick to only estimating what we want to estimate is to filter the schedule by our custom Cost Sorting Title parameter. If this parameter is blank, the element will not appear in the estimate (see image below).
TIP: Create a “working” version of cost estimate schedule, which does not filter. This will allow you to see what is being left out of the estimate and make changes if needed.
Filter schedule by Cost Sorting Title – if blank, row is hidden
The Cost Sorting Title is also used to group related elements and see sub-totals; e.g. Seating, Tables, Workstations, Lighting, etc.

Sorting/Grouping tab for construction cost estimate schedule

Note that when Itemize Every Instance is not checked, rows are grouped based on the Sort By parameter above. In this example we are sorting by the Family and Type parameter. The Mark and Type Mark columns are just listed for convenience here. Each family is unique for a reason and usually will have a cost impact, so this is often the most logical parameter to sort by.

Additional soft costs can be tracked by creating a generic family, maybe a small box, which can be placed within a Design Option. Each instance of this family can contain additional costs such as sitework, demolition, mobilization, etc. The Option Set should have two Options; Empty and Soft Costs. The one called 'empty' should be the Primary Design Option and have nothing in it. The other will have the extra Soft Costs families in it and the Cost Estimate schedule will be set to include this secondary option as shown in the image below.



The image below shows the Revit schedule in action. Notice rows not completely filled out do not have any cost in the total column. Also, notice the reception desk is a special item listing a large material cost and number of labor hours to build this custom casework item.

Each group lists a sub-total. For example, the Seating section alone will cost $176,697.18.

Consider creating a Fixed Values schedule, which Sorts By common parameters such as Tax Rate. In this schedule, there would only be one row if every element has the correct tax rate. Entering a tax rate to a second row would populate all elements which did not have a tax rate value and result in only one row in that schedule.

This example is not designed to deal with square footage costs (e.g. ceilings). This would require a few more parameters and a check box (i.e. yes/no) parameter to toggle between item cost and element square foot cost (or even linear costs).


A Blast from the Past

Back in the day, Revit actually has the RS Means construction cost estimating module built into it. The images below are from my very first Revit book, based on version 5.0 (I started it on 4.5) back in 2003. This was a preliminary area-based estimate, and not a detailed one as described above. click to enlarge images







Related posts:
Autodesk Unveils Cost Management add-on for BIM 360 Build



For BIM Chapters updates, follow @DanStine_MN on Twitter or connect on LinkedIn

I also write blog posts for Enscape - a new paradigm in rendering, animation and VR for AEC.

4 comments:

  1. Very interesting post Dan!

    One quick tip: the article says

    "The trick to only estimating what we want to estimate is to filter the schedule by our custom Cost Sorting Title parameter. If this parameter is blank, the element will not appear in the estimate (see image below)."

    This filter will only filter out parameters that have never been set (so that have 'null' value). However, if you at one point need to exclude an element from the schedule, and you clear the value of 'Cost Sorting Title', it will still show up (because it's blank, which in Revit land is not the same as 'null'). You will need to add an extra line to the filter 'Cost Sorting Title DoesNotEqual empty field'.

    And of course there's a Revit idea to simplify this :)

    https://forums.autodesk.com/t5/revit-ideas/yes-no-null-value-equivalent-to-no-in-conditional-statement/idi-p/7209622

    ReplyDelete
  2. Of course you are correct. Thanks for the comment Pieter.

    ReplyDelete
  3. Hey Dan,

    This is exactly what I've been looking for...excellent work!

    Thanks!
    levi

    ReplyDelete
  4. Thanks for sharing it with us. I got all the stuff I was searching for. Keep up doing a great job.

    ReplyDelete

All comments with unrelated links will be deleted - no spam!