BIM-kit is a project developed by Christoph Sydora. BIM-kit is a collection of Tools/Applications and Web Services that together store, modify, and evaluate Building Information Modeling (BIM) models. The work is part of his PhD thesis, under the supervision of Dr. Eleni Stroulia at the University of Alberta. Work relating to this project has been published at the EC3 Conference in July 2021 (link will be made available when accessible).
BIM-kit is made up of a growing number of components, each with a task specific goal. In its current state, the following components have been developed:
- DBMS: Is the central Repository for storing BIM models. It is a web service that controls a MongoDB database for the models, objects, user access, and additional BIM related classes. The AdminApp contains all functionally of the DBMS.
- BIM-kit Viewer: This is the primary 3D viewer of BIM models from the BIM-kit Repository. This application was developed using the Unity Game Engine. Addons for rule selection and Model Checking have been included; Generative Design development is ongoing and initial variant will be added shortly.
- RMS: Controls a MongoDB database for the rules, rulesets, user access, and methods used for model evaluation. The [RuleAdminApp](./ RuleAdminApp/) contains all functionally of the RMS.
- Rule Editors: There are currently three rule editors. The first is the WFRuleEditor which is a .NET WindowsForm application. Second is the BlocklyRuleEditor which uses Google Blockly puzzle-like pieces to create rules. Finally, the NLPRuleEditor takes input (somewhat) natural language in an attempt to parse it into design rules. (Note: the WFRuleEditor is the most updated editor, while the other two are prototypes for proof of concept purposes are require updates).
- Model Checking: A service for evaluating a model under a set of design rules. For testing, an individual checking application was developed in the MCGDApp
- Generative Design is a service for automatically adding furnishing to a model based on specified design rule constraints. This project was ordinally done as part a MSc project by Christoph and is currently being migrated over to the new code base.
- Model Simulation is an application for evaluating a model using Unity Simulation. This project is ongoing and part of a project on virus transmission within a building and will be added at a future date.
- Additional Libraries and Tools: MathPackage is library that contains some useful vector and mesh methods. ModelConverter is an application for converting Industry Foundation Class (IFC) and .obj files into the format used in BIM-kit. Each Component has individual README files with further details and instructions.
The tools required for running BIM-kit are:
- Unity (2019.3.12f1 prefered)
- MongoDB
- Visual Studios (2019) .NET 4.7.2
As the majority of projects (aside from the NLP and Blockly Rule Editors) are written in C#, all projects are accessible via a single Visual Studio solution file. Assuming you have MongoDB installed, to run the applications, simply open BIMkit.sln in Visual Studios and run the project. All .NET application will run simultaneously. You may be required to modify the URL for your local MongoDB instance in the DBMS and RMS.
The Unity projects, which are the BIM-kit Viewer and ModelSimulation, require running the scene file in the Unity environment
BIM-kit use the following 3rd party libraries for specific tasks:
- xbim Toolkit (specifically xbim-Essentials and xbim-Geometry): For parsing IFC files and extracting geometry (CDDL-1.0)
- Newtonsoft: For Json conversion (MIT License)
- geometry3Sharp: For mesh and geometry calculations (Boost Software License 1.0)
- Blockly and NLP Rule Editors have their own libraries and specifications which can be found in their respective README files
- BIM-kit: An Extendible Toolkit for Reasoning about Building Information Models (link not availble at this time)
- Rule-Based Compliance Checking and Generative Design for Building Interiors Using BIM
- Generative Interior Design using BIM
- Towards Rule-Based Model Checking of Building Information Models
- Augmented Reality on Building Information Models