In this post, we collect and list all available opensource tools for building information modeling, any comments and suggestions are welcome.
Open & Save IFC
- IfcOpenShell: an opensource IFC tool based on OpenCASCADE, supports both Linux and Windows, and provides IfcOpenShell-python for python developers. Meanwhile, IfcMax, IfcBlender and plugin for BIMserver are provided for 3ds Max, Blender and BIMserver. In addition, a tool called IfcConvert is also developed to convert IFC to various 3D formats. Currently, only IFC-SPF is supported, and support for IFCXML is still under development. Source code is available on GitHub under LGPL.
- XBim Toolkit: built based on OpenCASCADE, which provides Xbim Essentials, Xbim Geometry for loading/saving IFC and processing of geometric data, both IFC-SPF and IFCXML are supported. Moreover, Xbim Xplorer, Xbim WebUI, Xbim Utilities, Xbim Exchange are also included for development of WPF applications and 3D website, batch processing of files and data exchange based COBie respectively. Source code is available on GitHub under CDDL.
- IFC++: IFC loading and saving tool based on C++, supports parallel processing of IFC, source code is available on GitHub under MIT license。
- apstex IFC Framework: a Java-based IFC tool, former version of it is also called Open IFC Tools, features including IFC loading/saving, geometry processing, 3D visualization are provided. The tool is free for research.
- IfcWebServer: perhaps one of the oldest web-based IFC tools, supports IFC loading/saving, 3D/4D visualization, sub-model filtering and IFC to neo4j conversion. Source code is available on GitHub.
- FreeCAD: opensouce 3D parametric modeling tool, support multiple operation systems, and built-in python API is available. FreeCAD could load and save IFC based IfcOpenShell-python, and source code is available on GitHub under LGPL.
- BRL-CAD: 100% free and opensource, support multiple operation systems, and provide hybrid CSG and B-REP geometry kernel. BRL-CAD is trusted by the U.S. military for modeling weapon systems. Source code is available on SourceForge.
- Blender: opensource tool for 3D modeling and animation, support multiple 3D formats, and provide built-in python API, which could be used to load and save IFC files based on IfcOpenShell-python. Source code is opened on its website under GPL.
- OpenSCAD: a programmer 3D solid modeling tool, supports multiple operation systems. OpenSCAD provides built-in modeling scripts and automatically compiles the scripts to generate 3D models. Source code is available on GitHub under GPL v2.
3D Processing & Visualization
- Helix Toolkit: a 3D visualization component based on .Net framework, source code is available on GitHub under MIT license.
- Trimesh: a python library for 3D processing and visualization, support multiple 3D formats, and quite a few functions including convex hull, boolean operation, voxelization, etc., are provided. Source code is available on GitHub under license. Our group also contributed an algorithm for solid voxelization, related paper could be found here.
BIMserver：opensource BIM server, support management, versioning, checking, filtering, integration, clash detection and visualization of IFC models, and built-in support of WebGL-based Visualization BY BIMSurfer. Source code is available on GitHub under AGPL.
Since BIMserver was born, many tools have emerged on top it, check GitHub page of opensourceBIM for detail.
Model Checking & Validation
- IfcDoc and its next generation called IfcXtreme: which are provided by buildingSMART, support definition of IFC schema, model validation based mvdXML, source code is opened under MIT and GPL3 license.
- python-mvdxml: a mvdXML-based model validation tool opened by opensourceBIM, built on top of IfcOpenShell.
- IfcValidator: a model validation tool for BIMserver, also opened by opensourceBIM.
- tools not maintained anymore: JavaModelChecker and mvdXMLChecker。
If you found new opensource tools not listed above, please do not hesitate to send the information to me: lin611(AT)tsinghua.edu.cn(replace
@), thank you very much.