MINIMALIST MODELLING AND CODING OF REVIT FOR QUANTITIES
Sr. TANG Ki-cheung
[Link]
BIM Seminar Kuala Lumpur 2015 – 5D BIM for the Construction Industry
22 January 2015
Pullman Hotel Kuala Lumpur, Malaysia
organized by
Royal Institution of Surveyors Malaysia
CAPABILITIES OF REVIT
Can Revit produce Bills of Quantities from Revit model with the press of a button?
Can Revit model provide quantities?
elements
parameters
parametric modelling
Are the quantities in compliance with the standard method of measurement?
Are the quantities provided by a Revit model sufficient and ready enough to be converted to quantities according to the
standard method of measurement?
some parameters not schedulable
not the desired for SMM purposes
concrete shoulders
formwork
wall and ceiling finish areas
Then, how can we use Revit model to produce quantities for estimates or BQ?
third party quantity take-off software
still need to write the descriptions and do some linking
linking process may be quick or tedious
changes can be monitored
license and training costs
Quantity Surveyors are still required
Can we still get something useful from Revit models without third party QTO software?
SHOULD QS BUILD MODELS?
Are Revit models readily available from Architects and Engineers?
Without a BIM model, should QS build up models?
dimension sheet
cut-and-shuffle
schedule
scale rule
curvimeter
planimeter
Lotus 1-2-3 spreadsheet
Excel worksheet
digitizer
on-screen taking off, etc.
why textural and not graphical
Modelling Revit vs drafting 2D CAD
within the capability of the average QS
Bulk items like structure, fabric and finishes
shorter time
Models provided by Architects and Engineers
inspect and understand
integrity
QS parameters
Therefore, the answer should be yes
Should QS model every detail?
items like windows, doors, fittings and furniture
Level of details of the models if provided by the Architects and Engineers
no less than those traditionally provided for 2D CAD drawings
for estimating, tendering and construction
HOW MUCH DO WE NEED TO MEASURE?
Measure every bit net each time?
Inter-relationship between dimensions and quantities
Description Primary Qty Multiplier Unit
Wall - grade C40 - T thick (centre line area) A Super
Reinforced concrete Grade C40 A T Cube
Wall formwork A 2 Super
To deduct junction with slab if wall measured through
slab
To adjust for openings
To measure end of wall
Description Primary Qty Multiplier Unit
Column - grade C40 - W wide x D deep (height) H Run
Reinforced concrete Grade C40 H WxD Cube
Column formwork (junction with slab to deduct if H (W + D) x 2 Super
measured through slab)
To deduct junction with slab if column measured
through slab
Suspended beam - grade C30 - W wide x D deep - S slab L Run
(length)
Reinforced concrete Grade C30 L W x (D – S) Cube
Beam formwork below slab L W + (D – S) x 2 Super
Deduct slab formwork L W x -1 Super
To adjust for shoulders to higher grade walls or
columns
Suspended slab - grade C30 - S thick (area) A Super
Reinforced concrete Grade C30 A S Cube
Slab formwork A 2 Super
To deduct junctions with walls, columns and beams
To adjust for openings
Room - finishes group A - net plan area A Super
Floor finishes A Super
Ceiling finishes A Super
To adjust for beam sides
To adjust for door opening
To adjust for work behind fixtures
Description Primary Qty Multiplier Unit
Room - finishes group A - perimeter including columns - H L Run
room height - S skirting height
Skirting L Run
Wall finishes L H–S Super
To adjust for beam sides and ends
To adjust for openings
To adjust for work behind fixtures
Window W1 - W wide x H high opening - T thick concrete N Nr
wall - Room A
Window W1, fully described N Nr
Glazing N Detailed dimensions of Super
W1
Deduct T wall concrete N W x H x T x -1 Cube
Deduct wall formwork N WxHx2 Super
Add jambs and soffit formwork, T thick (or boxing N W+Hx2 Run
number as appropriate)
Deduct Room A wall finishes (assuming no dado) N W x H x -1 Super
Add Room A wall finishes to window reveal N (W + H x 2) x reveal Run
width
Add Room A window cill N W Run
Door D1 - W wide x H high opening - T thick brickwall - N Nr
Room finishes group A
Door D1, fully described N Nr
Deduct T thick brickwall N W x H x -1 Super
Add lintol N W + end laps x 2 Run
Description Primary Qty Multiplier Unit
Deduct Room A skirting N W Run
Deduct Room A wall finishes N W x H x -1 Super
Add Room A floor finishes N W x part of T as Run
appropriate
Door frames, architraves, painting, dowels, holdfasts, N Detailed dimensions of As
etc. D1 appropriate
Aggregate areas, lengths, girth first
primary quantities
converting into secondary quantities
Overall gross quantities first before making detailed adjustments
Descriptions can be very short
Just extract the primary quantities adequately described from the Revit model
Use Excel to handle the secondary processing
CODING AND WHY?
Information to be described in a concise, precise and consistent manner
Revit Family and Type descriptions
Separate from Architects’ or Engineers’ descriptions of Families and Types
Coding (“QS Desc”) sufficient, self-explanatory enough yet short and simple
WA-C40-100
CL-C40-500x600
BM-C30-300x500 : 120SL
SL-C30-120
RM-F-A
RM-P-A
WD-W1-1200x1500 : IWConc100-RoomA
DR-D1-920x2200 : IWBrick125-RoomA
Intuitive and
understandable vs
cryptic
SCHEDULES /
QUANTITIES
Revit schedules
So many schedules
Choices of columns must be well co-ordinated
Not practical to transfer the individual total quantity manually one by one
Schedule design
Consistent left 6 columns
Level and Mark for locational identification, for traceability
Only Type, QS Tag, QS Qty and QS Unit are really essential for billing
Other columns for calculating QS Qty or cross-checking, and can vary
Revit schedules to txt file to Excel worksheet
But only handle one schedule at a time
Macro:
All schedules exported to ne Excel file
3 columns of Type, QS Tag and QS Unit combined into a single “QS Desc” column in the style of “Type : QS
Tag : QS Unit”
“All Dim” worksheet
“QS Desc” worksheet
file name time marked
BILLING WORKFLOW
Data
(extraction from Revit schedules or direct measurement)
Primary Qty
(processing )
Secondary Qty
(processing )
Estimate or BQ
PRIMARY WORKSHEET
First 5 columns only of “All Dim” worksheet copied to “Primary worksheet”:
Seq column
Highlighted columns
Direct measurement formula used for Row Qty, say at Row 6, is =PRODUCT(E6:J6), meaning product of Dim1 ….
Times3.
SECONDARY WORKSHEET
Column A only of “QS Desc” worksheet copied to “Secondary worksheet”:
right portion
Upper region for direct measurement
Further processing of the Primary Qty is done in the lower region.
Primary Qty here = sum (Primary Qty of same QS Desc in Primary worksheet)
No sorting or grouping required
Formula =SUMIF(Primary!$J$5:$J$181;$C14;Primary!$K$5:$K$181)
If QS Desc in Primary worksheet matches QS Desc in Secondary worksheet, then add in corresponding Row Qty in
Primary worksheet
Code = code of Estimate or BQ items
Row Qty = product of all Dims and Times of same row, using “=Product()” function
They are also called Secondary Qty
Times Used in BQ, BQ Unit, BQ Descriptions are making reference to Estimate or BQ worksheet for error checking
Floor columns for analysis of quantities by floors
ESTIMATE OR BQ WORKSHEET
Estimate or BQ worksheet
Qty here = total of Secondary Qty of same Code in Secondary worksheet
Formula = ROUND(SUMIF(Secondary!$J$6:$J$176;$C41;Secondary!$L$6:$L$176);0)
If Code in Secondary worksheet matches Code in Estimate or BQ worksheet, then add in corresponding Row Qty in
Secondary worksheet
Floor columns for internal references only
Formulae to be changed to values and other internal reference data to be removed when formally issued
PROJECT UNITS
Units against numerical values by default
not convenient for further calculations
Solution
2 decimal places for Area
3 decimal places for Volume
units hidden
self-explanatory
Define project units
click Manage > Project Unit icon
PROJECT PARAMETERS
Select Manage > Settings > Project Parameters
SHARED PARAMETERS
Select Manage > Settings > Shared Parameters
DEFINING SCHEDULE COLUMNS
LEVEL AND MARK
Generally available with elements
TYPE
To represent both the information of Family and Type
QS TAG
QS Tag to supplement the information of “Type”
QS QTY AND QS UNIT
QS Qty
a calculated field
its units being a mixture of Nr, m, m2, m3
mixture not permitted by Revit
tricks
QS Unit
a calculated field
specially used to tell the real unit of QS Qty
WALL SCHEDULES
Wall Area schedule
QS Qty = wall areas
for generation of concrete volume and formwork area
Wall Length schedule
QS Qty = wall lengths
for the processing of quantities at junctions with slabs
Level = base constraint renamed in schedule heading
not absolutely necessary for billing purposes
QS Tag for entering information like
slab thickness
whether the wall is at slab edge
to facilitate adjustment for slab and wall junctions
Length, Width (i.e. thickness), Area and Volume are system parameters
Area not always equal to the elevation areas along the centre line
Wall height not available probably because the height can vary for a wall
Lengths at wall ends not available
Lengths around openings not available
QS Mean Area = Volume / Width
Mean Area / Length = QS Mean Area / Length
REPRESENTATION OF WALL LENGTH, AREA AND VOLUME
Wall length given Area given Volume given
Straight wall Centre line of wall Elevation area on one face Area along centre line x
e.g. = 12 m = 12 x 4 m wall thickness
12 m long x = 48 m2 = 12 x 4 x 0.3 m
4 m high x = 14.4 m3
300 mm thick
Wall L-shaped on plan with Centre line of wall with the Elevation area based on the Area along centre line with
mitre joint corner shared between the extreme length of each the corner shared x wall
e.g. two wings wing thickness
8 m x 400 mm wall + 5 m x = 7.85 + 4.80 m =8x4+5x4m = 7.85 x 4 x 0.4 + 4.80 x 4
300 mm wall = 12.65 m = 32 + 20 m2 x 0.3
both x 4 m high = 52 m2 = 12.56 + 5.76 m3
Wall length given Area given Volume given
= 18.32 m3
Wall L-shaped on plan with Same as above Elevation area based on the Area based on self length x
butt joint self length of each wing wall thickness
e.g. = 8 x 4 + 4.6 x 4 m = 8 x 4 x 0.4 + 4.6 x 4 x 0.3
8 m x 400 mm wall + 4.6 m = 32 + 18.4 m2 = 32 x 0.4 + 18.4 x 0.3
x 300 mm wall = 50.4 m2 = 12.80 + 5.52 m3
both x 4 m high = 18.32 m3
Wall L-shaped on plan with Same as above Elevation area based on the Area based on self length x
butt joint self length of each wing wall thickness
e.g. 7.7 m x 400 mm wall + = 7.7 x 4 + 5 x 4 m = 7.7 x 4 x 0.4 + 5 x 4 x 0.3
5 m x 300 mm wall, both x = 30.8 + 20 m2 = 30.8 x 0.4 + 20 x 0.3
4 m high = 50.8 m2 = 12.32 + 6 m3
= 18.32 m3
Wall T-off from another Centre line of T-off wall Elevation area based on the Area based on self length x
wall measured to centre line of self length of T-off wall wall thickness
e.g. main wall = 4.6 x 4 m = 4.6 x 4 x 0.3
4.6 x 300 mm wall T-off = 4.6 + 0.2 = 4.8 m = 18.4 m2 = 5.52 m3
from 400 mm wall
Area and Volume do not make deduction at junction with floor slab
Whether L-shaped wall is mitre or butt jointed
not make any difference to Volume
but Areas are different for the three cases
Area of formwork to sides of wall
should be = elevation area along the centre line x height x 2
= (7.85 + 4.8) x 4 x 2 = 50.6 m2 x 2
Areas given by Revit for the three cases of L-shaped wall are useless for this purpose
Wall junctions on plan:
preferred to use mitre joints at corner junction of walls
To change type of wall junctions on plan
select a wall > Wall Joins
select Butt to give a butt joint
select Previous or Next to change direction of joint
select Miter for a mitre joint
Volume
a more reliable value to use than Area
QS Qty using Wall Area for Estimate and BQ purposes
= value of Volume / Width, i.e. the QS Mean Area
QS Qty using Wall Length
to be used for adjustments for the wall and slab junction
not accurate enough but close enough
tolerated for the time being
ARCHITECTURAL WALLS
Up to beam or ceiling soffit only and not floor level
No feature in Revit to let architectural walls automatically go up and stop there
To be modelled one by one to ensure correct height
a time consuming process
prone to errors
FLOOR SLAB AND STRUCTURAL WALL JUNCTIONS
When modelling, after selecting a floor slab > > > Yes
The following dialogue will appear
will only appear if there are structural walls underneath the slab:
If “Yes” selected
volume of structural walls below measured to underside of slab
as shown for the wall on the left below
If “No” is selected
volume of structural walls below measured to top of slab
as shown for the wall on the right below
but the reported volume of slab will not be reduced
Reported height of structural walls when defined to be to the top of the slab
will not be chan ged in both cases
In theory, when a structural wall is attached to the bottom of a floor slab
wall top will move when floor slab is moved up or down
furthermore, the Modify Wall menu also has the following choices
However, the behaviour after attaching or detaching walls using the above slab or wall commands
not quite definite every time
Since slab and wall junctions
need to be adjusted in any case
when encountering the above dialogue when editing slab boundary
better to answer “No” to retain the default treatment
STRUCTURAL COLUMN SCHEDULES
Structural Column Length schedule
QS Qty = column lengths
for generation of concrete volume and formwork area
Structural Column Number schedule
QS Qty = column count
for processing of quantities at junctions with slabs
Column Location Mark
a system parameter which gives the grid line references
used here instead of the usual Mark
QS Tag for entering information like
slab thickness
whether the column is an edge or corner column
to facilitate adjustment for slab and column junctions
For a column defined to be of floor to floor height
Volume is a system parameter which gives
volume of concrete below slab
Length is a system parameter which gives
floor to floor height
Since floor to floor height is needed
QS Qty takes the value of Length for Column Length schedule
Built-in column width (b) and depth (h)
not available to properties window and schedules
therefore, two shared parameters QS Width and QS Depth
added to the Family Type parameters
make them available to schedules to facilitate error checking
QS App Slab Tk
= Length - Volume / (QS Width * QS Depth)
useful for indicating the approximate slab thickness
for counter-checking any errors in positioning the columns
Vol / (Wi x Dp)
= Volume / (QS Width * QS Depth)
gives the length of column below slab
STRUCTURAL FRAMING LENGTH SCHEDULE
Structural Framing Length schedule
basically a beam length schedule
Beams
Length
Cut Length - length between supporting columns or walls
QS Qty for Beam Length
= Cut Length
Beam width (b) and depth (h)
not available to the properties window and schedules
therefore, two shared parameters QS Width and QS Depth
added to the Family Type parameters
to make them available to schedules to facilitate error checking
FLOOR SLAB AREA SCHEDULE
Floor Slab Area schedule
QS Tag for the entry of information about
strutting height
QS Qty = Area
DOOR AND WINDOW SCHEDULES
Door Number schedule
Window Number schedule
QS Tag
for entry of information about
walls housing doors and windows
to facilitate future measurement of formwork to jambs and soffit, boxing and lintels
ROOM SCHEDULES
Default room schedules provided by Revit
can give Floor Area and Perimeter
but not Nett Ceiling and Beam surface areas
nor wall and column surface areas
If
Upper Limit = floor level above a room
Limit Offset = slab thickness in negative value
then
Unbounded Height = floor to ceiling height
good for generating the wall and column surface areas
Adjustment required for
beam surfaces and end junctions
window and door openings
may be taken care of when processing window and door quantities
To provide QS Qty for floor, wall, ceiling and skirting
4 separate schedules adapted from the Room Schedule
Room Floor Finishes Area schedule
Room Ceiling Finishes Area schedule
Room Wall Finishes Area schedule
skirting area to be deducted from wall area
Room Perimeter Length schedule
for skirting
Room elements do not have a Type parameter
a calculated field created for Type
which takes the names of the finishes as its values
EXPORTING SCHEDULES TO EXCEL
To install, select: Manage ribbon > Macros - Macro Manager > Create - Module > enter KCTCL at Module name >
OK > Edit to open the SharpDevelop coding screen
Copy the codes to the SharpDevelop coding screen and overwrite the existing codes generated by
Select SharpDevelop’s Project > Add Reference. Search for Microsoft Office Interop Excel. Click Select > OK to
confirm
Select Build > Build Solution
Go back to Revit’s macro manager menu
select the newly created macro
select Run
Bug
[Link] file = new [Link](folder_name
+ "\\" + filename_no_ext + ".txt");
[Link](folder_name + "\\" + filename_no_ext + ".txt");
[Link](folder_name + "\\" + filename_no_ext,
[Link],
default_value, default_value, default_value, default_value,
[Link],
default_value, default_value, default_value, default_value, default_value);
CLOSING
Revit schedules and corresponding Excel worksheets set up once
can be re-used as a set of templates for other Revit models
Number of chains of QS Desc -> secondary calculations -> Codes
can be expanded
as and when they are encountered
retained in templates to serve future use
to reduce burden of re-defining every time
Get into modelling
easy and powerful
as soon as possible
Understand it
Identify the limitations
Suggest solutions to make it really productive
Increase our user base and join force
push the software vendors to meet our need
End