BIM ingame tutorial: Difference between revisions

From FreeCAD Documentation
No edit summary
Line 3: Line 3:
[[Image:BIM tutorial screenshot.png|1024px]]
[[Image:BIM tutorial screenshot.png|1024px]]


{{BIMTutorialAction|descr=This is the in-game tutorial of the [[BIM Workbench]]. It is not meant to be read here on the wiki, but rather to be started from inside FreeCAD, in the BIM workbench, under menu '''Help -> BIM tutorial'''. It includes a series of steps to be completed by the user. Each step is terminated by an instance of the [[Template:BIMTutorialAction|<nowiki>{{BIMTutorialAction|descr|goal1|test1|goal2|test2}}</nowiki>]] template, which informs of the condition that need to be met}}
{{BIMTutorialAction|descr=This is the in-game tutorial of the [[BIM Workbench]]. It is not meant to be read here on the wiki, but rather to be started from inside FreeCAD, in the BIM workbench, under menu '''Help -> BIM tutorial'''. It includes a series of steps to be completed by the user. Each step is terminated by an instance of the [[Template:BIMTutorialAction|<nowiki>{{BIMTutorialAction|descr|goal1|test1|goal2|test2}}</nowiki>]] template, which informs of the condition that need to be met. Images should be 300px wide.}}


=== Welcome to the BIM workbench! ===
=== Welcome to the BIM workbench! ===
Line 99: Line 99:
==== Annotation ====
==== Annotation ====


These tools produce annotative objects such as dimensions, texts, labels or grids, that are no used for modeling but to annotate your models and produce understandable drawings.
These tools produce annotative objects such as dimensions, texts, labels or grids, that are not used for modeling but to annotate your models and produce understandable drawings.


==== Snapping ====
==== Snapping ====
Line 121: Line 121:
There are many ways to create BIM objects in FreeCAD. You can use the native [[BIM Workbench|BIM tools]] from this workbench, or use any other FreeCAD tool from other [[Workbenches|workbenches]]. Both the 2D drawing tools and the 3D BIM tools from this workbench, unlike other workbenches such as Part Design, make extensive use of '''working planes''' and '''snapping'''.
There are many ways to create BIM objects in FreeCAD. You can use the native [[BIM Workbench|BIM tools]] from this workbench, or use any other FreeCAD tool from other [[Workbenches|workbenches]]. Both the 2D drawing tools and the 3D BIM tools from this workbench, unlike other workbenches such as Part Design, make extensive use of '''working planes''' and '''snapping'''.


The [[Draft SelectPlane|working plane]] is where your next objects will be created. You can set it to one of the basic orthogonal planes (ground, front, side), or use any selected face to define the current working plane. You can also use [[Draft SetWorkingPlaneProxy|Working Plane Proxies]] from menu '''Utils''' to store a specific working plane position inside your model. [[Arch BuildingPart|Building Parts]] also contain an implicit working plane. Changing the current working plane is done by pressing the working plane button on the BIM toolbar. The '''grid''' always reflects where the working plane is.
The [[Draft SelectPlane|working plane]] is where your next objects will be created. You can set it to one of the basic orthogonal planes (ground, front, side), or use any selected face to define the current working plane. You can also use [[Draft SetWorkingPlaneProxy|Working Plane Proxies]] from menu '''Utils''' to store a specific working plane position inside your model. [[Arch BuildingPart|Building Parts]] also contain an implicit working plane position. Changing the current working plane is done by pressing the working plane button on the BIM toolbar. The '''grid''' always reflects where the working plane is.

As you will have noticed, view angle and working plane are not tied together. You can work on your working plane from any view angle.


Set the working plane in "Top" mode now:
Set the working plane in "Top" mode now:
Line 177: Line 179:
=== Don't forget to save the file regularly! ===
=== Don't forget to save the file regularly! ===


Like any other computer application, FreeCAD is subject to failing or crashing, specially when we have little experience with it. Saving your file often is a very good habit to take in these early moments.
Like any other computer application, FreeCAD is subject to failing or crashing, specially when we have little experience with it. Saving your file often is a very good habit to take in these early moments. FreeCAD also has an auto-saving mechanism, that you can set up under menu '''Edit -> Preferences -> General -> Document'''.


Save your file now by using menu '''File -> Save'''.
Save your file now by using menu '''File -> Save'''.
Line 199: Line 201:
[[Image:BIM Tutorial 19.jpg|300px]]
[[Image:BIM Tutorial 19.jpg|300px]]


The next step is to build a slab using our rectangle as its base, or extrusion profile. In FreeCAD, structural objects such as columns, beams or slabs are all made with a same tool, called '''Structure'''. After a structural object is created, setting is '''IFC Role''' property to the desired type (column, slab, etc...) is all that is needed to turn it into that type.
The next step is to build a slab using our rectangle as its base, or extrusion profile. In FreeCAD, structural objects such as columns, beams or slabs are all made with a same object, called '''Structure'''. After a structural object is created, setting is '''IFC Type''' property to the desired type (column, slab, etc...) is all that is needed to change its type.


Make sure our rectangle is selected, then press the [[Image:Arch_Structure.png|16px]] '''Structure''' button from the toolbar (or choose menu item '''3D/BIM -> Structure'''). After your structural object is created, we need to make the following changes to its properties:
Make sure our rectangle is selected, then press the [[Image:BIM_Slab.png|16px]] '''Slab''' button from the toolbar (or choose menu item '''3D/BIM -> Slab'''). As stated above, this can also be done with the Column or Beam tools, as they all produce the same type of object. After our object is created, we need to make the following changes to its properties:


* Set its '''Height''' to '''20 cm'''
* Set its '''Height''' to '''20 cm'''
* Set its '''IFC Role''' to '''Slab'''
* Verify its '''IFC Type''' is set to '''Slab'''


Now we need to move our new roof slab to its correct position, that is, above the walls. So we need to move it upwards, in the Z direction, by a distance of 250 cm, which is the height of our walls. We can simply edit the '''Placement''' property of our slab, expand its '''Position''' attribute, and set the value of '''z''' to 250 cm. Our slab is now well in place:
Now we need to move our new roof slab to its correct position, that is, above the walls. So we need to move it upwards, in the Z direction, by a distance of 250 cm, which is the height of our walls. We can simply edit the '''Placement''' property of our slab, expand its '''Position''' attribute, and set the value of '''z''' to 250 cm. Our slab is now well in place:
Line 224: Line 226:
Once our rectangle is drawn, we can just follow the same method as in method 1 to turn it into a slab (select it, press the '''Structure''' button, adjust its properties).
Once our rectangle is drawn, we can just follow the same method as in method 1 to turn it into a slab (select it, press the '''Structure''' button, adjust its properties).


{{BIMTutorialAction|goal1=Create a rectangle|test1=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Rectangle" in o.Name]) == 1)|goal2=Create a 20cm thick slab|test2=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "IfcRole" in o.PropertiesList and o.IfcRole == "Slab" and o.Height.Value == 200]) == 1)}}
{{BIMTutorialAction|goal1=Create a rectangle|test1=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Rectangle" in o.Name]) == 1)|goal2=Create a 20cm thick slab|test2=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "IfcType" in o.PropertiesList and o.IfcType == "Slab" and o.Height.Value == 200]) == 1)}}


=== Create a metallic column ===
=== Create a metallic column ===
Line 232: Line 234:
In FreeCAD, it is very easy to turn objects or groups on and off, and the tree shows you clearly what is shown and what is hidden. Be sure to use that often!
In FreeCAD, it is very easy to turn objects or groups on and off, and the tree shows you clearly what is shown and what is hidden. Be sure to use that often!


The '''Structure''' tool has some built-in profiles that we will use now. Make sure nothing is selected, then press the Structure button. In the '''Structure options''', select '''CTH''':
The '''Column''' tool (as well as the Beam tool) has some built-in profiles that we will use now. Make sure nothing is selected, then press the Column button. In the '''Structure options''', select '''CTH''':


[[Image:BIM Tutorial 24.jpg|300px]]
[[Image:BIM Tutorial 24.jpg|300px]]


And click a point to place your column, more or less at this position. Give the new column an IFC Role of "Column" and a Height of 250cm.
And click a point to place your column, more or less at this position. Make sure the new column has an IFC Type of "Column" and give it a Height of 250cm to make it the same height as our walls.


[[Image:BIM Tutorial 25.jpg|300px]]
[[Image:BIM Tutorial 25.jpg|300px]]
Line 244: Line 246:
==== Add a support plate ====
==== Add a support plate ====


However, in the real world, it will be difficult to attach our metal column to the concrete slab. So let's add a plate to its top, which can be bolted to a corresponding plate molded inside the concrete. This will illustrate how you can easily modify BIM objects and create the very precise ones you need.
However, in the real world, it will be difficult to attach our metal column to the concrete slab. So let's add a plate to its top, which can be bolted to the concrete slab. This will illustrate how you can easily modify BIM objects and create the very precise ones you need.


Let's start by changing the height of our column from 250cm to 249cm, to give it a space for a 1cm-thick plate. Then draw a 20cm x 20cm rectangle, either on the ground plane or on the top of the column, as we learned in the previous step. Use the '''Move''' tool, with midpoint and center snaps turned on, if needed, to center the rectangle over the column center.
Let's start by changing the height of our column from 250cm to 249cm, to give it a space for a 1cm-thick plate. Then draw a 20cm x 20cm rectangle, either on the ground plane or on the top of the column, as we learned in the previous step. Use the '''Move''' tool, with midpoint and center snaps turned on, if needed, to center the rectangle over the column center.


Using the Structure tool again, create a structural object from the rectangle, give it a height of 1cm, and move it to a height of 249cm:
Using the Slab tool again, create a structural object from the rectangle, give it a height of 1cm, and move it to a height of 249cm:


[[Image:BIM Tutorial 26.jpg|300px]]
[[Image:BIM Tutorial 26.jpg|300px]]


Now let's add our plate to the column. BIM objects in FreeCAD have two properties named '''Additions''' and '''Subtractions''' that can receive objects that need to be unioned or subtracted to/from them. To add the plate to the colum, select the plate, then, with '''Ctrl''' pressed, select the column and use the [[Image:Arch_Add.png|16px]] '''Add''' tool the '''Modify''' menu. Our plate is now part of the column:
Now let's add our plate to the column. BIM objects in FreeCAD have two properties named '''Additions''' and '''Subtractions''' that can receive objects that need to be unioned or subtracted to/from them. To add the plate to our column, select the plate, then, with '''Ctrl''' pressed, select the column and use the [[Image:Arch_Add.png|16px]] '''Add''' tool the '''Modify''' menu. Our plate is now part of the column:


[[Image:BIM Tutorial 27.jpg|300px]]
[[Image:BIM Tutorial 27.jpg|300px]]


By starting from simple shapes, and adding or subtracting objects, we can quickly create very complex BIM objects.
By starting from simple shapes, and adding or subtracting objects, we can quickly create very complex BIM objects. Note that the Additions and Subtractions of a given BIM object can easily be changed by double-clicking them in the tree view and using the Add and Remove buttons there. Also, a same object can be used as an addition or subtraction to multiple other objects.


[[Image:BIM Tutorial 28.jpg|300px]]
[[Image:BIM Tutorial 28.jpg|300px]]
Line 264: Line 266:
=== Add windows and doors ===
=== Add windows and doors ===


Doors and windows are created with the same [[Arch Window|Window]] tool in FreeCAD. They can be independent or, if an object is selected when running the tool, inserted in another BIM object, in which case they will automatically create a hole through it.
Like columns and beams, doors and windows are created with a same [[Arch Window|Window]] object in FreeCAD. Only their IFC type changes. They can be independent or, if an object is selected when running the tool, inserted in another BIM object, in which case they will automatically create a hole through it.


Let's insert a 80cm x 210cm glass door in one of our walls. Start by placing the working plane on a face of a wall, which will make it easier to precisely place our window:
Let's insert a 80cm x 210cm glass door in one of our walls. Start by placing the working plane on a face of a wall, which will make it easier to precisely place our window:
Line 270: Line 272:
[[Image:BIM Tutorial 29.jpg|300px]]
[[Image:BIM Tutorial 29.jpg|300px]]


Then, with the wall selected, select '''Window''' from the '''BIM''' menu. Select the '''Glass door''' preset, and set the '''Width''' to 80cm and '''Height''' to 210cm. You can set the other values as you like:
Then, with the wall selected, select '''Door''' from the '''BIM''' menu. Select the '''Glass door''' preset, and set the '''Width''' to 80cm and '''Height''' to 210cm. You can set the other values as you like:


[[Image:BIM Tutorial 30.jpg|300px]]
[[Image:BIM Tutorial 30.jpg|300px]]
Line 285: Line 287:


{{BIMTutorialAction|goal1=Create a glass door|test1=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Window" in o.Name]) == 1)}}
{{BIMTutorialAction|goal1=Create a glass door|test1=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Window" in o.Name]) == 1)}}

=== Organizing our model ===

We now have in our model a growing collection of BIM objects. It is time to tidy things up. Creating well organized models, easily understandable by others, is a very important part of building quality BIM models.

A first very simple and very good habit to take is to give proper and meaningful names to our objects, so we can easily identify them in the tree view later on. To rename an object, right-click it in the tree view and choose '''Rename'''.

Another interesting operation to do is '''grouping'''. Groups allow you to organize your objects in the tree view, like files and folders. An object can only belong to one group. Groups are created by right-clicking the document root or any other group in the tree view, and selecting '''Create group'''. You can then drag objects in and out of groups in the tree view.

A third way to organize things is by using layers. Layers are independent to groups, you can use both systems at the same time if you wish. Like groups, layers allow you to easily turn on/off a series of objects, but unlike groups, they cannot be stacked inside one another. They also allow you to override visual settings such as color and line width of their child objects. Layers are created and managed using the Layers manager tool found under menu '''Manage -> Layers manager'''. Objects are added or removed by dragging them in and out of layers in the tree view.

The '''Layer selector''' on the main toolbars allow you to set a current layer. After doing so, any new 2D or BIM object will automatically be placed in that layer.

Finally, BIM applications usually allow you to group objects into '''levels''' (or storeys) and '''buildings'''. FreeCAD offers these tools as well under the '''3D/BIM modeling''' menu. Like beams and columns, levels and buildings use a same object type called [[Arch BuildingPart|Building Part]] with a different IFC type. They work the same way as groups, once created, you can drag and drop any object in and out of it. Building Parts are compatible with groups, so you can place groups inside them.

Building Parts have many other uses, refer to their [[Arch BuildingPart|documentation]] to know more.

Create a Building Part now by selecting '''Level''' from the '''3D/BIM Modeling''' menu. Make sure its IFC type is set to '''Building Storey''', and drag all our other root BIM objects (no need to do so with included objects like the door or the plate of the column) into it, that is, our two walls, the roof slab and the metal column.

{{BIMTutorialAction|goal1=Create a level|test1=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "BuildingPart" in o.Name]) == 1)|goal2=Add the four other root BIM objects to it|test2=bool(len([o for o in FreeCAD.ActiveDocument.Objects if "BuildingPart" in o.Name and (len(o.Group) == 4)]) == 1)}}

=== Exporting an IFC file ===

To be written...

{{BIMTutorialAction|descr=No action to perform for this step}}

To be written...

=== Creating 2D drawings ===

{{BIMTutorialAction|descr=No action to perform for this step}}

=== Explore other BIM tools and other workbenches ===

Take a moment to explore the other available BIM tools. Remeber that some are still not finished, and might not do everything you expect from them. Use the "What's this?" button found in menu '''Help''' to open the help page of any tool. The [https://forum.freecadweb.org FreeCAD forum] is also always a good place to search or ask when encountering a specific problem you cannot solve.

FreeCAD is a big family of workbenches, and tools from other workbenches often come in handy. As we saw above, almost any object created from other workbenches can be turned into a valid BIM object, simply using the '''BIM -> Create component''' tool and giving it the correct IFC type.

{{BIMTutorialAction|descr=No action to perform for this step}}


=== To be continued... ===
=== To be continued... ===

Revision as of 19:41, 16 October 2019

This documentation is not finished. Please help and contribute documentation.

GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

Tutorial steps

This is the in-game tutorial of the BIM Workbench. It is not meant to be read here on the wiki, but rather to be started from inside FreeCAD, in the BIM workbench, under menu Help -> BIM tutorial. It includes a series of steps to be completed by the user. Each step is terminated by an instance of the {{BIMTutorialAction|descr|goal1|test1|goal2|test2}} template, which informs of the condition that need to be met. Images should be 300px wide.



Welcome to the BIM workbench!

This tutorial will walk you through the different functionalities of the BIM Workbench and help you to get on tracks by modeling a very simple pavilion building. It should take between one and two hours to complete entirely, depending on your previous experience with 3D applications.

You can interrupt it anytime and resume it later, by selecting menu Help -> Welcome screen, and clicking the BIM Tutorial item again.

Some steps of this tutorial require you to take actions. Those will be indicated below this text box, with an icon showing if the task has been completed or not. But since we are good people here at FreeCAD, it is not mandatory to complete the actions in order to advance through these pages. You can just browse through the tutorial and skip actions at your convenience.

Note: This tutorial is still being written, and is therefore incomplete! If you have suggestions or things you find unclear, why not help us to make it better on the FreeCAD forum!

Tutorial steps

No action to perform for this step



Set FreeCAD up

FreeCAD has a large preferences system with many options to set, located under menu Edit->Preferences. Each additional workbench can add more preferences pages, which makes it very complex.

The BIM workbench provides a simplified setup screen, which allows to quickly set some of the most useful preferences for BIM work. The BIM preferences screen is located under menu Manage -> BIM Setup (you can also click the corresponding button on the Manage toolbar):

Open the simplified BIM preferences screen now, and set the different options to your liking.

In case of need, hover the mouse over any option or setting to see a description of what it is used for:

In this tutorial, we will work in centimeters. We therefore suggest you to set preferred units as centimeters, and the default grid square size to 10 cm. After you left this screen, these two settings can be changed anytime from the units indicator located on the status bar and from the working plane button on the main toolbars:

Tutorial steps

Open the BIM setup screen
True if hasattr(FreeCADGui,"BIMSetupDialog") else False
Set units to centimeters and grid size to 10cm
True if ((FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("UserSchema",0) == 4) and (FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft").GetFloat("gridSpacing",10) == 100)) else False



Create a new document

If you just installed FreeCAD, you are probably currently looking at the FreeCAD Start Page:

The start page lists the latest documents you have been working with, and, on its different tabs, explains how to get help. But in order to start working, we need to create a new, empty document. If you haven't done it yet, create now a new document by using the "Create new..." item of the start page, or by navigating to menu File -> New:

You will then find yourself in the 3D space of FreeCAD, ready to work:

Tutorial steps

Create a new document
True if FreeCAD.ActiveDocument else False



Find your marks in the 3D view

There are several ways to interact with the mouse in FreeCAD. These are called navigation styles. You can change the current navigation style anytime by clicking on the navigation style button in the status bar. Hovering the mouse over that button will also show you what each mouse button does. Several of them are made to match other well-known applications. Choose one you are comfortable with.

Controlling how you look at your model in the 3D view can be done in multiple ways: Using the mouse (depending on the navigation style you chose), the keyboard (explore the contents of the View menu to find out more), or the Navigation Cube (click the different arrows and faces of the cube to align the view).

Tutorial steps

Choose a navigation style
True
Set yourself in Top view
True if FreeCADGui.ActiveDocument.ActiveView.getViewDirection().getAngle(FreeCAD.Vector(0,0,-1)) < 0.01 else False



Reorganize the interface

All panels and toolbars in FreeCAD can be moved and reorganized. Larger panels can also be joined by dragging and dropping them on another one. If your screen is too small to display all the toolbars and their contents (truncated toolbars will appear with a >> sign), it might be a good idea to move them to a better position.

Right-clicking on an empty area of the toolbars space also allows you to turn on and off individual toolbars and panels.

The BIM workbench also features switch buttons in the status bar, that turns additional panels like selection view, report view and python console on and off. These panels are often useful while working with FreeCAD, but they use precious screen space. You can usually turn everything off until you need them. Remember that error messages are printed in the report window, so in case anything goes wrong, be sure to have a look there.

Tutorial steps

No action to perform for this step



The BIM workbench tools

The BIM Workbench contains tools borrowed from other workbenches such as Arch, Draft or Part, as well as a couple of its own tools. These are organized in several categories. Each category has a menu and a toolbar. Take a moment to explore the contents of the menus described below.

2D Drafting

These tools allow you to draw flat objects, such as lines, polylines, rectangles, arcs, etc... that will become the bases of your BIM objects. For example, you can use a polyline to define the base trace a wall, or a rectangle as a profile for a beam. All 2D objects are created in the current working plane.

3D and BIM Modeling

This category contains tools to create BIM objects such as walls or windows, and generic, non-BIM 3D objects such as boxes, that you can turn into BIM objects later on. The result is different if you use the tool with an object selected or not. If not, you will be presented with a creation interface. If you have selected an object before running the tool, an object of the corresponding type will be created using the selected object as a base.

A typical example is to press the wall button with a selected line or polyline. A wall will be created automatically, using the line or polyline as its baseline.

Non-BIM objects, including objects made in other workbenches, can be turned into BIM objects anytime, by selecting them and pressing any of the BIM tool buttons.

Annotation

These tools produce annotative objects such as dimensions, texts, labels or grids, that are not used for modeling but to annotate your models and produce understandable drawings.

Snapping

These tools turn snapping positions on/off. Like in most BIM applications, each additional snapping position adds calculation time when drawing, so it is best to only keep the ones you need turned on.

Modify

These tools modify existing objects. They contain usual transformation tools such as Move or Rotate, plus a series of others that only work for specific object types.

Manage

This category contains general management tools. Most of them allow you to edit BIM properties of a large group of objects simultaneously, without the need to select them.

Each tool contained in these menus has its own documentation page that describes in detail how it works and what options are available. They are listed on the BIM Workbench documentation page, which is also accessible from the Help menu, or by using menu Help -> What's this? and clicking on any toolbar button.

Tutorial steps

No action to perform for this step



Prepare your working space

There are many ways to create BIM objects in FreeCAD. You can use the native BIM tools from this workbench, or use any other FreeCAD tool from other workbenches. Both the 2D drawing tools and the 3D BIM tools from this workbench, unlike other workbenches such as Part Design, make extensive use of working planes and snapping.

The working plane is where your next objects will be created. You can set it to one of the basic orthogonal planes (ground, front, side), or use any selected face to define the current working plane. You can also use Working Plane Proxies from menu Utils to store a specific working plane position inside your model. Building Parts also contain an implicit working plane position. Changing the current working plane is done by pressing the working plane button on the BIM toolbar. The grid always reflects where the working plane is.

As you will have noticed, view angle and working plane are not tied together. You can work on your working plane from any view angle.

Set the working plane in "Top" mode now:

The snapping tools allow you to place new objects and points precisely according to existing geometry. However, enabling many snapping locations might slow down the drawing operations, so it is wise to only enable the snapping tools you intent to use. Take a moment to review what each of them does, so when needed you will know which can be disabled.

Take special notice of the last one, the working plane snapping tool, as it will force any snapped point to lie on the working plane, thus preventing you to snap above or under the working plane. You will often need to turn it on or off, depending on the operation you are performing.

Tutorial steps

Set the working plane in "Top" (XY) mode
True if ((FreeCAD.DraftWorkingPlane.axis.getAngle(FreeCAD.Vector(0,0,1)) < 0.01) and (FreeCAD.DraftWorkingPlane.weak == False)) else False
Review the different snapping tools
True



Draw a first wall

Let's start building our pavilion by creating some walls. Walls can be drawn either directly with the wall tool, or by first drawing 2D objects such as lines, wires (polylines) or sketches, that will define the baseline of our walls. When you have such a baseline object selected, pressing the Wall tool will automatically convert it into a wall.

First, zoom out until a good part or all of the grid is seen. This will make it much easier to see what we are doing:

Then, press the Wall button from the toolbar (or choose menu item 3D/BIM -> Wall). Click two points on the grid, vertically aligned, distant by 300 cm. Pressing SHIFT after the first point has been clicked will help you to keep your wall horizontal or vertical. The side panel will inform you of the length of wall while drawing.

If you created a wrong wall, no worries! Simply delete it or undo it (menu Edit -> Undo) and try again.

Tutorial steps

Create a wall
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "MakeBlocks" in o.PropertiesList]) == 1)



Draw a second wall

Make a second, horizontal wall of 4 meters (or 400 centimeters) long. Select the Wall tool again, pan and zoom out until you see a good area of the grid, and pick two points from the grid to define the start and end points of the new wall:

After they are created, select both walls by pressing CTRL and clicking them both in the 3D view or in the tree view, and adjust their height property to 2.5 meters and their width to 20 centimeters (or any other measurement you are comfortable with, if working in another unit), so they look like this (Use the mouse to rotate the view, according to the navigation style you chose):

You can always correct or change properties after a wall or any other BIM object has been created. By expanding the wall object in the tree view, then double-clicking the baseline of the wall, you can also modify its base 2D object. Most BIM objects in FreeCAD are based on another object, such as a baseline or a profile.

Important note

You will notice that some property changes, in FreeCAD, don't reflect immediately on the object in the 3D view. Instead, the object is marked with a "to be recomputed" blue mark in the tree:

The reason for this is that a FreeCAD document can be a very complex chain of inter-dependent objects. Updating one can trigger an update on many others, and therefore take a long time. To avoid this, some operations simply mark the object to be recomputed, and you trigger the recomputation yourself by using menu Edit -> Refresh or pressing Ctrl+R.

Tutorial steps

Create two orthogonal wall objects
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "MakeBlocks" in o.PropertiesList]) == 2)
Set their height to 2.50 meters and width to 20 centimeters
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "MakeBlocks" in o.PropertiesList and o.Height.Value == 2500 and o.Width.Value == 200]) == 2)



Don't forget to save the file regularly!

Like any other computer application, FreeCAD is subject to failing or crashing, specially when we have little experience with it. Saving your file often is a very good habit to take in these early moments. FreeCAD also has an auto-saving mechanism, that you can set up under menu Edit -> Preferences -> General -> Document.

Save your file now by using menu File -> Save.

Tutorial steps

Save your file
bool(FreeCAD.ActiveDocument.FileName)



Draw a roof slab

We will now place a roof slab on top of our walls. Instead of drawing the slab directly, like we did with the walls, we will here first draw a rectangle, then turn the rectangle into a slab. We will now explore two methods to do so, both are useful to know, so we suggest you to try one first, then undo it (or reload the file), and try the other method.

Method 1: Draw the slab on the ground, then move it into position

It is often convenient to consider the top XY plane (the ground plane) as a kind of "drawing board", where we will be building our objects, and move then next to their correct position. There is an additional advantage here, our working plane is already in "Top" mode, so we don't need to change it.

Set yourself in top view, zoom out a bit until you see both walls, and draw a rectangle encompassing them both. Press the Rectangle button from the toolbar (or choose menu item 2D Drafting -> Rectangle):

Rotate your view to inspect the results. By default, the rectangle is filled with a face. This can be changed by changing the Make Face property of our rectangle to False. For the slab we are going to build, this has no impact, for other types of objects, however, the base object being a polyline or a face can make a difference.

The next step is to build a slab using our rectangle as its base, or extrusion profile. In FreeCAD, structural objects such as columns, beams or slabs are all made with a same object, called Structure. After a structural object is created, setting is IFC Type property to the desired type (column, slab, etc...) is all that is needed to change its type.

Make sure our rectangle is selected, then press the Slab button from the toolbar (or choose menu item 3D/BIM -> Slab). As stated above, this can also be done with the Column or Beam tools, as they all produce the same type of object. After our object is created, we need to make the following changes to its properties:

  • Set its Height to 20 cm
  • Verify its IFC Type is set to Slab

Now we need to move our new roof slab to its correct position, that is, above the walls. So we need to move it upwards, in the Z direction, by a distance of 250 cm, which is the height of our walls. We can simply edit the Placement property of our slab, expand its Position attribute, and set the value of z to 250 cm. Our slab is now well in place:

Another way to move our slab to its correct position, is to use the Move tool from the Modify menu. For that, we need to set our working plane in a vertical plane first, by pressing the working plane button (make sure you don't have any face selected), and setting it to XY (Front). By setting ourselves in front view (press key 1), we can now select the slab, press the Move button, and move our slab by clicking one of its base points, and, with Shift pressed to restrict the movement vertically, click one point on top of the walls:

Method 2: Draw the slab directly in the correct plane

Another useful method is to directly draw our rectangle in the correct plane. We can easily set the working plane to the top surface of the walls, which is where we want our slab, by selecting one of these faces, and pressing the working plane button:

Everything we draw from now on will happen in that plane. If you like, you can now set yourself in top view, but this is not necessary. Once your working plane is set, and provided working plane snapping is enabled, you can draw directly in any 3D view, being orthogonal or perspective.

Once our rectangle is drawn, we can just follow the same method as in method 1 to turn it into a slab (select it, press the Structure button, adjust its properties).

Tutorial steps

Create a rectangle
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Rectangle" in o.Name]) == 1)
Create a 20cm thick slab
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "IfcType" in o.PropertiesList and o.IfcType == "Slab" and o.Height.Value == 200]) == 1)



Create a metallic column

Let's add a metallic column to give better support to our slab. Make sure the working plane is in Top mode, let's start by putting ourselves in top view (press key 2), and turn the slab off, so we see better what's underneath. Select the slab, and press the Space key to turn its display off.

In FreeCAD, it is very easy to turn objects or groups on and off, and the tree shows you clearly what is shown and what is hidden. Be sure to use that often!

The Column tool (as well as the Beam tool) has some built-in profiles that we will use now. Make sure nothing is selected, then press the Column button. In the Structure options, select CTH:

And click a point to place your column, more or less at this position. Make sure the new column has an IFC Type of "Column" and give it a Height of 250cm to make it the same height as our walls.

Unfortunately, the CTH preset has only one diameter option of 42mm, which is very thin to support our concrete roof slab. Fortunately, as everything is parametric, it is easy to change the diameter. Expand the new structural object in the tree view, and you will find its profile object, named CTH423. Change its diameter to 12cm and its thickness to 8mm. Now we have a strong enough column.

Add a support plate

However, in the real world, it will be difficult to attach our metal column to the concrete slab. So let's add a plate to its top, which can be bolted to the concrete slab. This will illustrate how you can easily modify BIM objects and create the very precise ones you need.

Let's start by changing the height of our column from 250cm to 249cm, to give it a space for a 1cm-thick plate. Then draw a 20cm x 20cm rectangle, either on the ground plane or on the top of the column, as we learned in the previous step. Use the Move tool, with midpoint and center snaps turned on, if needed, to center the rectangle over the column center.

Using the Slab tool again, create a structural object from the rectangle, give it a height of 1cm, and move it to a height of 249cm:

Now let's add our plate to the column. BIM objects in FreeCAD have two properties named Additions and Subtractions that can receive objects that need to be unioned or subtracted to/from them. To add the plate to our column, select the plate, then, with Ctrl pressed, select the column and use the Add tool the Modify menu. Our plate is now part of the column:

By starting from simple shapes, and adding or subtracting objects, we can quickly create very complex BIM objects. Note that the Additions and Subtractions of a given BIM object can easily be changed by double-clicking them in the tree view and using the Add and Remove buttons there. Also, a same object can be used as an addition or subtraction to multiple other objects.

Tutorial steps

Create a CTH tubular column
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "CTH" in o.Label]) == 1)
Add a 20cm x 20cm plate to the column
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Shape" in o.PropertiesList and (abs(o.Shape.Volume - 7409000) < 10000)]) == 1)



Add windows and doors

Like columns and beams, doors and windows are created with a same Window object in FreeCAD. Only their IFC type changes. They can be independent or, if an object is selected when running the tool, inserted in another BIM object, in which case they will automatically create a hole through it.

Let's insert a 80cm x 210cm glass door in one of our walls. Start by placing the working plane on a face of a wall, which will make it easier to precisely place our window:

Then, with the wall selected, select Door from the BIM menu. Select the Glass door preset, and set the Width to 80cm and Height to 210cm. You can set the other values as you like:

Click a point on the base of the wall where you wish to place the window. This can be difficult, as the grid lines don't necessarily correspond to the wall edges. Pressing the Q key while drawing will create temporary snap points, and new snap points will become available at the horizontal/vertical intersections of these temporary snap points. Use this to find a suitable point:

If your window didn't get placed correctly, if the error seems fixable, use the Move tool to move it to its correct position. If not, it might be simpler to simply undo the operation and try again.

When everything is done, you should obtain a door properly inserted into its wall:

Tutorial steps

Create a glass door
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "Window" in o.Name]) == 1)



Organizing our model

We now have in our model a growing collection of BIM objects. It is time to tidy things up. Creating well organized models, easily understandable by others, is a very important part of building quality BIM models.

A first very simple and very good habit to take is to give proper and meaningful names to our objects, so we can easily identify them in the tree view later on. To rename an object, right-click it in the tree view and choose Rename.

Another interesting operation to do is grouping. Groups allow you to organize your objects in the tree view, like files and folders. An object can only belong to one group. Groups are created by right-clicking the document root or any other group in the tree view, and selecting Create group. You can then drag objects in and out of groups in the tree view.

A third way to organize things is by using layers. Layers are independent to groups, you can use both systems at the same time if you wish. Like groups, layers allow you to easily turn on/off a series of objects, but unlike groups, they cannot be stacked inside one another. They also allow you to override visual settings such as color and line width of their child objects. Layers are created and managed using the Layers manager tool found under menu Manage -> Layers manager. Objects are added or removed by dragging them in and out of layers in the tree view.

The Layer selector on the main toolbars allow you to set a current layer. After doing so, any new 2D or BIM object will automatically be placed in that layer.

Finally, BIM applications usually allow you to group objects into levels (or storeys) and buildings. FreeCAD offers these tools as well under the 3D/BIM modeling menu. Like beams and columns, levels and buildings use a same object type called Building Part with a different IFC type. They work the same way as groups, once created, you can drag and drop any object in and out of it. Building Parts are compatible with groups, so you can place groups inside them.

Building Parts have many other uses, refer to their documentation to know more.

Create a Building Part now by selecting Level from the 3D/BIM Modeling menu. Make sure its IFC type is set to Building Storey, and drag all our other root BIM objects (no need to do so with included objects like the door or the plate of the column) into it, that is, our two walls, the roof slab and the metal column.

Tutorial steps

Create a level
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "BuildingPart" in o.Name]) == 1)
Add the four other root BIM objects to it
bool(len([o for o in FreeCAD.ActiveDocument.Objects if "BuildingPart" in o.Name and (len(o.Group) == 4)]) == 1)



Exporting an IFC file

To be written...

Tutorial steps

No action to perform for this step



To be written...

Creating 2D drawings

Tutorial steps

No action to perform for this step



Explore other BIM tools and other workbenches

Take a moment to explore the other available BIM tools. Remeber that some are still not finished, and might not do everything you expect from them. Use the "What's this?" button found in menu Help to open the help page of any tool. The FreeCAD forum is also always a good place to search or ask when encountering a specific problem you cannot solve.

FreeCAD is a big family of workbenches, and tools from other workbenches often come in handy. As we saw above, almost any object created from other workbenches can be turned into a valid BIM object, simply using the BIM -> Create component tool and giving it the correct IFC type.

Tutorial steps

No action to perform for this step



To be continued...

The writing of this tutorial is not finished, be sure to check back soon!

Tutorial steps

No action to perform for this step