As a way to thank the growing community of Open Source users and developers in the AEC domain, I have started to collect some of my personal learning journey into a Github repository. I am focusing on sharing a few smaller scripts using Python and IfcOpenShell libraries. Right now, I started with very simple but complete examples that are useful when you first start using these libraries. The kind of examples I lacked when I started my own journey.
- Console examples are very simple and have no dependencies but the IfcOpenShell library.
- GUI examples use Qt5 libraries (PyQt5 but PySide2 would not require any significant changes).
For each example, I also added a separate page in the Wiki with my explanation of how things work.
I have some more advanced working examples that I intend to share as well: a more complete display of the whole IFC structure (following all attributes recursively, although not endlessly), some basic editing of strings and other single values and adding a 3D view using Qt3d.
P.S. Coming from C++ and C# in Unity, I'm not entirely sure if my coding style is "pythonic" enough, but I think the code is fairly straightforward, compact and hopefully clear. The wiki is the type of textual explanation of code that I always hope to find when I look for examples (but too often people claim that the "code is the docs"). If you think you have ways to improve it, I guess I'll have to start learning how to deal with pull requests (which I haven't completely figured out yet).