BIMTester lets you specify a set of exchange requirements, and automatically check whether or not BIM data, typically an IFC file, complies with the requirements. You can run it automatically from a server, integrate it to your own application, or use a GUI. It can generate reports in various formats including:
- HTML
- JSON
- XUnit
- BCF
- Zoom Smart View
Your exchange requirements are written in plain language which you can use to communicate to project teams and include in contracts. Multiple languages are supported. A series of exchange requirement templates are provided to get started, but you can, and are encouraged to, write your own tailored to your project. An example of a requirement looks like this:
Feature: Project setup
In order to view the BIM data
As any interested stakeholder
We need an IFC file
Scenario: Receiving a file
* IFC data must use the IFC4 schema
Languages supported include (in alphabetical order):
- Dutch
- English
- French
- German
- Italian
If you are not a developer, we highly recommend simply installing an integrated version of BIMTester.
- If you use Blender, install the BlenderBIM Add-on
- If you use FreeCAD, install the FreeCAD BIMTester Workbench
If you are a developer, read on!
The following packages are required for BIMTester to function:
- behave
- pystache
- ifcopenshell
- PySide2 (optional: needed for GUI)
The repository does not contain translation files. You can generate them as shown.
cd IfcOpenShell/src/ifcbimtester/bimtester/locale
pybabel compile -d .
BIMTester has a command line application. Check it out:
$ python cli.py -h
usage: cli.py [-h] [-a ACTION] [--advanced-arguments ADVANCED_ARGUMENTS] [-c]
-f FEATURE -i IFC [-p PATH] [-r REPORT] [--lang LANG]
Runs unit tests for BIM data
optional arguments:
-h, --help show this help message and exit
-a ACTION, --action ACTION
Action to perform, from run/purge
--advanced-arguments ADVANCED_ARGUMENTS
Specify arguments to Behave
-c, --console Show results in the console
-f FEATURE, --feature FEATURE
Specify a feature file to test
-i IFC, --ifc IFC Specify a ifc file
-p PATH, --path PATH Define a path for use in tests
-r REPORT, --report REPORT
Specify an output file for a HTML report
--lang LANG Specify a language
You can turn it into a regular command by symlinking it to your bin folder.
$ ln -s /path/to/IfcOpenShell/src/ifcbimtester/cli.py /usr/local/bin/bimtester
$ bimtester -h
To run a test, we need an IFC to check and a feature file filled with requirements. The feature file is plaintext. Feel free to copy the minimal example above.
# To see output in the console
$ bimtester -i test.ifc -f test.feature -c
# Or, if you want to generate a HTML report
$ bimtester -i test.ifc -f test.feature -r report.html
python ./gui.py
TODO: Check if this works
Unix:
$ pyinstaller --onefile --clean --icon=icon.ico --add-data "features:features" bimtester.py
Windows:
$ pyinstaller --onefile --clean --icon=icon.ico --add-data "features;features" bimtester.py