Stack Overflow’s annual survey showed that Python is the fourth most popular technology used by developers. Many developers who are not using Python say that they would like to learn it, making it the most wanted technology for professional development.
As Python is a well-established programming language used by many people to create all kinds of applications and automation tools. Although xbim Toolkit is essentially a .NET project, there are options to make use of its power with Python. A way to utilize Toolkit with Python is with the IronPython Project. For those not aware of the IronPython project, it is an independent implementation of the Python script interpreter that is fully implemented as a .NET project. With IronPython you can then use any .NET library in there, including the Toolkit. It can also be used as part of any .NET project to provide Python scripting capabilities. The command line app found here is a basic example of the integration.
An alternative option is to have model processing offloaded in a local or cloud application and use Python to drive the application. While this is not hard to do, implementing a full-blown web service which is scalable enough for BIM models of various sizes is a challenge. You can create your own with the Toolkit, or you can use the Flex platform to make use of the data already processed in the form ready for querying and data extraction. There is already a Python library to access data in Flex, that can be found here.
We are currently also exploring the third option where we would like to open our Flex Flow engine (part of our Flex platform) to Python, that would let developers run their scripts in the scalable platform environment while having access to all details and corners of the IFC model. If you have a nice use-case for this, we would be excited to hear more.