An IfcCostSchedule brings together instances of IfcCostItem. A Cost schedule can be used to present:
We'll start by creating a simple Cost Schedule manually, and then we'll see how we can import a Schedule, and a Schedule of Rates from a spreadsheet.
Let's get started! We'll be continuing from the previous tutorial, where we already have 4D data. If you haven't done so, check out the 4D tutorial first.
Head on over to the Blender Scene Properties โก๏ธ Costing and Scheduling Tab โก๏ธ Cost Panel.
Clicking โ will prompt a menu where you can specify a Name ๐ท๏ธ, and a predefined Type ๐.
The predefined type can be chosen from the dropdown list ๐, here's a description for each predefinedType.
I have called my schedule EC1-5D-Tutorial
and set the predefined type to BUDGET
.
We should then see it listed in the Cost Panel.
To give more information about the schedule, you can edit the following attributes by clicking on the "Grease Pencil" โ๏ธ:
An IfcCostItem describes a cost or financial value together with descriptive information that describes its context.[...] An IfcCostItem can be used to represent the cost of:
Click on the tree like button to display the Cost Schedule Tree View and enable adding Cost Items.
Clicking on โ Add Summary Cost
will add a root cost item. At the moment, it has no ID, no Name, no Cost Value, nor Quantity. You can't tell much yet, so here's a description of the columns:
Let's fix this!
Editing the ID and the name can be done by double clicking within the tree view. I have called my root cost item Project EC1-5D-Tutorial
and set the ID to EC1-DB
.
You can also edit the cost item attributes (including the name and Identification), by pressing on the greasepencil. Editing attributes is the same as usual.
We'll add cost items in a hierarchy, to create a simple Cost breakdown structure (CBS). Select a cost item, and press on "+Add" to add a child cost item. You can create as many levels as you wish. levels, as shown below:
Ideally, the Work Breakdown Structure (WBS) should be used as a basis to create the CBS, where the cost items Ids should refer to the relevant WBS Codes.
Here's a small example below, this will allow us to go into great detail for self production, digging into 4D again, as well as review how to budget costs for packages to be awarded to subcontractors.
Let's look at a single cost item, we'll select the "Window Type 01" cost item. We'll add a cost rate - which can be added from a schedule of rates ( we'll see this later on), or can be added manually:
Press on the coin-like button to add a cost value. Below the tree, you can add a fixed cost of 350
to this cost item. Write 350
in the number field, and press on the "+" button to add it to the cost item.
Note how you can add multiple cost values to a single cost item. The total cost rate will be the sum of all the cost values.
Tada! It should be listed an look as above.
We don't yet have any currency in this project, so let's add one. Click on the "Currency" button, and add a currency from the predefined list or create your custom currency. This should be the ISO currency code. I have added GBP
for British Pounds.
Then click on "+" to add it to the project.
We'll now create quantities for our cost items.
There are many ways to do this:
We'll start with the "Window Type 01" cost item. We'll create a quantity for the number of windows of this type. Assuming we have a larger project than this current example, we would need to search and select the elements we want to count.
We can go to the Project Overview Tab, Grouping and Filtering Panel, and add a Search Group.
We'll be adding two filters, a Filter class IfcWindow
and a Filter Type PF-01
.
When you press on Search
, you should see all the windows of type PF-01
in the 3D view selected.
Tip: Queries ๐
Keep note of the Filter Query, by clicking on the "Filter" button. We'll need to understand this syntax if we want to automate the process of assigning elements to cost items through a spreadsheet using such queries
IfcWindow, type="PF-01"
.
Back in the cost panel, with your cost item selected, look at the Cost Item Quantities Subpanel.
To assign and count elements you've selected, click on the "+" button. This will simply count the elements you've just assigned to that cost item. You can also select one assigned elements to remove items individually, or alternatively, press on Clear assignments
to remove all assignments.
Ensure your building Elements have correct Quantities - as accurate as how a trained quantity surveyor would derive them manually. If you're not sure about the quality of your derived quantities, I'll show you some examples in the full 4D & 5D course.
Just as before, we'll search for the elements we want to derive quantities from. We'll be adding two filters, a Filter class IfcCovering
and a Filter Type RMF-01
. Giving us a query of IfcCovering, type="RMF-01"
.
Press Search, and you should see all the elements of type RMF-01
in the 3D view selected.
Back in the cost panel, with your cost item selected, look at the Cost Item Quantities Subpanel again. With the correct quantity type selected, click on the "Properties"-like button to do a quantity take off. This will also derive the total quantity for the cost item, and if you have a cost rate, it will also show the sub-total.
We can add a quantity manually, by selecting the cost item, and clicking on the "Property"-like button. This will show a dropdown list below the schedule tree, where you can choose the quantity type and then press on the "+" button to add it to the cost item.
Once you click on "+" you can edit the quantity value. I have added IfcQuantityTime
with a value of 365
days.
Tip: Units ๐
You cannot edit the unit here. It so happens I've set it the
day
unit as my default project unit. If you need to change the unit, you can do so in the Blender Scene Properties Project Overview Tab โก๏ธ Geometry Panel > Unit Panel. Add aday
IfcConversionBasedUnit to the project, and set it as the default unit. All your time quantities will then be in days.
What if we can get time information from a task ? We can then assign a task to a cost item, and derive the quantity from the task.
A task can also have a Quantity Set. For example, if the task duration is 5 days, the Qto_TaskBaseQuantities
would have as properties:
We need to select the task, and then the cost item, and then in the Cost Item Quantities subpanel, under Tasks, choose the correct quantity, and hit the Properties
-like button. This will:
Give it a price, and off you go estimating costs from tasks!
A resource can also have a quantity set, and can be assigned to a cost item directly, allowing to derive the quantity from the resource.
Under the Cost Item Quantities Subpanel > "Resources" section: Select the resource and the cost item, a dropdown will pop-up if you have quantities on your resource - select the correct quantity type, then press on the "Property"-like button to:
Note: Labor Resources Qto
Note: Material Resources Qto
Note: Equipment Resources Qto
Warning: Crew, Subcontractor, Product
Crews do not have Qtos.
Subcontractor and Product Resources are not supported for Qtos at the moment.
The ultimate 4D-5D workflow I enjoy, is to calculate costs from resources which are assigned to tasks.
We previously used the building objects assigned to tasks to calculate required resource work based on productivity data. Our resources also have base costs assigned to them, which we can now use to calculate the cost of the task. Let's go crazy : Here are the steps: Select the task, and the cost item. Press on "+" to assign the task, and then press on the coin-like button next to "Resources" section. Boom. You have a cost for your task.
Open up your cost item's value for editing, and you'll notice you have a list of cost values, one for each resource. The total cost is the sum of all the cost values. These cost values are derived from the resource's base cost, and the Schedule work of each resource.
Let's start with the Architectural cost item package.
Select the cost item, press on the coin-like button as below, and then under the schedule tree, you'll need to choose "Sum" and press on "+" to add it to the cost item.
Warning
Since the cost value is derived from the sum of its nested costs, you need to sure you also sum up the cost item package called
Windows & External Doors
, andExternal Facade
, otherwise you'll get a 0.
You can also create formulas to calculate the cost value of a cost item.
Tip:Cheat Sheet ๐
You can create simple formulas using operators:
- add:
+
- divide:
/
- multiply:
*
- subtract:
-
.For example, if you want to add a 20% profit margin to your cost item, you can write
SUM()*1.2
in the formula field.: Dumb Formulas30*25
, or30*(20+5)
are also supported. Smart Formulas:Labor()+(1.2*Material())
Let's look at the last one in detail:
First, add a cost item for which you will make a formula. Nest two children. One for Labor, and one for Material.
Add a cost rate with a `category=Labor``, by:
Then, select the parent cost item, and add a cost value as a SUM. Then just edit the formula to be Labor()
.
Add a second cost value, and edit the formula to be Material()
. Repeat the same for the ancestors of the cost item.
Now, finally, let's add a sum cost value to the root cost item, here called TOTAL WITH TAX
, click on the formula operator, and write Labor()+(1.2*Material())
.
You can then save the formula by pressing on the tick button.
We need to import a Schedule of Rates. We'l' use a template that looks as such:
To import a Schedule of Rates, you need to: Disable editing any cost schedule you may be working on. Press on the "Import" button, this will prompt a menu where you can choose to import a Schedule of Rates from a .csv.
Once imported, it should be listed as a cost schedule[SCHEDULEOFRATES] in the Cost Panel.
Here's what the tree looks like in BlenderBIM:
Open your cost schedule, and under the Cost Item Rates subpanel, click on the shcedule of rates to use from the dropdown list.
You'll then see your list of rates you can use. Select a rate, and Select a cost item. Then press on the "Copy" button to apply your rate.
We'll use a template that looks as such:
Hierarchy column
, to represent the nesting structure.Rate
to indicate it's a rate column.Quantity
column.Unit
column, these should be the standard symbol names.Property
and Query
columns.Tip: How to automate
The property column should be filled as
Count
or as the name of the Quantity from a Quantity set you want to take off.
The query columns needs a particular syntax: remember the query syntax we noted down earlier? That was for descriptive purposes - Here's an acutal list of rules for the syntax:
Here's a cheat sheet from the blenderbim.org documentation: Cheat Sheet
Use the .ods or .excel spreadsheet and save it to a .csv file for import. Go to the Blender Scene Properties โก๏ธ Costing and Scheduling Tab โก๏ธ Cost Panel -> Import button.
Chose your schedule, and boom ! You have a cost schedule, with auto assignments.