This year ifcopenshell.org, and the umbrella mentoring organisation brlcad.org took part in the Google Summer of Code project (summerofcode.withgoogle.com/), where students contribute to open-source under the wings of experienced mentors. Out of many proposals contributing to IfcOpenShell, two projects were selected. One of them is the development of the IDS toolkit by Artur Tomczak with support from Thomas Krijnen, that is a response to the issue: github.com/IfcOpenShell/IfcOpenShell/issues/1349.
IDS – Information Delivery Specifications – is a standard being development for defining BIM information requirements in an easy to present way in both machine and human-readable form. With IDS you can specify what data must be included in the BIM model and validate if it is delivered. IDS is related to the Level of Information Need that can be used in project documentation (OIR, PIR, AIR, EIR, BEP, TIDP, MIDP, MPDT etc.). Finally, it is the solution for predictable and reliable data exchange workflows. Read more about IDS at technical.buildingsmart.org/projects/information-delivery-specification-ids/ and technical: github.com/buildingSMART/IDS.
During the project, we were able to complete objectives according to the plan. The toolkit now fully supports IDS authoring, allowing to define all possible requirements and restrictions. It also supports the validation of the IFC models against such IDS files. As a result of the validation, one can print all the issues in the model or save them as BCF report and view them in the 3D viewer. To get started with the toolkit have a look at the documentation: ifcopenshell.github.io/docs/python/html/ifcopenshell-python.html.
As one of the first implementations of the standard, the project contributed to the improvement of the standard, which resulted in two schema updates. The newly created XSD standard is available at: http://standards.buildingsmart.org/IDS/ids_04.xsd.
To help users create own IDS without installing the tool and for non-coding users, the web application has also been developed that works thanks to the Python toolkit. It is accessible at artomczak.pythonanywhere.com/create/. You can define your specifications with applicability filters and requirements that your BIM model must fulfil and download it as an XML file.
Project deliverables:
· Main work is available at GSoC#45-IDS-checking branch: github.com/atomczak/IfcOpenShell/tree/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell.
o The IDS toolkit is enclosed in the ids.py file (github.com/atomczak/IfcOpenShell/blob/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/ids.py).
o Test cases showing possible usage of the toolkit are in the file test_ids.py (github.com/atomczak/IfcOpenShell/blob/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/test_ids.py).
o The full list of commits: github.com/atomczak/IfcOpenShell/commits/GSoC%2345-IDS-checking.
· Test cases are supplemented with a repository of sample IDS and IFC files available at: github.com/atomczak/Sample-BIM-Files.
· The web page is hosted at: artomczak.pythonanywhere.com/.
· The web interface source code is kept in another repository: github.com/atomczak/IDS-web-app. All the current limitations of the web app are listed in the repository’s issues.
If you have any questions or comments, please join the discussion at OSArch thread (https://community.osarch.org/discussion/647/).