ArchiCAD has its own API to enable the usage of external modules (so called plugins or Add-Ons). Through this API, an AddOn Developer like me has the ability to connect to ArchiCAD with a wide range of functions and interfaces: internal database management, geometry calculations (2D/3D), GUI, export/import features (XML, json), content development with GDL, etc. I have 15 years of experience on this field, know various ArchiCAD versions (from 7 to 20). I use Visual Studio for development on Windows and XCode for Macintosh.