BIM Workbench
This page has been updated for that version.
Introduction
The BIM Workbench provides a modern Building Information Modelling workflow in FreeCAD, with fully parametric objects such as walls, beams, roofs, windows, stairs, pipes, and furniture. It supports Industry Foundation Classes (IFC) files, and the production of 2D plans in combination with the
TechDraw Workbench.
The BIM Workbench imports tools from the Draft Workbench, as it uses its 2D objects to build 3D parametric objects. But it can also use solid shapes created with other workbenches like
Part and
PartDesign.
See FreeCAD BIM migration guide for a quick overview if you are already a user of another BIM application.
The developers of Draft and BIM also collaborate with the greater OSArch community, with the ultimate goal of improving building design by using entirely free software.
Getting started
When starting the BIM workbench for the first time, a welcome dialog is shown, giving a quick overview of how the workbench works, and allowing the user to start an in-game tutorial. The welcome dialog is also available from the help menu. When the welcome screen is closed by clicking OK, the BIM setup dialog will be shown, that allows the user to quickly set some of the most common BIM-related preferences of FreeCAD without the need to browse through the full FreeCAD preferences pages.
The BIM project setup tool allows you to quickly setup a BIM project by entering some basic information about your project. You can then, for example, use the different 2D drafting tools to sketch guidelines and baselines, then use the different 3D modeling tools to automatically build 3D BIM objects from them. A line, for example, can become a wall simply by selecting it and pressing the Wall button.
Common building elements such as walls or columns are easily created by pressing the appropriate toolbar button and clicking points in the 3D view. They can be moved, rotated and edited once created. Most BIM elements are created on the current working plane, so a typical workflow involves placing the working plane first, then creating a BIM element. More complex elements can be created by drawing 2D elements first, then using one of the BIM tools to convert them into the desired element.
Elements of building projects can be organized using sites, buildings and levels, to reproduce what is commonly done in other BIM applications. In FreeCAD, however, such structures are not mandatory, and you are free to organize your model elements as you see fit, for example using groups.
2D drawings can be generated from a model to represent plan, section or elevation views. To generate such a drawing,section planes are placed in the model, to indicate where it should be cut or viewed from. Once the section planes are in place, two methods are possible:
- Create projected views in the document using shape views, then add all the necessary annotations such as texts and dimensions, then put all this on a page. This is the recommended way, as it offers more flexibility.
- Create a view on a page directly from the section plane. Then all the needed 2D annotations must either be added to the section plane, or done directly on the page. This is less flexible.
Finally, quantities schedules can be created using the schedule tool.
If you are used to another BIM application, check our BIM application compatibility table to get your bearings when starting with FreeCAD.
The in-game tutorial is an easy way to quickly get on track with the BIM workbench.
Tools
The BIM workbench gathers tools from several other FreeCAD workbenches, mainly Draft and Part, roughly reorganized in logical categories.
Additionally, if such addons are installed, tools from Reinforcement (extra reinforcing bar tools), Fasteners (bolts and screws), Flamingo/Dodo (metal structure and piping tools) and Parts Library are automatically included in the BIM workbench.
The BIM workbench also adds a series of items in the status bar of FreeCAD, and a couple of context menu items, accessible by right-clicking in the 3D view or in the tree view.
2D drafting
2D objects are commonly used as drafting aids, or to draw base lines and profiles to build BIM objects on. They can also be used to draw symbols and annotations in your model. Apart from sketches, that use their own coordinate system, 2D objects will be drawn on the current working plane.
Sketch: Creates a new sketch and enters sketch edit mode. Sketches are advanced 2D objects with constraints support.
Line: Creates a straight line.
Polyline: Creates a polyline (also called wire), a sequence of several connected line segments.
Circle: Creates a circle from a center and a radius.
Arc: Creates a circular arc from a center, a radius, a start angle and an aperture angle.
Arc by 3 points: Creates a circular arc from three points that define its circumference.
Fillet: Creates a fillet, a rounded corner, or a chamfer, a straight edge, between two Draft Lines.
Ellipse: Creates an ellipse from two points defining a rectangle in which the ellipse will fit.
Polygon: Creates a regular polygon from a center and a radius.
Rectangle: Creates a rectangle from two points.
B-spline: Creates a B-spline curve from several points.
Bézier curve: Creates a Bézier curve from several points.
Cubic Bézier curve: Creates a Bézier curve of the third degree.
Point: Creates a simple point.
3D/BIM
3D and BIM objects are the real-world elements that will compose your BIM project.
Project: Creates an IFC project including selected objects.
Site: Creates a site including selected objects.
Building: Creates a building including selected objects.
Level: Creates a floor including selected objects.
Space: Creates a space object.
Wall: Creates a wall from scratch or using a selected object as a base.
Curtain Wall: Creates a curtain wall from scratch or using a selected object as a base.
Column: Creates a vertical structural element at a given point, optionally using a selected object as a profile.
Beam: Creates a horizontal structural element between two points, optionally using a selected object as a profile.
Slab: Creates a flat structural element by extruding a selected flat object.
Window: Creates a window from scratch or using a selected object as a base.
Pipe: Creates a pipe.
Connector: Creates a corner or T-connection between 2 or 3 selected pipes.
Stairs: Creates a stairs object.
Roof: Creates a sloped roof from a selected wire.
Panel: Creates a panel object from a selected 2D object.
Frame: Creates a frame object from a selected layout.
Fence: Creates a fence object from a selected post and path.
Truss: Creates a truss from a selected line or from scratch.
Equipment: Creates an equipment or furniture object.
- Reinforcement tools:
- These tools, except the first, are only available if the Reinforcement Workbench has been installed.
Custom Rebar: Creates a custom reinforcement bar in a selected structural element using a sketch.
Straight Rebar: Creates a straight reinforcement bar in a selected structural element.
U-Shape Rebar: Creates a U-shape reinforcement bar in a selected structural element.
L-Shape Rebar: Creates an L-shape reinforcement bar in a selected structural element.
Stirrup: Creates a stirrup reinforcement bar in a selected structural element.
Bent-Shape Rebar: Creates a bent-shape reinforcement bar in a selected structural element.
Helical Rebar: Creates a helical reinforcement bar in a selected structural element.
Column Reinforcement: Creates reinforcement bars in a selected column.
Beam Reinforcement: Creates reinforcement bars in a selected beam.
Slab Reinforcement: Creates reinforcement bars in a selected slab.
Footing Reinforcement: Creates reinforcement bars in a selected footing.
- Generic 3D tools:
- These tools build generic 3D objects that can be turned or used into BIM components.
Profile: Creates a parametric 2D profile.
Box: Creates a box by specifying its dimensions graphically.
Shape builder...: Creates more complex shapes from various geometric primitives.
Facebinder: creates a surface object from selected faces.
Objects library: Inserts an equipment or furniture object. Requires the Parts Library addon.
Component: Creates a non-parametric Arch component.
External reference: Links objects from another FreeCAD file into the current document.
Annotation
Annotations are visual help objects that can be placed inside your model. They can be used to export your model directly to a 2D format like DXF, or reused when creating 2D views of your model with the TechDraw Workbench.
Text: Creates a 2D text in a document or on a TechDraw page.
Shape from text: Creates a compound shape that represents a text string.
Aligned dimension: Creates a dimension aligned with two points or a selected edge.
Horizontal dimension: Creates an horizontal dimension between two points or from a selected edge.
Vertical dimension: Creates a vertical dimension between two points or from a selected edge.
Leader: Creates a 2-segment polyline with an arrow at its end, to be used as a leader line in conjunction with a Text.
Label: Creates a multi-line text with a 2-segment leader line and an arrow.
Axis: Adds a 1-direction array of axes.
Axis System: Adds an axis system composed of several axes.
Grid: Adds a grid-like object.
Section Plane: Adds a section plane object.
Hatch: Creates hatches on the planar faces of a selected object.
Page: Creates a TechDraw page from a template SVG file.
View: Creates a view of the selected object(s) such as a Section plane or a Group containing the different elements of a 2D view.
Shape-based view: Creates a 2D projected view from a selected object such as a Section plane or a Level.
Snapping
This menu contains the Draft Snap tools as well as the following tools:
Working Plane Top: Places the working plane on the global XY plane (ground).
Working Plane Front: Places the working plane on the global XZ plane (front).
Working Plane Side: Places the working plane on the global YZ plane (side).
Modify
Move: Moves or copies selected objects from one point to another.
Copy: Copies selected objects from one point to another.
Rotate: Rotates or copies selected objects around a center point by a given angle.
Clone: Clones selected objects.
Create simple copy: Creates a non-parametric copy of a selected object. This is the same tool as Part SimpleCopy.
Make compound: Creates a compound from selected objects. This is the same tool as Part Compound.
Offset: Offsets each segment of a selected object over a given distance, or creates an offset copy of the selected object.
2D Offset...: Constructs a parallel wire at a given distance from the original, or enlarges/shrinks a planar face (parametric version). This is the same tool as Part Offset2D.
Trimex: Trims or extends a selected object.
Join: Joins Draft Lines and Draft Wires into a single wire.
Split: Splits a Draft Line or Draft Wire at a specified point or edge.
Scale: Scales or copies selected objects around a base point.
Stretch: Stretches objects by moving selected points.
Draft to sketch: Converts Draft objects to Sketcher Sketches and vice versa.
Upgrade: Upgrades selected objects.
Downgrade: Downgrades selected objects.
Add component: Adds objects to a component.
Remove component: Subtracts or removes objects from a component.
Path array: Creates an array from a selected object by placing copies along a path.
Polar array: Creates an array from a selected object by placing copies along a circumference. It can optionally create a Link array.
Point array: Creates an array from a selected object by placing copies at the points from a point compound.
Cut with plane: Cuts an object according to a plane.
Mirror: Creates mirrored copies from selected objects.
Extrude...: Extrudes planar faces of an object. This is the same tool as Part Extrude.
Difference: Subtracts one object from another. This is the same tool as Part Cut.
Intersection: Extracts the common part of two objects. This is the same tool as Part Common.
Manage
BIM Setup...: Configures some of the FreeCAD preferences most commonly used for BIM.
Views manager: Manage the different views and levels of your project.
Manage project...: Allows to create some basic objects such as a site, a building and axes by filling basic project information.
Manage doors and windows...: Manage the doors and windows of your project.
Manage IFC elements...: Manage how the different elements of your project will be exported to IFC.
Manage IFC quantities...: Manage how the quantities of your objects are explicitely exported to IFC
Manage IFC properties...: Manage the IFC properties attached to each of your objects.
Manage classification...: Manage how objects and materials of your project relate to classifications systems such as Uniclass.
Manage layers...: Manage the layers of your document.
Material: Manages materials or multimaterials of selected objects
Schedule: Creates different types of schedules.
Preflight checks...: Perform different checks on your model before exporting to IFC.
Annotation styles...: Allows you to define styles that affect the visual properties of annotation-like objects.
Utils
Toggle bottom panels: Shows or hides output windows (the Report view and the Python console).
Move to Trash: Moves selected objects to a Trash group, which gets created if necessary
Working Plane View: Sets the camera to face the current working plane
Select group: Selects the contents of Std Groups or group-like Arch objects.
Set slope: Slopes selected Draft Lines or Draft Wires by increasing, or decreasing, the Z coordinate of all points after the first one.
Create working plane proxy: Creates a working plane proxy to save the current Draft working plane.
Add to construction group: Moves objects to the Draft construction group.
Split Mesh: Splits a selected mesh into separate components.
Mesh to Shape: Converts a mesh into a shape, unifying coplanar faces.
Select non-manifold meshes: Selects all non-manifold meshes from the current selection or from the document.
Remove Shape from Arch: Turns cubic shape-based Arch object fully parametric.
Close holes: Closes holes in a selected shape-based object.
Merge Walls: Merge two or more walls.
Check: Check if the selected objects are solids and don't contain defects.
Toggle IFC B-rep flag: Forces a selected object to be exported as an IfcFacetedBrep.
Toggle subcomponents: Shows or hides the subcomponents of an Arch object.
Survey: Enters or leaves surveying mode.
IFC Diff: Shows a visual diff between two IFC files
IFC explorer: Opens a tool to explore the structure of an IFC file prior to importing
Image plane: Inserts an image plane in the document.
Unclone: Makes a cloned object independent from its original object
Glue:
Reextrude: Recreates an extrusion from a shape that has lost its parametric extrusion by selecting a base face
- Panel tools:
Panel: Creates a panel object from a selected 2D object.
Panel Cut: Creates a 2D cut view from a panel.
Panel Sheet: Creates a 2D cut sheet including panel cuts or other 2D objects.
Nest: Allows to nest several flat objects inside a container shape.
- Structure tools:
Structure: Creates a structural element from scratch or using a selected object as a base.
- Nudge:
Status bar
The status bar contains a few buttons that allow to easily change different states:
Toggle panels: Shows or hides the Report view and the Python console.
Toggle Views: Shows or hides the BIM Views panel.
Cycle background: Cycles between vertical gradient, radial gradient and simple color background modes. This can be used to toggle between a dark background for modelling and a white background for 2D drawing.
Lock IFC: Switches between locked and unlocked IFC mode.
TBD
TBD
Obsolete tools
Arch 3Views: Creates top, front and side views from a mesh. Not available in version 1.0 and above.
Arch BuildingPart: Creates a building part including selected objects. Not available in version 1.0 and above. Use Arch Floor instead.
Arch CloneComponent: Produces Arch Components that are clones of selected Arch objects. Not available in version 1.0 and above. Use Draft Clone instead.
Arch CutLine: Cuts an object according to a line. Not available in version 1.0 and above. Use Arch CutPlane instead.
Arch MultiMaterial: Creates a multi-material and attributes it to selected objects, if any. Not available in version 1.0 and above. Use BIM Material instead.
Arch Project: Creates a project including selected objects. Not available in version 1.0 and above. Use BIM Project instead.
Arch SetMaterial: Creates a material and attributes it to selected objects, if any. Not available in version 1.0 and above. Use BIM Material instead.
Preferences
Preferences: General preferences for the BIM Workbench.
- Fine tuning: Extra parameters to fine-tune BIM behavior.
Working with IFC
The BIM workbench works natively with Industry Foundation Classes (IFC) files. Native means there is no more translation between the IFC contents and FreeCAD: The IFC contents are directly rendered in FreeCAD, and any change affects the IFC contents directly. Read more on NativeIFC.
If you don't plan to work with others, and have no need for IFC, you can still use the BIM workbench tools normally. You can still export your model to IFC anytime.
The old Arch IFC importer is disabled by default in FreeCAD, but still available from Python.
File formats
- IFC: industry foundation classes
- DAE: Collada mesh format
- OBJ: OBJ mesh format (export only)
- JSON: JavaScript Object Notation format (export only)
- 3DS: 3DS format (import only)
- SHP: GIS Shapefiles (import only)
API
The Arch module can be used in Python scripts and macros using the Arch Python API functions.
Tutorials and learning
- Migrating to FreeCAD from Revit
- Arch & BIM tutorials on this wiki
- "BIM with FreeCAD" video series by Yorik
- "FreeCAD tutorials" video series by Regis
- "Quinta Monroy" video series by Regis
Example files
- FreeCAD features a BIM example file on the Start page.
- More example BIM files are available at https://github.com/yorikvanhavre/FreeCAD-BIM-examples . From within FreeCAD, use menu Help -> BIM examples.
- 2D drafting: Sketch, Line, Polyline, Circle, Arc, Arc by 3 points, Fillet, Ellipse, Polygon, Rectangle, B-spline, Bézier curve, Cubic Bézier curve, Point
- 3D/BIM: Project, Site, Building, Level, Space, Wall, Curtain Wall, Column, Beam, Slab, Door, Window, Pipe, Pipe Connector, Stairs, Roof, Panel, Frame, Fence, Truss, Equipment
- Reinforcement tools: Custom Rebar, Straight Rebar, U-Shape Rebar, L-Shape Rebar, Stirrup, Bent-Shape Rebar, Helical Rebar, Column Reinforcement, Beam Reinforcement, Slab Reinforcement, Footing Reinforcement
- Generic 3D tools: Profile, Box, Shape builder..., Facebinder, Objects library, Component, External reference
- Annotation: Text, Shape from text, Aligned dimension, Horizontal dimension, Vertical dimension, Leader, Label, Axis, Axes System, Grid, Section Plane, Hatch, Page, View, Shape-based view
- Snapping: Snap lock, Snap endpoint, Snap midpoint, Snap center, Snap angle, Snap intersection, Snap perpendicular, Snap extension, Snap parallel, Snap special, Snap near, Snap ortho, Snap grid, Snap working plane, Snap dimensions, Toggle grid, Working Plane Top, Working Plane Front, Working Plane Side
- Modify: Move, Copy, Rotate, Clone, Create simple copy, Make compound, Offset, 2D Offset..., Trimex, Join, Split, Scale, Stretch, Draft to sketch, Upgrade, Downgrade, Add component, Remove component, Array, Path array, Polar array, Point array, Cut with plane, Mirror, Extrude..., Difference, Union, Intersection
- Manage: BIM Setup..., Views manager, Manage project..., Manage doors and windows..., Manage IFC elements..., Manage IFC quantities..., Manage IFC properties..., Manage classification..., Manage layers..., Material, Schedule, Preflight checks..., Annotation styles...
- Utils: Toggle bottom panels, Move to Trash, Working Plane View, Select group, Set slope, Create working plane proxy, Add to construction group, Split Mesh, Mesh to Shape, Select non-manifold meshes, Remove Shape from Arch, Close Holes, Merge Walls, Check, Toggle IFC Brep flag, Toggle subcomponents, Survey, IFC Diff, IFC explorer, Create IFC spreadsheet..., Image plane, Unclone, Rewire, Glue, Reextrude
- Panel tools: Panel, Panel Cut, Panel Sheet, Nest
- Structure tools: Structure, Structural System, Multiple Structures
- IFC tools: IFC Diff..., IFC Expand, Make IFC project, IfcOpenShell update
- Nudge: Nudge Switch, Nudge Up, Nudge Down, Nudge Left, Nudge Right, Nudge Rotate Left, Nudge Rotate Right, Nudge Extend, Nudge Shrink
- Additional: Preferences, Fine tuning, Import Export Preferences, IFC, DAE, OBJ, JSON, 3DS, SHP
![](https://wiki.freecad.org/images/thumb/9/94/User_hub.png/24px-User_hub.png)
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub