BIM Workbench

Introduction
The BIM Workbench is an external workbench aimed at implementing complete Building Information Modeling (BIM) tools and workflow in FreeCAD. It can be installed from the Addon Manager.

The BIM Workbench is based on the built-in Arch Workbench, and both will probably be merged in the future. The BIM Workbench is a "meta workbench", intended to gather many useful tools from other workbenches in a single place, and create a workflow that is more convenient and user-friendly to both experienced BIM users and beginners. The BIM workbench also features some specific tools of its own, mostly wizards and management tools, located under the Management menu.

See FreeCAD BIM migration guide for a quick overview if you are already a user of another BIM application.

The developers of Draft, Arch and BIM also collaborate with the greater OSArch community, with the ultimate goal of improving building design by using entirely free software.



Installing
The BIM workbench is not bundled with the default FreeCAD package, but can easily be installed via the Addon Manager. Invoke it from. The BIM workbench code is hosted and developed on github and can also be installed manually by copying it into FreeCAD's directory.

Note

The BIM workbench is a work in progress, and will change often. Be sure to update it regularly! If you have the Python-Git module installed, the BIM workbench will automatically look for available updates at start, and display an icon in the status bar if an update is available.

The tools listed below might also not all be present if your FreeCAD version is not fully up-to-date. The BIM workbench should however work seamlessly on all FreeCAD versions, it will only drop the tools not available.

Getting started


Upon 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 filling 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.

If you are used to another BIM application, check our BIM application compatibility table to get your marks 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 gather tools from several other FreeCAD workbenches, mainly Draft, Arch and Part, roughly reorganized in logical categories: 2D drafting, 3D modeling, annotation and modification tools. The manage category contains tools that are specific to the BIM workbench.

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.


 * [[Image:Sketcher_NewSketch.svg‎‎|32px]] Sketch: Creates‎ a new sketch and enters sketch drawing mode. Sketches are advanced 2D objects with constraints support
 * [[Image:Draft_Line.svg|32px]] Line: Draws a line segment between 2 points
 * [[Image:Draft_Wire.svg|32px]] Wire: Draws a line made of multiple line segments (polyline)
 * [[Image:Draft_Circle.svg|32px]] Circle: Draws a circle from center and radius
 * [[Image:Draft_Arc.svg|32px]] Arc: Draws an arc segment from center, radius, start angle and end angle
 * [[Image:Draft_Arc_3Points.svg|32px]] Arc 3Points: draws a circular arc segment from three points that are located in the circumference
 * [[Image:Draft_Ellipse.svg|32px]] Ellipse: Draws an ellipse from two corner points
 * [[Image:Draft_Polygon.svg|32px]] Polygon: Draws a regular polygon from a center and a radius
 * [[Image:Draft_Rectangle.svg|32px]] Rectangle: Draws a rectangle from 2 opposite points
 * [[Image:Draft_BSpline.svg|32px]] BSpline: Draws a B-Spline from a series of points
 * [[Image:Draft_CubicBezCurve.svg|32px]] Cubic Bezier Curve: draws a Bezier curve of third degree by dragging two points.
 * [[Image:Draft_BezCurve.svg|32px]] Bezier Curve: Draws a Bezier curve from a series of points
 * [[Image:Draft_Point.svg|32px]] Point: Inserts a point object

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.


 * [[Image:Draft_Text.svg|32px]] Text: Draws a multi-line text annotation
 * [[Image:Draft_ShapeString.svg|32px]] ShapeString: Draws a text line as geometry
 * [[Image:Draft_Dimension.svg|32px]] Dimension: Draws a linear, angular, radial or diameter dimension
 * [[Image:Draft_Label.svg|32px]] Label: Places a label with an arrow pointing to a selected element
 * [[Image:Arch_Axis.svg|32px]] Axis: Creates a single axis or a 1-direction array of axes to the document
 * [[Image:Arch_Axis_System.svg|32px]] Axes system: Creates an axes system composed of up to 3 series of axes
 * [[Image:Arch_Grid.svg|32px]] Grid: Creates a grid-like object to the document
 * [[Image:Arch_SectionPlane.svg|32px]] Section Plane: Adds a section plane object to the document. Section planes define 2D views such as plans, sections and elevations
 * TechDraw_PageDefault.svg Page: Creates a new TechDraw page from a SVG template
 * TechDraw_ArchView.svg View: Inserts a view of a section plane on a page

3D / BIM modeling
3D and BIM objects are the real-world elements that will compose your BIM project.

Building structure: These tools help you to organize your model
 * [[Image:Arch_Project.svg|32px]] Project: Creates a project including selected objects
 * [[Image:Arch_Site.svg|32px]] Site: Creates a site including selected objects
 * [[Image:Arch_Building.svg|32px]] Building: Creates a building including selected objects
 * [[Image:Arch_BuildingPart.png|32px]] Level (Building Part): Creates a building part including selected objects. Building parts are commonly used to represent levels
 * [[Image:Arch_Space.svg|32px]] Space: Creates a space object in the document
 * [[Image:Arch_Reference.svg|32px]] Reference: Links objects from another FreeCAD file into this document

BIM tools: These tools build BIM components


 * [[Image:Arch_Wall.svg|32px]] Wall: Creates a wall from scratch or using a selected object as a base
 * [[Image:Arch_CurtainWall.svg|32px]] Curtain Wall: creates a curtain wall from scratch or using a selected object as a base
 * [[Image:BIM_Column.svg|32px]] Column: Creates a vertical structural element at a given point, optionally using a selected object as a profile
 * [[Image:BIM_Beam.svg|32px]] Beam: Creates a horizontal structural element between two points, optionally using a selected object as a profile
 * [[Image:BIM_Slab.svg|32px]] Slab: Creates a flat structural element by extruding a selected flat object
 * [[Image:Arch_Rebar_Straight.png|32px]] [[Image:Arch_Rebar_UShape.png|32px]] [[Image:Arch_Rebar_LShape.png|32px]] [[Image:Arch_Rebar_BentShape.png|32px]] [[Image:Arch_Rebar_Stirrup.png|32px]] [[Image:Arch_Rebar_ColumnReinforcement.svg|32px]] [[Image:Arch_Rebar_BeamReinforcement.svg|32px]] [[Image:Arch_Rebar_Helical.png|32px]] [[Image:Arch_Rebar.svg|32px]] Rebar: Creates a reinforcement bar in a selected structural element using a sketch. Requires the Reinforcement addon
 * [[Image:Arch_Window.svg|32px]] Window: Creates a window using a selected object as a base
 * [[Image:BIM_Door.svg|32px]] Door: Creates a Window object using door presets
 * [[Image:Arch_Pipe.svg|32px]] [[Image:Arch_PipeConnector.svg|32px]] Pipe tools: Creates pipes and corner or tee connection between 2 or 3 selected pipes
 * [[Image:Arch_Stairs.svg|32px]] Stairs: Creates a stairs object in the document
 * [[Image:Arch_Roof.svg|32px]] Roof: Creates a sloped roof from a selected face
 * [[Image:Arch_Panel.svg|32px]] [[Image:Arch_Panel_Cut.svg|32px]] [[Image:Arch_Panel_Sheet.svg|32px]] Panel tools: Creates panel objects, and 2D cutouts from these panels
 * [[Image:Arch_Frame.svg|32px]] Frame: Creates a frame object from a selected layout
 * [[Image:Arch_Fence.svg|32px]] Fence: Creates a fence object from a selected post object and path
 * [[Image:Arch_Truss.svg|32px]] Truss: Creates a truss from a selected line of from scratch
 * [[Image:BIM_Library.png|32px]] Library: Inserts an equipment or furniture object. Requires the Parts Library addon
 * [[Image:Arch_Component.png|32px]] BIM Component: Turns any selected object into a BIM object, with complete IFC support

Generic 3D tools: These tools build generic 3D objects that can be turned or used into BIM components


 * [[Image:Arch_Profile.svg|32px]] Profile: Creates a parametric 2D profile to be used for example in extrusions
 * [[Image:BIM_Box.png|32px]] Box: Draws a box by specifying its dimensions graphically
 * [[Image:Part_Builder.svg|32px]] Shapebuilder: A tool to create more complex shapes from various parametric geometric primitives
 * [[Image:Draft_Facebinder.svg|32px]] Facebinder: Creates a new object from selected faces on existing objects

Modification tools

 * [[Image:Draft_Move.svg|32px]] Move: Moves object(s) from one location to another
 * [[Image:BIM_Copy.png|32px]] Copy: Copies object(s) from one location to another
 * [[Image:Draft_Rotate.svg|32px]] Rotate: Rotates object(s) from a start angle to an end angle
 * [[Image:Draft_Clone.svg|32px]] Clone: Clones the selected objects
 * [[Image:Draft_Offset.svg|32px]] Offset: Moves segments of an object about a certain distance
 * [[Image:Part_Offset2D.svg|32px]] 2D Offset: Constructs a parallel wire at certain distance from original, or enlarges/shrinks a planar face ((parametric version)
 * [[Image:Draft_Trimex.svg|32px]] Trim/Extend (Trimex): Trims or extends an object
 * [[Image:Draft_Scale.svg|32px]] Scale: Scales selected object(s) around a base point
 * [[Image:Draft_Stretch.svg|32px]] Stretch: Stretches the selected objects
 * [[Image:Draft_Array.svg|32px]] Array: Creates a polar or rectangular array from selected objects
 * [[Image:Draft_PathArray.svg|32px]] Path Array: Creates an array of objects by placing the copies along a path
 * [[Image:Draft_Mirror.svg|32px]] Mirror: Mirrors the selected objects
 * [[Image:Part_Extrude.svg|32px]] Extrude: Extrudes planar faces of an object
 * [[Image:Part_Cut.svg|32px]] Cut: Cuts (subtracts) one object from another
 * [[Image:Part_Fuse.svg|32px]] Union: Fuses (unions) two objects
 * [[Image:Part_Common.svg|32px]] Common: Extracts the common (intersection) part of two objects
 * [[Image:Part_Compound.svg|32px]] Compound: Creates a compound from the selected objects
 * [[Image:Part_SimpleCopy.svg|32px]] Simple copy: Creates a non-parametric copy of a selected object
 * [[Image:Draft_Upgrade.svg|32px]] Upgrade: Joins objects into a higher-level object
 * [[Image:Draft_Downgrade.svg|32px]] Downgrade: Explodes objects into lower-level objects
 * [[Image:Draft_Shape2DView.svg|32px]] Shape 2D View: Creates a 2D object which is a flattened 2D view of another 3D object
 * [[Image:Draft_Draft2Sketch.svg|32px]] Draft to Sketch: Converts a Draft object to Sketch and vice-versa
 * [[Image:Arch_CutPlane.svg|32px]] Cut with plane: Cut an object according to a plan.
 * [[Image:Arch_Add.svg|32px]] Add component: Adds objects to a component
 * [[Image:Arch_Remove.svg|32px]] Remove component: Subtracts or removes objects from a component

Management tools

 * [[Image:BIM_Setup.png|32px]] BIM setup: Configures some of the FreeCAD preferences most commonly used for BIM
 * [[Image:BIM_Project.png|32px]] Project setup: Allows to create some basic objects such as a site, a building and axes by filling basic project information.
 * [[Image:BIM_Views.png|32px]] Views and levels manager: Manage the different views and levels of your project
 * [[Image:BIM_Windows.png|32px]] Windows manager: Manage the doors and windows of your project
 * [[Image:BIM_IfcElements.png|32px]] IFC elements manager: Manage how the different elements of your project will be exported to IFC
 * [[Image:BIM_IfcProperties.svg|32px]] IFC properties manager: Manage the IFC properties attached to each of your objects
 * [[Image:BIM_IfcQuantities.svg|32px]] IFC quantities manager: Manage how the quantities of your objects are explicitely exported to IFC
 * [[Image:BIM_Classification.png|32px]] Classification manager: Manage how objects and materials of your project relate to classifications systems such as Uniclass
 * [[Image:Draft_VisGroup.svg|32px]] Layers manager: Manage the layers of your document
 * [[Image:Arch_Material Group.svg|32px]] Material: Manages materials or multimaterials of selected objects
 * [[Image:Arch_Schedule.svg|32px]] Schedule: Creates different types of schedules
 * [[Image:BIM_Preflight.svg|32px]] Preflight checks: Perform different checks on your model before exporting to IFC
 * [[Image:Draft_AnnotationStyleEditor.svg|32px]] Annotation style editor: Manages annotation styles used by texts and dimensions

Tutorials and Learning

 * 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

External workbenches
FreeCAD workbenches are easy to program in Python, there are therefore many people developing additional workbenches outside of the FreeCAD main developers.

The external workbenches page has some information and tutorials on some of them, and the FreeCAD Addons project aims at gathering them and making them easily installable from within FreeCAD.

New workbenches are in development, stay tuned!