Structure of an Add-On
Practically an add-on is a DLL on Windows, or a Mach-O bundle on the Macintosh. When you launch ArchiCAD, it looks for the available add-ons in this order:
- It looks for the Add-Ons folder in its own home directory (that is, where you have installed it)
- The designated add-ons folder can be changed in the Add-On Manager dialog
of ArchiCAD (Options menu / Add-On Manager...). This path is stored into the
system registry under the 'HKEY_CURRENT_USER\Software\Graphisoft\ArchiCAD
xxx\Add-On Manager' key on Windows. On Macintosh, you don't have
direct access to this information. Next time when you launch the application,
the Add-On Manager will enumerate the add-ons from this location.
Note that until you change the Designated Add-Ons folder from the Add-On Manager dialog, the 'Default Location' key is set to %DEFAULT%, which means the Add-Ons folder right next to the application. The 'Actual Path' registry entry shows the actual folder where the add-ons are loaded from.
- You can edit the list of loaded add-ons even individually in the Add-On Manager dialog. The full paths of the added, disabled and skipped add-ons are stored in the registry also.
If ArchiCAD finds an Add-Ons folder somewhere, it gathers all the appropriate files from it and from its subfolders. Subfolders on any level are skipped when the name of it begins with the a parentheses '
(' character. Add-ons can also be loaded individually in the
Add-On Manager (Options/Add-On Manager) in ArchiCAD, which also facilitates
enabling and disabling of loaded add-ons. Please note that certain add-ons
cannot be unloaded runtime; you'll have to restart ArchiCAD to disable those.
Every file must pass several tests to be considered as a valid ArchiCAD add-on. If the any of the following requirements are not fulfilled the add-on commands will be not mounted into the ArchiCAD.
In order to be able to build an add-on you must fulfill some requirements in the source files too. Also there are requirements how to set up compilation options and linking parameters.