BIM Workbench

Introduction
The BIM workbench is an external workbench aimed at implementing complete Building Information Modeling (BIM) tools and workflow in FreeCAD. It is an extension and currently looks much like the built-in Arch Workbench. 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 menu Tools -> Addons Manager. The BIM workbench code is hosted on github and can also be installed manually by copying it into FreeCAD's MOD directory.

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 in the help menu. When the welcome screen is closed, 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 build 3D BIM objects on top of it.

Tools
The BIM workbench gather tools from several other FreeCAD workbenches, mainly Draft, Arch and Part, roughly reorganized in three categories: 2D drafting tools, 3D modeling tools, annotation and modification tools. Additionally, if such addons are installed, tools from Reinforcement (extra reinforcing bar tools), Fasteners (bolts and screws) and Flamingo (metal structure and piping tools).

The BIM workbench also adds a couple 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

 * [[Image:Draft_Line.png|32px]] Line: Draws a line segment between 2 points
 * [[Image:Draft_Wire.png|32px]] Wire: Draws a line made of multiple line segments (polyline)
 * [[Image:Draft_Circle.png|32px]] Circle: Draws a circle from center and radius
 * [[Image:Draft_Arc.png|32px]] Arc: Draws an arc segment from center, radius, start angle and end angle
 * [[Image:Draft_Ellipse.png|32px]] Ellipse: Draws an ellipse from two corner points
 * [[Image:Draft_Polygon.png|32px]] Polygon: Draws a regular polygon from a center and a radius
 * [[Image:Draft_Rectangle.png|32px]] Rectangle: Draws a rectangle from 2 opposite points
 * [[Image:Draft_BSpline.png|32px]] BSpline: Draws a B-Spline from a series of points
 * [[Image:Draft_BezCurve.png|32px]] Bezier Curve: Draws a Bezier curve from a series of points
 * [[Image:Draft_Point.png|32px]] Point: Inserts a point object

Annotation

 * [[Image:Draft_Text.png|32px]] Text: Draws a multi-line text annotation
 * [[Image:Draft_ShapeString.png|32px]] ShapeString: The ShapeString tool inserts a compound shape representing a text string at a given point in the current document
 * [[Image:Draft_Dimension.png|32px]] Dimension: Draws a dimension annotation
 * [[Image:Draft_Label.png|32px]] Label: Places a label with an arrow pointing to a selected element
 * Axis tools
 * [[Image:Arch_Axis.png|32px]] Axis: Adds a 1-direction array of axes to the document
 * [[Image:Arch_AxisSystem.png|32px]] Axes system: Adds an axes system composed of several axes to the document
 * [[Image:Arch_Grid.png|32px]] Grid: Adds a grid-like object to the document
 * [[Image:Arch_SectionPlane.png|32px]] Section Plane: Adds a section plane object to the document

3D / BIM modeling

 * [[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.png|32px]] Building: Creates a building including selected objects
 * [[Image:Arch_Site.png|32px]] Site: Creates a site including selected objects
 * [[Image:Arch_Wall.png|32px]] Wall: Creates a wall from scratch or using a selected object as a base
 * [[Image:Arch_Structure.png|32px]] Structural element: Creates a structural element from scratch or using a selected object as a base
 * Rebar tools
 * [[Image:Arch_Rebar_Straight.png|32px]] Straight Rebar: Creates a Straight reinforcement bar in a selected structural element
 * [[Image:Arch_Rebar_UShape.png|32px]] UShape Rebar: Creates a UShape reinforcement bar in a selected structural element
 * [[Image:Arch_Rebar_LShape.png|32px]] LShape Rebar: Creates a LShape reinforcement bar in a selected structural element
 * [[Image:Arch_Rebar_BentShape.png|32px]] Bent Shape Rebar: Creates a Bent Shape reinforcement bar in a selected structural element
 * [[Image:Arch_Rebar_Stirrup.png|32px]] Stirrup Rebar: Creates a Stirrup reinforcement bar in a selected structural element
 * [[Image:Arch_Rebar_Helical.png|32px]] Helical Rebar: Creates a Helical reinforcement bar in a selected structural element
 * [[Image:Arch_Rebar.png|32px]] Rebar: Creates a custom reinforcement bar in a selected structural element using a sketch
 * [[Image:Arch_Window.png|32px]] Window: Creates a window using a selected object as a base
 * Pipe tools
 * [[Image:Arch_Pipe.png|32px]] Pipe: Creates a pipe
 * [[Image:Arch_PipeConnector.png|32px]] Pipe Connector: Creates a corner or tee connection between 2 or 3 selected pipes
 * [[Image:Arch_Stairs.png|32px]] Stairs: Creates a stairs object in the document
 * [[Image:Arch_Roof.png|32px]] Roof: Creates a sloped roof from a selected face
 * Panel tools
 * [[Image:Arch_Panel.png|32px]] Panel: Creates a panel object from a selected 2D object
 * [[Image:Arch_Panel_Cut.png|32px]] Panel Cut: Creates a 2D cut view from a panel
 * [[Image:Arch_Panel_Sheet.png|32px]] Panel Sheet: Creates a 2D cut sheet including panel cuts or other 2D objects
 * [[Image:Arch_Nest.png|32px]] Nest: Allow to nest several flat objects inside a container shape
 * [[Image:Arch_Equipment.png|32px]] Equipment: Creates an equipment or furniture object
 * [[Image:Arch_Frame.png|32px]] Frame: Creates a frame object from a selected layout
 * [[Image:Part_Box.png|32px]] Box: Draws a box by specifying its dimensions
 * [[Image:Part_Shapebuilder.png|32px]] Shapebuilder: A tool to create more complex shapes from various parametric geometric primitives
 * [[Image:Draft_Facebinder.png|32px]] Facebinder: Creates a new object from selected faces on existing objects
 * [[Image:Arch_Space.png|32px]] Space: Creates a space object in the document

Modification tools

 * [[Image:Draft_Move.png|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.png|32px]] Rotate: Rotates object(s) from a start angle to an end angle
 * [[Image:Draft_Clone.png|32px]] Clone: Clones the selected objects
 * [[Image:Draft_Offset.png|32px]] Offset: Moves segments of an object about a certain distance
 * [[Image:Part_Offset2D.png|32px]] 2D Offset: Constructs a parallel wire at certain distance from original, or enlarges/shrinks a planar face ((parametric version)
 * [[Image:Draft_Trimex.png|32px]] Trim/Extend (Trimex): Trims or extends an object
 * [[Image:Draft_Scale.png|32px]] Scale: Scales selected object(s) around a base point
 * [[Image:Draft_Stretch.png|32px]] Stretch: Stretches the selected objects
 * [[Image:Draft_Array.png|32px]] Array: Creates a polar or rectangular array from selected objects
 * [[Image:Draft_PathArray.png|32px]] Path Array: Creates an array of objects by placing the copies along a path
 * [[Image:Draft_Mirror.png|32px]] Mirror: Mirrors the selected objects
 * [[Image:Part_Extrude.png|32px]] Extrude: Extrudes planar faces of an object
 * [[Image:Part_Cut.png|32px]] Cut: Cuts (subtracts) one object from another
 * [[Image:Part_Union.png|32px]] Union: Fuses (unions) two objects
 * [[Image:Part_Common.png|32px]] Common: Extracts the common (intersection) part of two objects
 * [[Image:Part_MakeCompound.png|32px]] Compound: Creates a compound from the selected objects
 * [[Image:Part_MakeSimpleCopy.png|32px]] Simple copy: Creates a non-parametric copy of a selected object
 * [[Image:Draft_Upgrade.png|32px]] Upgrade: Joins objects into a higher-level object
 * [[Image:Draft_Downgrade.png|32px]] Downgrade: Explodes objects into lower-level objects
 * [[Image:Draft_Shape2DView.png|32px]] Shape 2D View: Creates a 2D object which is a flattened 2D view of another 3D object
 * [[Image:Draft_Draft2Sketch.png|32px]] Draft to Sketch: Converts a Draft object to Sketch and vice-versa
 * [[Image:Arch_CutPlane.png|32px]] Cut with plane: Cut an object according to a plan.
 * [[Image:Arch_Add.png|32px]] Add component: Adds objects to a component
 * [[Image:Arch_Remove.png|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 Levels.png|32px]] Levels manager: Manage the 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 Views.png|32px]] Views manager: Opens a window that contains the different views and levels of your project, for quick access
 * [[Image:BIM Classification.png|32px]] Classification manager: Manage how objects and materials of your project relate to
 * Material tools
 * [[Image:Arch_SetMaterial.png|32px]] Material: Creates a material and attributes it to selected objects, if any
 * [[Image:Arch_MultiMaterial.png|32px]] Multi-Material: Creates a multi-material and attributes it to selected objects, if any
 * [[Image:Arch_Schedule.png|32px]] Schedule: Creates different types of schedules