# PluginIFCCheck The [IFC Check Plugin](PluginIFCCheck) can be used for to run the basic task IFC Check. In general the IFC Check can be used to check the quality of the IFC files regarding the requirements of the use case (e.g. BPS). The IFC Check runs checks based on IDS (Information Delivery Specification). For more information see section [Generate IDS files](GenerateIDSfiles). By this standard it is possible to create files (IDS files), which include the requirements regarding the format and content of the IFC files. In back-end of the IFC Check the python package ifctester is used. This package is part of the ifcopenshell framework. The IDS standard (version 1.0) does not cover all required checks. For example, it is not possible to check the uniqueness of the GUID (Global Unique Identifier). Therefore the task IFC Check also includes functions, which cover these missing checks. The general structure of the task IFC Check is shown in [Fig.: General structure of the IFC Check Task](FigStrIFCCheck) (FigStrIFCCheck)= ```{figure} ../img/dynamic/pluginIFCCheck/Datenfluss.png --- class: with-border width: 50% --- Fig.: General structure of the IFC Check Task ``` (HowtoInstallIFCCheck)= ## How to install? ### Step by step To install `PluginIFCCheck`: you need to do the following (in the root directory of the repo, here is the pyproject.toml file) ```shell pip install -e '.[PluginIFCCheck]' ``` The [bim2sim core installation](coreInstalltion) needs to be done before. ### Test install ## Examples Please also take a look at `bim2sim/plugins/PluginIFCCheck/bim2sim_ifccheck/examples`, which provides some examples for the IFCCheck plugin. You can use these examples to test your installation and learn from them. Additionally, they serve as good starting points for your own projects." ## Structure of the plugin The following figure shows the structure of the TEASER plugin. Here you see which tasks are used and how they are combined. ```{mermaid} --- title: plugin IFCCheck --- flowchart TB subgraph taskLoadIFC["task LoadIFC"] subgraph "" tLoadIFC["bim2sim > tasks > common > LoadIFC"] extLoadIFC(" Load all IFC files from PROJECT. " ) end stateLoadIFC[("state (reads/touches)")] tLoadIFC -- ifc_files --> stateLoadIFC end subgraph taskCheckIfc["task CheckIfc"] subgraph "" tCheckIfc["bim2sim > tasks > common > CheckIfc"] extCheckIfc(" Check ifc files for their quality regarding simulation. " ) end stateCheckIfc[("state (reads/touches)")] stateCheckIfc -- ifc_files --> tCheckIfc direction RL end taskLoadIFC --> taskCheckIfc ``` This figure is generated by the script template_mermaid.py (see [Visualization of bim2sim plugin structure](genVisPlugins)). ## How to create a project? See the examples. ## How to configure my project? See the examples. ## How to run the project? Run the project scripts, like in the examples. ## How to run the simulation? With this plugin no simulation model will be generated. ### What kind of results exist? Have a look at the reports generate by the ifccheck task. When you ran the examples in the terminal, you can find the working folder of the project run in the log output of the terminal. The reports are stored in html formatted files. These files are located in `workingFolder/log`. The following files will be generated: - created by ifcTester part: - ifc\_ids\_check.html - created by spec. functions: - ARCH\_AC20-FZK-Haus\_error\_summary.html - ARCH\_AC20-FZK-Haus\_error\_summary\_inst.html - ARCH\_AC20-FZK-Haus\_error\_summary\_prop.html - ARCH\_AC20-FZK-Haus\_error\_summary\_guid.html ### What programs/tools to use for further analysis or preparation? (GenerateIDSfiles)= #### Create IDS files The IDS standard is developed by BuildingSMART (for more information regarding IDS see [https://www.buildingsmart.org/what-is-information-delivery-specification-ids/](https://www.buildingsmart.org/what-is-information-delivery-specification-ids/) ). The IDS file can created with an ordinary text editor, because the format of IDS files is just xml. The information are readable for humans (and machines). But the usage of specific tools is recommended. There are some open source tools like [idsedit](https://www.idsedit.com/) or [ifctester WebApp](https://ifctester.org/). Examples for IDS file are available here: - bim2sim specific: - 'repo-root/bim2sim/plugins/PluginIFCCheck/bim2sim_ifccheck/' - ifc\_bps.ids - ifc\_hvac.ids - general: - [https://github.com/buildingSMART/IDS/tree/development/Documentation/Examples](https://github.com/buildingSMART/IDS/tree/development/Documentation/Examples) #### Correct failure found with ifc check / IDS check (with blender/bonsai) An easiest way to solve an issue in the ifc file can be to use Bonsai an extension for Blender. The process is explained below: (FigHowtoIFCTester)= ```{figure} ../img/dynamic/pluginIFCCheck/howto_use_ifctester_in_bonsai_numbers.png --- class: with-border width: 100% --- Fig.: How to check and correct errors with bonsai ``` 1. Load ifc file 2. Go to "Scene Quality and Coordination" (1) 3. Enlarge IFC Tester (2) 4. Choose "Load from Memory" (3) 5. Choose the IDS file (4) 6. Execute ifcTester (5) 7. Select failing element via pressing location button (6) 8. Correct attribute value More information about [Blender](https://www.blender.org/) / [Bonsai](https://bonsaibim.org). Some basic information about bonsai you can find in [bim2sim YouTube channel](https://www.youtube.com/@bim2sim).