Arch Module/id

Introduction
The Arch Workbench provides a modern building information modelling (BIM) workflow to FreeCAD, with support for features like fully parametric architectural entities such as walls, structural elements, roofs, windows, stairs, pipes, and furniture. It supports industry foundation classes (IFC) data, and production of 2D floor plans in combination with the TechDraw Workbench.

The Arch Workbench imports all the tools from the Draft Workbench, as it uses 2D objects to build its architectural objects. Nevertheless, Arch can also use solid objects created on other workbenches like Part and PartDesign.

The BIM functionality of FreeCAD is now progressively split into this Arch Workbench, which holds basic architectural tools, and the BIM Workbench, that you can install via the Addon Manager. This workbench adds a new interface layer on top of the Arch tools, with the aim to make BIM workflow in FreeCAD more intuitive and user-friendly.



Tools
These are tools for creating architectural 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.


 * Arch CompRebarStraight.png Rebar tools: the Reinforcement Addon augments the Arch Workbench Structures.
 * [[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_ColumnReinforcement.svg|32px]] ColumnReinforcement: creates a reinforcing bars inside a Column Arch Structure object.
 * [[Image:Arch_Rebar_ColumnReinforcement.svg|32px]] ColumnReinforcement TwoTiesSixRebars: creates a reinforcing bars inside a Column Arch Structure object.
 * [[Image:Arch_Rebar_BeamReinforcement.svg|32px]] BeamReinforcement: creates reinforcing bars inside a Beam Arch Structure object.
 * [[Image:Arch_Rebar.png|32px]] Rebar: creates a custom reinforcement bar in a selected structural element using a sketch.


 * [[Image:Arch_Floor.png|32px]] Floor: Creates a floor including selected objects
 * [[Image:Arch_BuildingPart.png|32px]] Building Part: Creates a building part including selected objects
 * [[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_Project.svg|32px]] Project: Creates a project including selected objects
 * [[Image:Arch_Reference.png|32px]] Reference: Links objects from another FreeCAD file into this document
 * [[Image:Arch_Window.png|32px]] Window: Creates a window using a selected object as a base
 * [[Image:Arch_SectionPlane.png|32px]] Section Plane: Adds a section plane object to the document


 * Arch CompAxis.png Axis tools: The Axis tool allows you to places a series of axes in the current document.
 * [[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_Roof.png|32px]] Roof: Creates a sloped roof from a selected face
 * [[Image:Arch_Space.png|32px]] Space: Creates a space object in the document
 * [[Image:Arch_Stairs.png|32px]] Stairs: Creates a stairs object in the document


 * Arch CompPanel.png Panel tools: Allows you to build all kinds of panel-like elements.
 * [[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_Frame.png|32px]] Frame: Creates a frame object from a selected layout
 * [[Image:Arch_Fence.svg|32px]] Fence: Creates a fence object from a selected post and path.
 * [[Image:Arch_Equipment.png|32px]] Equipment: Creates an equipment or furniture object


 * Arch CompPipe.png 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


 * Arch CompSetMaterial.png Material tools: The Material tools allows to add materials to the active document.
 * [[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

Modification tools
These are tools for modifying architectural objects.


 * [[Image:Arch_CutPlane.png|32px]] Cut with plane: Cut an object according to a plane.
 * [[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
 * [[Image:Arch_Survey.png|32px]] Survey: Enters or leaves surveying mode

Utilities
These are additional tools to help you in specific tasks.


 * [[Image:Arch_Component.png|32px]] Component: Creates a non-parametric Arch component
 * [[Image:Arch_cloneComponent.png|32px]] Clone component:
 * [[Image:Arch_SplitMesh.png|32px]] Split Mesh: Splits a selected mesh into separate components
 * [[Image:Arch_MeshToShape.png|32px]] Mesh To Shape: Converts a mesh into a shape, unifying coplanar faces
 * [[Image:Arch_SelectNonSolidMeshes.png|32px]] Select non-solid meshes: Selects all non-solid meshes from the current selection or frm the document
 * [[Image:Arch_RemoveShape.png|32px]] Remove Shape: Turns cubic shape-based arch object fully parametric
 * [[Image:Arch_CloseHoles.png|32px]] Close Holes: Closes holes in a selected shape-based object
 * [[Image:Arch_MergeWalls.png|32px]] Merge Walls: Merge two or more walls
 * [[Image:Arch_Check.png|32px]] Check: Check if the selected objects are solids and don't contain defects
 * [[Image:Arch_IfcExplorer.png|32px]] Ifc Explorer: Browse the contents of an IFC file
 * [[Image:Arch_ToggleIfcBrepFlag.png|32px]] Toggle IFC Brep flag: Forces a selected object to be exported as an IfcFacetedBrep.
 * [[Image:Arch_3Views.png|32px]] 3 Views from mesh: Creates top, frontal and side views from a mesh.
 * [[Image:Arch_Schedule.png|32px]] Create IFC spreadsheet...:
 * [[Image:Arch_ToggleSubs.png|32px]] Toggle Subcomponents: Shows or hides the subcomponents of an Arch object.

Preferences

 * [[Image:Preferences-arch.svg|32px]] Preferences: preferences for the default appearance of walls, structures, rebars, windows, stairs, panels, pipes, grids and axes.

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)

API
The Arch module can be used in Python scripts and macros using the Arch Python API functions.

Tutorials

 * Architecture workflow: An example of how FreeCAD can begin to have its preliminary place in an architecture workflow.
 * Arch tutorial (v. 0.14)
 * Quick arch overview on Yorik's blog (v. 0.13)
 * Video presentation of the Arch workbench (2016)
 * Arch panel tutorial (v. 0.15)
 * BIM modeling chapter from the FreeCAD manual
 * Import from STL or OBJ
 * Export to STL or OBJ