CodeBook Tutorial
CodeBook Tutorial
The examples in the document describe working with Revit. CodeBook Pro can also be used with
AutoCad, MicroStation and ArchiCad. The concepts are similar whichever graphical tool is used,
where there are differences, detailed information can be found in CodeBook Pro Help.
The tutorial is arranged in two phases. The first phase will introduce the main concepts by exploring
a sample project and library. The second phase will start a new project and introduce the tools to
create your own project and libraries.
The time needed to complete the entire tutorial will be between one and two days.
This tutorial assumes that CodeBook Pro has been successfully installed and a valid license to use the
software is available.
Phase One.
More help
To follow up the topics presented here, you can find more information in the companion
document, CodeBook Pro Help.
Email: Support@CodeBookinternational.com
To use CodeBook Pro, you will need to start the software and open a CodeBook Pro project
database. The project database contains the schedule of accommodation and the detail design of
each room. This CodeBook Pro project will be linked to two library databases. One of which contains
standards and information about the FFE (Furniture Fixtures and Equipment) and the other
standards and information about the Room Data Templates (design, finishes, briefing and
environment).
Start the software by clicking on the icon on the CodeBook Pro icon on the windows desktop.
If CodeBook Pro has previously been used on your computer, then there will be projects listed under
the Recent Projects title.
For the purposes of this tutorial we will be using MS Access databases. The CodeBook Pro projects
can be stored in Sql Server databases. For further information see the CodeBook Pro Help
To ensure all the functionality described in the tutorial, select Administrator for the User Interface,
and select Revit for the Graphics Tool.
Select the option to create a Sample Training Project - Revit and then press Next
Define the folder to contain the sample project we are creating, and give the database a name
CodeBook Pro now has all the information it needs to create our sample project. Press Next to
complete the wizard and the CodeBook Pro Control Centre will be displayed.
Select the Project Explorer button in the Navigation menu, and a tree view will be displayed of the
sample project. Pressing the + symbols in the tree, the tree view will open and reveal the project
hierarchy of Sector > Department > Floor > Room.
At the Room level in the hierarchy, we can see that the rooms are coloured. The colours indicate the
link status of the room. Black has been linked to Revit, Red hasnt been linked to Revit, Orange exists
in Revit, but hasnt been placed.
Navigate to the NCU department, fourth floor and select one of the Black rooms. In the status bar at
the lower left of the Control Centre, information about the room will be displayed. The required area
of the room, as indicated by the program and the designed area, as drawn in Revit.
This is located in a folder called Revit Projects, in the project folder created using the wizard above.
Select one of the Black coloured rooms in the Project Explorer and using the context menu (by
clicking the right hand mouse button) select the function to Highlight Room. In the Revit window,
you should see a Red Spot flashing at the corners of the room boundary which indicates where the
selected room is located.
To terminate the highlight function and return to CodeBook Pro press Dismiss
As an alternative to the Highlight function, we can use Find Using Pick. Select this function and we
will be prompted to click inside a room within the Revit view. The Room will be located in the
database and the Project Explorer will display the room found.
Stored in the database is a unique integer ID for each room, and this is written as a shared
parameter to the Revit room. The database also stores the room outline as a set of points. It is these
that CodeBook Pro uses to calculate the room to highlight or find.
We now want to have a look at some of the detail information that the database contains about our
rooms by opening the Room Editor. We can do this either using the Project Explorer rcontext menu
(by clicking the right hand mouse button) or using the button on the Control Centre Ribbon.
The Room Editor will open on the Status page which gives us some information about the room,
such as whether it is linked to Revit, the stage of design and any notes such as reminders for
ourselves or colleagues.
Let us change these values. Click into the Room Name field and edit the name, perhaps precede the
name with a colour, i.e. Green Neonatal Nursery. Click in the Room Category and a drop down list
will be displayed. Select a different category. Click in the Required area field and enter a different
numeric value. Press the Save button to commit the changes to the database.
Select the tab labelled Instance Values. This will list values unique to the room instance. In the main
these are values that have been read from Revit and stored in the database, and so cannot be edited
using CodeBook Pro, they must be edited in Revit. For example, if you try and edit the Designed
Area, you will see that it cannot be changed. Make a note of the designed area.
We can synchronise a room stored in the database with a room in Revit, this will update values in
both the CodeBook Pro database and in Revit and ensure consistency. Above we changed some
values in the database, we will now synchronise these changes to Revit.
To zoom our view to the current room, we select the current room in the Project Explorer and using
the context menu (by clicking the right hand mouse button) select the function to Display Room. In
the Revit window, you should see your room zoomed in and centred to your Revit view.
Select the room in the Project Explorer then using the context menu (by clicking the right hand
mouse button) select the function to Synchronise Room, a message dialog will be displayed
indicating that the sync was successful. Observe that the Room Name in Revit has been updated, and
also the designed area in the Room Editor Instance tab.
Note that synchronising this way only updates the selected room. CodeBook will ignore any updates
to other rooms in the project. Further in this document we will learn to synchronise all rooms at
once.
We define the mapping of CodeBook Pro fields to Revit parameters or vice versa using the CodeBook
ribbon bar in Revit. Press Room drop down arrow under the Parameters tools and select Room and
enter the password. The default password for all CodeBook Pro projects is password.
Let us add a new mapping. Click in the field for Table Name in the row that has the asterisk beside it.
This will add a new row to the table.
Notice there is a pen symbol where the asterisk was previously. This indicates that the row is being
edited and hasnt yet been saved. Click in the row below and the pen vanishes and the data is
committed to the database.
Press the X at the top right of the form to Close the mapping window.
Note that the new parameter will only have been added for the selected room. CodeBook will not
have updated other rooms in the project. In the next chapter we will learn to synchronise all rooms
at once instead of syncing room by room as we have done here.
We now want to write the new Room Category parameter for all the rooms of the Revit project, so
we will select the Synchronise button on the CodeBook ribbon bar in Revit to sync. all rooms.
The Synchronise BIM to Database Links window is now displayed. Press Synchronise Rooms and
CodeBook will commence syncing all the rooms on Fourth Floor. If the Selected field is unticked then
CodeBook will not synchronise the rooms of that particular level.
We can also access the Synchronise BIM to Database Links window by selecting the Room Links
button from the Control Centre Ribbon.
Note
We know that these rooms are not linked to CodeBook Pro, and so need to be linked. However,
before we do so, we can use them to try out the sync trouble shooting tool. Select the down arrow
below the Synchronise button and select Troubleshoot Synchronisation
The donuts can be removed using the Remove Status Markers option.
Switch to the Home tab of the ribbon bar and press the Reporting button. From the tree listing the
report styles available, navigate to the AREA reports and expand with the + symbol.
Select the report List of Rooms by Category. Select the NCU department from the drop down beside
the Add Department button, then press the button to include the NCU department in the build list
above.
Press Create Report, when complete, the report will be opened in Excel.
Switch back to the CodeBook Pro Control Centre and select the Dept Table button and
the Department tab of the Room Properties form will be displayed. Here we can edit existing
departments, or add new ones.
In the last row, with the asterisk to the left, type ONC into the column headed Department code
and Oncology into the column headed Department Name. Notice the pen to the left hand side,
that indicates a record is being edited. Click in the row below, and the pen will disappear, as the data
is committed to the database.
To the right of the Department tab, select Floor. We can see that CodeBook Pro has added a Floor
called Default to our new Oncology department. All Departments must have at least one Floor. Edit
the Floor name to be 3rd Floor.
scroll to the bottom of the grid, so we can see the new row with the asterisk to the left
click in the column titled Floor Code and press the down arrow button that appears
from the drop down list select the Oncolgy department
if the room code and name columns cannot be seen, drag the splitter to the right
enter a room code of 01 and a room name of Consulting Room
enter a second room, of code 02 and name Reception
Press the button Room Editor and switch to the Room Values tab.
Switch to Revit and open the view called Third Floor, place a handful of Revit Rooms.
We can now link our new rooms to Revit. Press the ribbon bar button Add Link, focus will move to
Revit and there will be a prompt to select a room
If we check the Properties of the room in Revit, we will see that these have been updated with the
details of our new room, and the Revit Room tag will be displaying the correct Room Name.
In the CodeBook Pro Room Editor, we will see that the designed area displayed on the Instance
values tab will now show the area measured from Revit.
Switch to the CodeBook Pro Control Centre, using the Room Editor switch to the Room Data tab.
We can see that the room data is organised into four categories, Design, Finishes, Briefing and
Environment, and for each category there are appropriate data fields defined.
These field definitions can be edited, removed and additional fields added using the lookups Editor.
Details of which can be found in CodeBook Pro Help.
The fields can be text, numbers or a look up list. Enter a value into Activities and select a value for
Windows Type from the drop down list and press Save.
We can set the values for each room in our project using this method. Or we can import the values
from an Excel file, which will be covered in Phase 2 of this tutorial.
The most efficient way to define the Room Data for rooms is using Room Data templates. Press the
button Default to remove the values we have entered for the Room. Click in the right hand column
of the row titled Template Code and select a template from the drop down list and press Save.
Notice that if we enter a different Window Type by clicking in the window type row, and selecting a
different value from the drop down list and pressing Save. The value will be show in Green,
indicating that the value is different from the template. This allows us to override the template while
still allowing the other room data values to be inherited from the template.
Further details of how to create and edit room data templates can be found in CodeBook Pro Help.
Note: All these room data values can be written to or read from the Revit parameters of the linked
room.
The names of all the Room Data fields can be edited, fields can be shown and hidden, the display
order adjusted and values for any drop down lists added to and edited. This is done using the
Lookups Editor.
Switch to the Build tab of the CodeBook Pro ribbon bar and press Lookups. From the Category drop
down select Room Types. This will list all the fields applicable to the Room Type, one of which is
Room Category that we set for our rooms during an earlier exercise.
Select this in the table on the left, and in the table on the right, we can see the defined values. By
typing a code and description into the last row with the asterisk, we could add a new item. Add a
new item for Teaching, with a code of TCH.
From the Category drop down list select Room Data Finishes. This lists the available fields for the
finishes templates. Things to notice:
many are hidden, these will not be visible in the Room Editor or Room Data Templates editor
or Reports.
each row has a sequence number, this determines the order that they will listed in the Room
Editor and Reports.
if we select an item, we can edit its sub heading and the description
there are lots of unassigned fields that can be renamed and made available for use
We can create templates for design, finishes, briefing, environment and doors
We can also create Room Types, which allow us to build a high level template comprising of the
other templates and FFE assemblies.
Using the Templates Editor, we can Insert, Copy and Delete templates. Before editing is possible use
the File menu option Enable Editing and enter the password.
When in edit mode, we can change values for the templates and save them, in a similar manner to
that of the Room Editor. But changing a template can be updating many rooms in this CodeBook Pro
project and any other CodeBook Pro project using this library.
Using the Lookups Editor to create the lookup lists and the Templates editor to set the values it is
possible to create all the templates for a project.
However, a more usual method to use, is to create a CodeBook Pro project and build a set of
exemplar rooms, and when we are happy with these, use the Room Task functions on the Manage
tab of the ribbon bar, to make the rooms into templates.
We will see later in this tutorial how to use wizards to import data from Excel files to create and
modify rooms and the room data. These will build the lookup lists and set values efficiently.
Press the FFE tab of the Room Editor and an empty list of the Required FFE items for the current
room will be displayed.
Press the button Furniture, Fittings and Equipment on the Navigation bar, and a list of all the FFE
items in the library will be displayed.
To find an item of FFE in the library, we can use the scroll bar. Or we can type the first letters of what
we wish to find into the yellow filter bar. Type Desk and just items with a description starting with
the word Desk will be shown.
We can drag and drop one of the desks onto the Room Editor Required equipment list, to add a desk
to the room.
Press the Assemblies button in the Navigation bar, and drag one of the assemblies to the Required
list of the Room Editor. Click the + symbol and the list will expand to show the contents of the
assembly.
We are now going to place the items from the Required equipment list into a room in Revit. Firstly,
we want to be sure that we are going to place the items in the correct room, so we will use
CodeBook Pro to Display the room.
Focus will switch to Revit, click inside the room and all the families will be inserted.
Notice that the families have been arranged according to a predefined layout. But the individual
desk, that had no position associated with it, has been dropped near the insertion point. All these
items are Revit families, and we can now move copy or delete them using Revit as needed.
Switch back to CodeBook Pro, and select the Designed tab on the Room Editor. We will see that this
list is empty and there is a note No Equipment defined for this room.
To update the list to reflect the families we have placed into Revit. Use the context menu (right hand
mouse button) and select the option to Update Designed List. A dialog that provides some options
for the update process will be displayed. Press Update Designed Equipment List
CodeBook Pro will now search through the Revit model and identify all the families in the room. This
will take a few moments as CodeBook Pro does not use the Revit schedule to generate the list, but
uses the criterion specified in the above dialog.
It will also find all families, even those above the ceiling, and can append equipment from other
Revit projects, such as an MEP project.
CodeBook Pro also provides a tool that allows families to be assigned to a room, even if they are not
located in the room, for instance a nurse call indicator might be located in a corridor, but we want it
to be scheduled in a given room.
Now let us imagine that we are undertaking the user consultations and the client is asking for
adjustments to the Required Equipment list. We need to add and omit items, and keep a diary of the
changes made and why.
Now switch to the Comparison tab, and we will see that there are now some discrepancies between
the required and designed equipment lists that need to be corrected.
Use the Context menu of the Comparison equipment list, to Place into BIM the missing items.
Having made changes to the Revit model, we must repeat the update of the Designed Equipment
list, to refresh the equipment list stored in the database. After which, the Comparison tab should
indicate that there are no discrepancies.
Note: In the above exercises we have been using the Room Editor Required equipment list for
inserting components and assemblies.
We can also Insert items by selecting an item in the Component or Assembly list and using the
ribbon bar Insert Component button for when we do not wish to create a required equipment list.
Select the Reporting button and navigate the list of report styles to EQUIPMENT, expand the list
using the + symbol and select the report Components by Room (xls)
Ensure the Project Explorer is visible, and drag + drop the room from the ONC department that we
have loaded with equipment onto the build list of the reporting form and press Create Report.
We can adjust the headings of the reports, and filter the contents and choose which data to include.
Press Report Settings.
We have been working using the component list from the Navigation bar which lists the code and
description of each item, but we can define much more data for each item. To view this, select
Library Viewer from the ribbon bar.
We can explore the data for the selected item using the tabs, Detail, Services, Purchase, Facilities
etc.
If we wish to edit any values for the FFE library, we need to select the Build ribbon bar tab, and press
Library Editor. We will be prompted to enter the library password and our initials. (The default
password will be password).
To add a new item to the library, press the button Library Add > without Graphics. Select the
Summary tab, and in the code field type TRE001, and then in the description field type Cornus
Florida. The tree is an absurd item for us to be adding to the room, but shows that we can link
CodeBook Pro to any family in Revit.
We now need to associate the new item with a Revit family. Switch to Revit and create an instance
of the Planting > Cornus Florida in our room.
Now press the button Library Update > with Family, and when prompted, select the tree in Revit. In
the Library Editor, the thumbnails will be updated to show the tree, and bim name field will be
updated to the family type and category name.
Select the button Library Add > from Loaded Room. You will be prompted to click inside the room in
Revit. CodeBook Pro will then retrieve a list of all the families within the room and their locations
and use them to create the new assembly. When the process is complete, edit the code and
description to something suitable.
Select the Contents tab, and a list of all the items that comprise the assembly will be displayed.
We have already seen that we can delete individual rooms using the Room menu of the Room Editor
If we need to delete an entire department, then we do this using the department table. Switch to
the Home tab of the ribbon bar and select the button Dept Table.
Select the row contain the department to be deleted, by clicking in the record selector at the left
hand side of the table. Press the DEL key on your keyboard.
Note: There is no undo option with databases, once an edit or an action is committed to the
database, it is permanent. Therefore, if you are carrying out tasks that you might regret, it is wise to
take a backup copy of the database. The easiest way to do this is to copy the mdb file using Windows
explorer.
Notice that our department has gone, but we now have a new department called HOMELESS.
When we deleted the department, CodeBook Pro didnt delete all the rooms in the department, but
moved them to the department called HOMELESS. This is done as a safe guard, a user might remove
the department, not realising that all the rooms it contains will be removed also. If an error has
been made, then the HOMELESS department can be renamed, and the rooms retained, or the rooms
can be moved to different departments.
However, if one definitely wants to remove all the rooms. Select the ribbon tab Load and press the
button Delete Homeless rooms, and all the rooms will be deleted permanently.
This concludes phase one of the tutorial, during which we have explored an
existing CodeBook Pro project and many of the key CodeBook Pro
functions.
In phase two of the tutorial, we will learn how to build a new project and
create our own equipment and room data libraries.
To create a new project, we need to return to the CodeBook Pro Open form. Either restart the
CodeBook Pro application, or if CodeBook Pro is running, select New from the ribbon File menu.
Select New Project, and the new project wizard will be loaded. Select the Standard Project option,
and press Next.
Specify a folder for the new project and a name for the project database. Press next and fill out the
project details.
If we have our project program / brief in an xls file, we can use this to build our CodeBook Pro rooms
and departments. If not, we can just bypass this step and proceed to create the new empty project
database.
For the tutorial, we are going to use an xls file to create or CodeBook Pro departments and rooms,
and will use the example Excel file for this.
Press View File and Excel will be started and the example file opened. If CodeBook Pro fails to locate
the file, then use windows explorer to navigate to C:\ProgramData\CodeBook Pro\Documents or
where CodeBook Pro is installed and open the file directly.
It is best to make the top row clear headings of what the column contains, as this will make it clearer
to identify the columns when mapping these to CodeBook Pro fields at later steps in the wizard.
The file should not have blank rows, and should be edited to remove any rows that do not represent
a room.
Using Excel, save the file to a location where it can easily be located, perhaps the folder in which you
are creating your new project. Then Close Excel. It is best to ensure Excel is closed while using the
Import Wizard, to avoid any possible conflicts between different instances of Excel.
Return to the CodeBook Pro New Project Wizard and press Next, and then Create Project
CodeBook Pro will create the new project and start the Import wizard. It may prompt for the xls file
to be imported. Select the worksheet containing the data to be imported and press Next
Step 4: Indicate the last row of data to be imported = 15, press Next
Step 5: Here we will indicate the mapping of columns to CodeBook Pro fields. Press the button Add
All Columns, and the Excel columns will be listed under Columns to Import
What we now need to do is define the CodeBook Pro field to receive each item of data. For the first
row, select Sector from the Column CodeBook Pro Table, and then Sector Code from the CodeBook
Pro field column and so on, as shown below.
When complete press Save Settings, this will write our settings to the xls file, to save us needing to
define them again if we choose to reuse the file.
Press Next. On Step 6, one can specify the department and floor to which the new rooms should be
added if one hasnt defined this in the Excel file. We have, so do not need to edit these. Press Apply
Import and the wizard will create our new rooms. When complete close the wizard, select the
Project Explorer and if necessary press Refresh Navigator
We should see our new departments and rooms listed. They are all displayed in Red, because we
havent yet linked them to Revit.
We have just used the Import Wizard to create new rooms in the CodeBook Pro project, but we can
also use the wizard to update rooms, for instance adding additional columns of data.
First we need to export our project to an xls file, into which we will add some new data. Press the
Reports button on the ribbon bar and in the list of report types expand SCHEDULE and select
Template for Wizard Import Room (xls).
On the right hand side is the build list. Press Include All to add all the rooms of our project.
Press Create Report, and the template file will be created and opened in Excel.
When a room is created in the CodeBook Pro database, it is given a unique and unchanging integer
number. When we use the Import Wizard to update rooms, it is this number that CodeBook Pro will
use to identify which room in the database is to be updated, therefore, it is vital that the numbers in
this column are not changed. All other columns in the file can be edited as needed.
For this exercise we will add 2 new columns, one we will call Wall Finish, and the other Floor
Finish, we will then add values for each column to every row in the file. For instance, paint, tiles,
carpet, vinyl, timber. When we have made the edits. Save the xls file and close Excel.
Step 5 is where we will identify the new columns of data to be added to our project. Press Clear Grid
And identify the 2 columns we wish to import, and the CodeBook Pro fields that we want to have the
data written into as the picture below.
Notice that on completion the dialog will indicate that 0 rooms have been added, and 14 rooms have
been updated.
Open the Room Editor and switch to Room Data > Finishes. You will see the new data values listed.
We could create rooms in Revit and then link these one at a time, as we did in the Phase One
exercises, but it is more efficient to use the Import Rooms function to create and place the rooms
directly.
Create a new Revit project and then switch to the CodeBook tab on the Revit ribbon bar.
Press button Load > Import Rooms and import the Entire Project
Once complete, Revit may display this dialog, which can be ignored. In order to create the Revit
rooms, CodeBook Pro places the rooms with a temporary location and then un-places them, so they
are available to be placed by hand.
Note: For the tutorial we have included all the rooms, but if the CodeBook Pro project had many
rooms, it would be more convenient to import the rooms one department at a time, so the rooms
drop down in Revit does not get unwieldy.
When placing the rooms, it is important to remember that each item in the room list is a distinct
instance of a room. When placing, Revit will allow you to place the same room several times, but this
should be avoided, because it will be creating duplicated links to the CodeBook Pro rooms.
Therefore, place a room once, and then select a different room to place from the drop down list.
This action will remove the placed room from the list, so you will be able to see how many rooms
remain to be placed.
For the tutorial, draw some rooms in Revit and place a handful of rooms. Notice that the placed
rooms have had their parameters such as room name and required area updated with the values
from the CodeBook Pro database. The parameters that have been written, will be as defined using
the Room parameter mapping as described in Phase One of this tutorial.
Save the Revit project. CodeBook Pro has created a folder called Revit Projects in its project folder
you may want to save the project there.
This will synchronise the links between the CodeBook Pro database and Revit. If we switch back to
the CodeBook Pro Control Centre, open the Project Explorer and Refresh Navigator we will see that
some rooms are orange and some black. The orange indicates the rooms that exist in Revit but
havent yet been placed. If we check the designed areas, the un-placed rooms will be zero, but the
black rooms will have a valid designed area.
Before CodeBook Pro can Insert FFE components or schedule them from Revit, we need to add a
reference to each family of interest to the CodeBook Pro library.
Switch to the CodeBook tab of the Revit ribbon bar and press Add families to Library
Select the option From the Current Revit Project and press Save Batch File
When complete, switch back to the CodeBook Pro Control Centre, select the FFE button and then
Components button from the navigation bar. The new items should be listed. If not, press Refresh
Navigator. Open the FFE Library Viewer to see further details of the new items.
If we build a CodeBook Pro library from a project, then the CodeBook Pro library can only be used
with that project because CodeBook Pro will not know where to locate the source rfa files of the
families. Therefore, it is better to create the library from rfa files. This means that if the library is
used with a different Revit project and the family cannot be found CodeBook Pro can load the rfa file
automatically.
Switch to the CodeBook tab of the Revit ribbon bar and press Add families to Library
Select the option From a folder of rfa files and press Browse. Navigate and select the folder
containing your rfa files. For this exercise you can use one of the Revit supplied libraries for instance:
When a folder has been identified, press Save Batch files. Excel will be started and the batch file will
be opened. The content can be edited for group, class, codes and description etc.. When complete,
save the file and press Batch Add to complete the process.
When complete, the new items will be visible in CodeBook Pro. If not, press Refresh Navigator
When starting a new project, the program may list components for which we do not have an existing
family. In this circumstance we can create a batch file in xls that lists all the missing items and
CodeBook Pro will use this to create the missing Revit families as cubes of the correct size. For items
such as shelves or counters these can be used as is, for other items detail can be added over time.
But from day one, we can start loading FFE into Revit.
Switch to the CodeBook tab of the Revit ribbon bar and press Add families to Library
Select the option Defining dimensions for length, depth and height. Press Save Batch File and Excel
will be started and a template batch file will be opened.
The file gives an example of 3 items that can be created. These can be replaced with the items you
wish to create.
Save the xls file when the edits are complete and press Batch Add.
Revit will prompt for a Revit Family Template, this is needed as a seed file for the new families to be
created. Revit installs some template files, the default location for these is
All the new families will be created using this template. However, using the equipment class it is
possible to define different templates for different types of family being created. This is done using
the CodeBook Pro Project settings. Further details can be found in the CodeBook Pro Help
When complete, the new items will be visible in CodeBook Pro. If not, press Refresh Navigator
Any corrections or suggestions for improvements will be gratefully received by the support desk.
More help
To follow up the topics presented here, you can find more information in the companion
document, CodeBook Pro Help.