FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!


GuiCommand: Name: BIM Preflight MenuLocation: Manage , Preflight checks... Workbenches: BIM_Workbench

BIM Preflight

Description

The BIM Preflight tool allows you to perform several tests on your model to verify its compatibility with IFC standards and best practices, and help you to detect possible issues you might want to fix.

As FreeCAD is a very loose and free-style modelling platform, the requirements are very low. You can basically model and organize your BIM model the way you like, using all the tools that FreeCAD offers, both from the BIM workbench and other workbenches. The IFC format, however, has some strict requirements, and other BIM applications that can read IFC files often bring additional limitations as they more than often have difficulties with certain entities or the way certain objects are modeled.

The results of most of the tests provided by this tool are optional, which means you can choose to export your model even if they fail. You are the one to assess if you need the test to pass or not. We tried our best to give sound information to help you decide.

Usage

  • Have a model opened in FreeCAD, with at least some objects
  • You can select objects before launching the tests, in which case you have the option to perform the test only on the selected objects
  • Press the Test All button to perform all the tests, or only buttons corresponding to individual tests.
  • When the tests have finished, pressing a Failed button will give you additional information to help you decide if this is relevant to you or not.

Builtin tests

  • Run all tests: Runs all the tests one after the other

FreeCAD setup tests

  • IFC4 support: Tests if the IFC import/export system of FreeCAD is working correctly, and if the IFC4 format is available (which requires an up-to-date version of IfcOpenShell and enabled in the preferences.

Project organization tests

  • Project hierarchy: The IFC format requires at least one building and it is also a common practice to have one site and at least one level (storey). This test checks if these are present in the model
  • Buildings: Checks that all buildings found in the model are part of a site
  • Levels: Checks that all levels (building storeys) found in the model are prt of a building
  • Objects structure: Checks that all objects found in the model are part of a level

Objects & property tests

  • Undefined objects: Checks if there are objects in the model that are not BIM objects, and will therefore be exported without full BIM properties
  • Solids: Checks that all objects in the model have valid solid geometry
  • Explicit quantities: Checks that all objects with length, width or height properties are marked for explicit export of these quantities
  • Common Properties sets: Checks that all BIM objects of common types (wall, door, etc...) have the corresponding \"common\" properry set applied (Pset_WallCommon, Pset_DoorCommon, etc)
  • Property sets integrity: Checks that all common Psets (Pset_WallCommon, Pset_DoorCommon, etc) found in the model include all and only the properties defined by the IFC standards
  • Materials: Checks that all BIM objects have a material
  • Standards: Checks that all BIM objects have a standard code

Compatibility tests

  • Extrusions: Checks that all BIM objects are linear extrusions
  • Standard cases: Checks that all walls and structural elements are standard cases, as defined by the IFC schema
  • Tiny lines: Checks that no line segment in the model is smaller than 1/32\", the minimum length that Revit is able to manage...
  • IfcRectangleProfileDef: Checks that the option to export rectangular profiles as IfcRectangleProfileDef is disabled, because Revit (yes, them again) is unable to import that entity.

Custom tests

The Preflight tool also allows you to write custom tests, that will be appended after the built-in tools in the Preflight dialog, and run when using the Run all tests button. These tests are written in Python. They consists of simple functions inside one or more Python files. You can perform any operation you want inside those functions, they must just pass or fail, and in case they fail, show a message informing the user of what failed.

You can write several tests in one single Python file, or divide in several files, as you prefer. These files must be placed in \$USERAPPDATA/BIM/Preflight and can be given any name (Be sure to use very unique names as to not conflict with any built-in Python module. The \$USERAPPDATA folder depends on your platform/operating system (usually \$HOME/.FreeCAD on linux/mac, /users/YOUR USER/Application Data/roaming/FreeCAD on windows), and can also be found by entering this in the FreeCAD Python console:

FreeCAD.getUserAppDataDir()

Inside each Python file, tests are simple functions that take no argument, and return either True if the test passed, or a string of text that will be shown to the user if the test failed.

A typical test file would be like this, that should be named something like \"myCustomTest.py\" and placed inside \$USERAPPDATA/BIM/Preflight:

import FreeCAD

 The name of your test. You can give the functions any name

 you want, the important is the description text below

def myCustomTest():    # This describes what your test does. For example,    # here, it checks that there is at least one object in the document.    # This text will appear next to the button in the Preflight tool    """Checks that the document contains at least one object"""    doc = FreeCAD.ActiveDocument    objects = doc.Objects    if len(objects) >= 1:        result = True    else:        result = "This document contains no object"    # The function must return either True or a string of    # text if the test failed. The string or text will be displayed    # to the user when they press the "Failed" button.    return result


⏵ documentation index > BIM > BIM Preflight

This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/BIM_Preflight.md

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub