a month ago - last edited a month ago
Hi everyone,
I’m new to Archicad add-on development and I’m trying to get a clear picture of how version compatibility actually works. I’ve read that Archicad 26 introduced major interface changes, and that add-ons built for earlier versions can’t be loaded in AC26 because of those API and UI changes.
What I don’t fully understand is the opposite direction:
If I build an add-on for AC26/27/28/29, will it run in older versions? Or do I need to maintain separate builds for each Archicad release?
More specifically:
How strict is the version-to-version compatibility in practice?
Is there any official guidance from Graphisoft on how to structure an add-on project so it can be adapted across versions with minimal pain?
Do developers usually keep multiple project files and compile separately for different AC Versions?
Are there breaking API changes I should expect every year, or only in certain releases like AC26?
I’m mainly looking for a good overview and a clear starting point on how to handle cross-version support properly.
Any suggestions, documentation links, or practical tips from experienced developers would be really appreciated.
Thanks!
a month ago
An addon .apx file will only run in a single version of Archicad.
A separate apx file must be compiled for each version of Archicad utilising the SDK for each version.
Generally speaking the source code for an addon is mostly compatible between versions but Graphisoft do regularly add, change or remove compatibility to the internal Archicad API between versions, so you would need to modify your code to suit the version it’s being compiled for. Some of these changes may completely break your addon requiring extensive re-rewrite, but on the other hand it may not require any change between versions. It all depends on the API functions you are using.
The API documentation at https://archicadapi.graphisoft.com/
provides details of these changes.
I’m not an API developer, but my understanding is that you would need to maintain separate source code and Visual Studio solution for each Archicad version.
a month ago
Adding to Scott's answer: an add-on compiled for one Archicad version will not work for any other version.
You can maintain separate code to suit each version, but maintenance can rapidly become back-breaking if you need to maintain multiple add-ons across many versions. We solve this problem by using a generic C++ object wrapper around the API that allows us to write the source just once and compile for any AC version (where each version is a different target). Within this wrapper, we differentiate between versions using compiler directives, e.g.
#ifdef ServerMainVers_2700
//Code for Archicad 27
#else
//Code for earlier versions
#endif