# FreeCAD BIM migration guide [PDF version of this article](../../archive/projects/freecad-bim-migration-guide.pdf) Are you interested in migrating from your current [Building Information Modeling (BIM)](https://en.wikipedia.org/wiki/Building_information_modeling) application to [FreeCAD](https://freecadweb.org)? Or maybe you never used BIM yet and you'd rather embark with an [open-source](https://en.wikipedia.org/wiki/Open-source_software) solution than locking yourself in with proprietary applications? This guide is for you. Be prepared for a long-haul trip, as adopting a new BIM workflow is never simple, no matter the application. On the other hand, you will be in control of the trip, and be able to choose everything yourself and design the best strategies to achieve what your need. You are the best person to decide what and how your BIM tools should be, like a lumberjack is the best person to decide how an axe should be. This short guide will tell you all you need to know to get started. ![](../../images/2020/freecad-bim-1.jpg) *FreeCAD is a complete 3D modelling platform with all the tools you need to build and manage BIM models* ### What is FreeCAD * [FreeCAD](https://freecadweb.org) is a **3D modelling platform**. With it, you can draw and model [3D objects](https://en.wikipedia.org/wiki/3D_modeling), generate 2D views (plans and sections) or extract all kinds of data and quantities from your model (spreadsheets), perform different kinds of analysis on your model, export them to a wide range of file formats, or even 3D-print them. FreeCAD is well suited to model objects that will exist in the real world, such as electronic components, 3D-printable objects, engineering parts and components, or buildings. There is no limitation in model size. * FreeCAD is a **generic modeller**, not targeted at a specific speciality or profession. It is not only a BIM platform. Instead, it features different [workbenches](https://wiki.freecadweb.org/Workbenches), or collections of tools, grouped by purpose or area. For example, there is a workbench for mechanical parts, one for 3D printing, one for performing stress analysis, etc. You can switch workbenches anytime during your work, and you can even create your own with your favourite tools from all other workbenches. Workbenches also sometimes define more than just tools, and have specific workflows and concepts. There is a state-of-the-art [BIM workbench](https://wiki.freecadweb.org/BIM_Workbench) in FreeCAD, available as a plug-in that can be installed directly from within FreeCAD. * FreeCAD is a **parametric modeller**. Your 3D and 2D objects are driven by parameters, or properties. A brick, for example, would be defined by 3 properties: Length, width and height. Upon changing any of the values of these properties, the geometry of the brick is recalculated, and any object that depends on it in any way, for example a wall made of these bricks, is also recalculated. These parametric relationships are the true power of FreeCAD, as you can plug almost any property of any object into another. For example, you can use the height of a column to define the starting position of a beam. If you change the height of the column, the position of the beam changes automatically. * FreeCAD is based on **real-world units**. Everything in FreeCAD has a real-world dimension. You can switch your preferred unit anytime without changing the model, and you can mix units while you work. For example, you can design objects in inches in a model based on metres. Another person might then want to open your model and display everything in centimetres. ![](../../images/2020/freecad-bim-2.jpg) *FreeCAD allows to easily extract all kinds of information and create 2D drawings from your models* ### Important things to know before beginning * FreeCAD is **[free and open-source (FOSS) software](https://en.wikipedia.org/wiki/Free_software)**. This means you are free to use it without having to pay anyone, but it goes much further than that. The source code is [publicly available](https://github.com/FreeCAD/FreeCAD), which means one can verify what FreeCAD does under the hood, check that it doesn't gather any private data or send anything to some company server. You also have [legal rights](https://github.com/FreeCAD/FreeCAD/blob/master/LICENSE) to download, use, modify FreeCAD, to redistribute it, and to redistribute the changes you did to the software, without the need for any permission or approval. The files you produce with FreeCAD are also fully yours, and are not submitted to any type of restriction. The license of FreeCAD also ensures you that it will stay free forever, as it cannot be sold to a company. * FreeCAD **runs on Windows, Mac OS and Linux**. There is always an "official", stable version, but, as the development of FreeCAD goes very fast, there are often intermediary, "development" versions [available](https://github.com/FreeCAD/FreeCAD/releases) between each stable release. These development versions are usually totally stable and safe to use, and it is always highly recommended, unless you have specific reasons to be conservative (for example you are redistributing FreeCAD to your clients or you need to provide support for it) to use a development version instead of the stable one, as you'll benefit from the latest features. Most Linux distributions only provide the stable version, but the development version packages provided by the FreeCAD community can be used alongside. * Although we firmly believe FreeCAD can do 99% of what similar commercial applications do, some features will not be exactly the same as what you are used to if you come from another similar software (the same is also true when you switch to another commercial application). You will need **time to learn how FreeCAD works** and how to integrate it in your current workflow. Instead of doing a radical "switch to FreeCAD", consider integrating it progressively, alongside your current workflow. That way it won't be disrupted, and you will ease the learning curve greatly. * FreeCAD is **developed by a community** made mostly of volunteers who work on the project motivated by their passion for it. There is no commercial interest behind FreeCAD, only the will to create the best tool we can. This community is [open, available](https://forum.freecadweb.org), and always happy to help newcomers and discuss issues. There are many channels and places to communicate and get help and tips from experienced users. This is an important key to an easier learning. * FreeCAD is **fully translated** into [several languages](https://crowdin.com/project/freecad), and has a **broad documentation**, also translated in several languages. Everything is done by users like, hopefully, yourself. You are more than [welcome to help](https://wiki.freecadweb.org/Help_FreeCAD) the FreeCAD project, there are many ways to do that without writing code. You can also [donate money](https://wiki.freecadweb.org/Donate) to help the project. ![](../../images/2020/freecad-bim-3.jpg) *FreeCAD is a first-class citizen in the IFC/openBIM world and works seamlessly with files from other applications* ### What to install * Head to the [FreeCAD homepage](https://freecadweb.org) (or your Linux distribution's software manager), and **download and install** a package (stable or development) for your operating system. * FreeCAD contains several built-in workbenches, bundled with the application, but there are many more available as add-ons (plugins). Installing add-ons is easy and can be done directly from within FreeCAD, from menu *Tools -> Addons Manager*. A first add-on you should install if you plan to do BIM in FreeCAD is the **BIM add-on**. The [BIM add-on](https://wiki.freecadweb.org/BIM_Workbench) gathers tools from several other workbenches and provides an easier interface for users coming from other BIM applications. * FreeCAD also needs an additional piece of software called **[IfcOpenShell](https://ifcopenshell.org)** to import and export IFC files. The [IFC file format](https://en.wikipedia.org/wiki/Industry_Foundation_Classes) is an open, universal file format to exchange BIM models with other applications, and is an important founding stone of a truly open BIM workflow. On using the BIM add-on for the first time, if IfcOpenShell is not present on your system, you will be offered to automatically download and install it. * Optionally, if you plan to work with [DWG](https://en.wikipedia.org/wiki/.dwg) files, you should also download and install the free conversion application **[ODA converter](https://www.opendesign.com/guestfiles/oda_file_converter)** and make it known to FreeCAD under *Edit -> Preferences -> Import/Export -> DWG*. Note that the DXF format, which is an open but complete counterpart to the proprietary DWG fomat, is supported natively by FreeCAD. Any application able to export DWG files is also able to export the same content as DXF, so the use of the ODA converter is not always necessary. ![](../../images/2020/freecad-bim-4.jpg) *1: The workbench selector. Switch between workbenches from here. 2: The tree shows all the objects of your model. 3: The 3D view is where you work, it can be split into different windows and new views of the same model can be created. 4: The properties view shows and allows to edit all the properties of selected objects* ### Quick start and tips * Read the [getting started](https://wiki.freecadweb.org/Getting_started) page for a quick overview of the FreeCAD interface. * FreeCAD has a complete [manual](https://wiki.freecadweb.org/Manual) that can be read online or downloaded as a [PDF](https://freecadweb.org/manual/a-freecad-manual.pdf) or [EPUB](https://freecadweb.org/manual/a-freecad-manual.epub). * FreeCAD has an extensive [documentation wiki](https://wiki.freecadweb.org) where every workbench and command has a detailed documentation page. Individual command help pages are also available using the *Help -> What's this?* tool and clicking on any toolbar button. * The [BIM workbench](https://wiki.freecadweb.org/BIM_Workbench) features an in-game tutorial found under *Help -> BIM tutorial*, that will walk you through a classical BIM workflow. You are greatly advised to take it first. * There are many [example BIM models](https://wiki.osarch.org/index.php?title=Architecture_3D_models_created_in_FreeCAD) for FreeCAD on the internet, if you want to have a quick look. * FreeCAD has its own, native file format, that uses the [.FCStd](https://wiki.freecadweb.org/File_Format_FCStd) extension, but reads and writes [many other file formats](https://wiki.freecadweb.org/Manual:Import_and_export_to_other_filetypes). The [IFC format](https://en.wikipedia.org/wiki/Industry_Foundation_Classes) is the most widely used and recognised BIM format. It is open, readable by humans and by all BIM applications. It is always advised to keep an [IFC viewer](http://www.ifcwiki.org/index.php?title=Freeware) at hand to check that the IFC files you export from FreeCAD or receive from others look good. * Any FreeCAD object can be used as a BIM object. You can switch to other workbenches anytime, and any object created with any other workbench can quickly gain BIM/IFC capabilities by using the [Component](https://wiki.freecadweb.org/Arch_Component) tool. * Any BIM object can have its IFC type changed. An object made with the column tool, for example, can become a wall just by changing its type. * Most 2D and 3D objects made with the BIM workbench will be drawn on the current [working plane](https://wiki.freecadweb.org/Draft_SelectPlane). The grid always shows you where the working plane is placed. Learn how to setup and move the working plane, as you will often need to locate it before drawing or placing 3D objects. * You can mix all kinds of objects in a BIM model: BIM objects, non-BIM objects, 2D objects, annotations such as texts, symbols and dimensions or mesh objects. There is no restriction, no rule, the model is yours. * Be sure to organise your model well. Give meaningful names to your objects ("Kitchen wall" is easier to find or recognise than "Wall 0340"), and make generous use of [groups](https://wiki.freecadweb.org/Std_Group). Groups are like folders that contain your objects, you decide how you build your model structure, and can use as many as you want and embed them one into another as deep as you want. * [Walls](https://wiki.freecadweb.org/Arch_Wall) can be built directly using the Wall tool, or you can draw a line or polyline first, that the wall will follow, or you can make a wall from a selected face of another object, such as a space. Wall layers are defined with [multi-materials](https://wiki.freecadweb.org/Arch_MultiMaterial). You can also make walls using other objects such as boxes and additions or subtractions. [Curtain walls](https://wiki.freecadweb.org/Arch_CurtainWall) are commonly used to create the structure of stud walls. * [Structural elements](https://wiki.freecadweb.org/Arch_Structure) (columns, beams, slabs) are also made directly with the corresponding tool, or by drawing first a 2D profile. They have a structural centre line, that can be edited, and exported to structural analysis applications via IFC. * [Windows and doors](https://wiki.freecadweb.org/Arch_Window) can be made simply by selecting a preset from the corresponding tool, adjusting dimensions, and placing it either somewhere in the 3D space or directly on another object, such as a wall. Custom doors or windows can easily be created from [sketches](https://wiki.freecadweb.org/Sketcher_NewSketch) or any other 2D drawing, and any door or window can create a hole automatically in any other BIM object by adding the hosting BIM object to their *Host* property. * There are many tools to create grids, layouts and other 2D schemes upon which BIM elements can be placed automatically. [Axes grids](https://wiki.freecadweb.org/Arch_AxisSystem), [grid objects](https://wiki.freecadweb.org/Arch_Grid), [sketches](https://wiki.freecadweb.org/Sketcher_NewSketch) or even subdivided [rectangles](https://wiki.freecadweb.org/Draft_Rectangle) can all be used that way. Complex [railings](https://wiki.freecadweb.org/Arch_Frame), for example, can be created simply by selecting such an object and a profile. * [Sketches](https://wiki.freecadweb.org/Sketcher_NewSketch) are a special type of 2D object that can contain many elements like lines or arcs, and constraints such as horizontal distance, angle, or that a point must lay on another element. Constraints can be named and their values made accessible to other objects. They are very precious layering tools in a BIM workflow, for example to draw the general limits of your model, where all the subsequent objects will articulate. Sketches are a very fundamental feature of FreeCAD. * [Levels](https://wiki.freecadweb.org/Arch_BuildingPart) (or floors, or storeys) are typically done using the [Building Parts](https://wiki.freecadweb.org/Arch_BuildingPart) tool. Building parts don't represent only levels, but more generally any group of objects that you wish to be able to move or duplicate together. But you can also make levels simply by using groups. * Typically, an IFC-ready BIM model contains a project, which defines general properties, which contains a site, which contains a building, which contains one or more levels. You might choose to follow that structure, or not, or even have that structure created automatically for you at IFC export. in any case, you define how you want your model to be structured. * Any property of any object that is marked with the [expression](https://wiki.freecadweb.org/Expressions) symbol can have its value taken from any other property of the same type, not only from the same document but also from any other document. you can, for example, define a length constraint in a sketch, and use the value of that length anywhere else in FreeCAD. Or create a spreadsheet with some reference values to be used in your objects. The only limit to bear in mind is that circular dependencies are forbidden. Object A might depend on (take on of its values from) object B, but in that case object B cannot depend on object A. FreeCAD wouldn't be able to tell which object must be calculated first. * 2D views can be created in several ways. Either using the [TechDraw](https://wiki.freecadweb.org/TechDraw_Module) workbench to produce pages ready to export as DXF, SVG or PDF files (SVG files can be tweaked/edited further with [inkscape](https://inkscape.org)), or producing a [2D view](https://wiki.freecadweb.org/Draft_Shape2DView) directly in the 3D space, that can also be exported to DXF or DWG. In both cases, you can either directly produce a view of a single object, or use [section planes](https://wiki.freecadweb.org/Arch_SectionPlane) that you place in your model to define plan, section and elevation views. You can then either use a [2D view](https://wiki.freecadweb.org/Draft_Shape2DView) or a [TechDraw Arch view](https://wiki.freecadweb.org/TechDraw_ArchView) to create the actual view from the section plane. * [Spreadsheets](https://wiki.freecadweb.org/Spreadsheet_Workbench) can be created using the spreadsheet workbench or the [schedule](https://wiki.freecadweb.org/Arch_Schedule) tool. They allow to gather almost any kind of information from your model. you can count object of a certain type, add the values of a certain property of objects and do most of the common cell operations found in other spreadsheet applications such as adding and multiplying cells. You can also use spreadsheet the other way, to define general values, that you can then use in the properties of your objects. By changing that value in the spreadsheet, all objects that use it will be automatically updated. Spreadsheet can also be placed on TechDraw pages. * IFC export is extremely straightforward in FreeCAD. Select all the objects you want to export (or their containers, such as groups or building parts), and hit *File -> Export*. All BIM objects that have an IFC type property defined will be exported as such, and other objects, such as those coming from other workbenches, will be exported as generic *IfcBuildingElementProxy* entities. More complex IFC systems such as materials or property sets are all defined per object, using the different [IFC managing tools](https://wiki.freecadweb.org/BIM_Workbench#Management_tools) provided in the BIM workbench. * [Renderings](https://en.wikipedia.org/wiki/Rendering_(computer_graphics)) can be produced directly from FreeCAD using the Render add-on, but you can also easily export your models to an application with more advanced rendering capabilities, such as [Blender](https://blender.org) ### Useful links * The FreeCAD homepage: https://freecadweb.org * The FreeCAD forum, where you can ask questions, follow development, discuss issues, tell us what you think of the application. There will almost always be someone happy to help you. There are sections in different languages too: https://forum.freecadweb.org * The FreeCAD documentation, divided in sections for users, power-users who wish to write Python code, and developers. The documentation is partially translated into several languages: https://wiki.freecadweb.org * The bug tracker, where you can submit reports if you found a bug. Be sure to read the rules first, so your report does not consume the time of developers unnecessarily: https://tracker.freecadweb.org * The source code of FreeCAD, where anyone can submit code changes, for example to fix a bug or implement new functionality. Proposed changes are reviewed by the FreeCAD core team before inclusion: https://github.com/FreeCAD/FreeCAD * The translation page of FreeCAD, where you can help translating it into your own language: https://crowdin.com/project/freecad (helping to translate the documentation is done directly on the wiki). Updated translations are regularly included in FreeCAD. * Ifc++ is an open-source IFC viewer and a great companion to FreeCAD. Use it to check that your exported IFC files look good before sending them to others, or if there is a problem in an IFC file that doesn't look correct in FreeCAD (if no problem is found in the file, it might be time to submit your first bug report!): http://www.ifcquery.com/ * There are many more interesting applications to work with BIM and IFC files: https://wiki.osarch.org/index.php?title=AEC_Free_Software_directory * BlenderBIM is another open-source BIM solution, based on the well-known 3D modeller [Blender](https://blender.org). Blender is a fast, free-form modeller, in contrast to FreeCAD which is a more precise modeller, with more parametric control. Depending on the project phase, sometimes one does the job better, sometimes the other, as they have opposite strengths. BlenderBIM works very well hand-in-hand with FreeCAD (they share a lot of code, and there is also an [importer](https://gist.github.com/yorikvanhavre/680156f59e2b42df8f5f5391cae2660b) and [exporter](https://gist.github.com/yorikvanhavre/029f6fcce9f4d0e62fb6163804b7f80d) to import/export directly between Blender and FreeCAD): https://blenderbim.org * QCAD is an open-source 2D CAD drawing application. It also has a paid version, which adds a couple of tools and native DWG support. QCAD is great to edit and polish the 2D DXF files produced by FreeCAD: https://qcad.org * LibreCAD is another open-source 2D CAD drawing application. It was originally a fork of QCAD, but has since then developed into its own, different application: https://librecad.org * Inkscape is a vector drawing application. It is great to edit the SVG pages produced from FreeCAD, or to build page templates to be used in FreeCAD: https://inkscape.org * The OSArch community is a gathering place for architects and engineers interested in using (and sometimes developing) open-source tools. It has a wiki with a lot of information and a monthly, open, video gathering where we explore available tools and discuss workflows: https://community.osarch.org * And if you are interested in helping the FreeCAD project to thrive, here is a summary of what you can do: https://wiki.freecadweb.org/Help_FreeCAD and, if you cannot give time but would be interested in helping the project with money instead, here are the different donation options: https://wiki.freecadweb.org/Donate