BIM Workbench

Introduction
The BIM workbench is an external workbench aimed at implementing complete Building Information Modeling (BIM) tools and workflow in FreeCAD. It currently looks much like the built-in Arch Workbench and both will probably get merged in the future. The general idea, however, is to work as a "meta workbench", and gather in one place different tools from other workbenches that are useful to BIM, and create a workflow that is more convenient, easy and user-friendly to both experienced BIM users coming from other software like Revit or ArchiCAD and newcomers alike. The BIM workbench also features a couple of tools on its own, that are mostly wizards and management tools, located under the Management menu.



Installing
The BIM workbench is not bundled with the default FreeCAD package, but can easily be installed via the Addon Manager. Invoke the 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. The BIM workbench is a work in progress, and will change often. Be sure to update it regularly!

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.

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_AxisSystem.png|32px]] Axes system: Creates an axes system composed of up to 3 series of axes
 * [[Image:Arch_Grid.png|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

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


 * [[Image:Arch_BuildingPart.png|32px]] Building Part: Creates a building part including selected objects. Building parts are commonly used to represent levels
 * [[Image:Arch_Building.svg|32px]] Building: Creates a building including selected objects
 * [[Image:Arch_Site.svg|32px]] Site: Creates a site including selected objects
 * [[Image:Arch_Reference.svg|32px]] Reference: Links objects from another FreeCAD file into this document
 * [[Image:Arch_Wall.svg|32px]] Wall: Creates a wall from scratch or using a selected object as a base
 * [[Image:Arch_Structure.svg|32px]] Structural element: Creates a structural element from scratch or using a selected object as a base


 * [[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: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.png|32px]] [[Image:Arch_Panel_Sheet.png|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:BIM_Box.png|32px]] Box: Draws a box by specifying its dimensions graphically
 * [[Image:Part_Shapebuilder.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
 * [[Image:Arch_Space.svg|32px]] Space: Creates a space object in the document
 * [[Image:BIM Library.png|32px]] Library: Inserts an equipment or furniture object. Requires the Parts Library addon

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:Tree_Part.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 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: Creates a material or multimaterial
 * [[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

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!