July 18, 2019
by Ákos Somorjai
modified at February 21, 2020

Experimental Python Add-On for ARCHICAD23

Please find below the Python add-ons for ARCHICAD23.This is strictly an experimental (prototype, “Lab”) version, so we do not guarantee any compatibility with future versions. Enter at your own risk… Documentation and the installation instructions are included in the zip files. Here are a few examples that show the current…

June 26, 2019
by Tibor Lorántfy
modified at July 19, 2019

New API features in ARCHICAD 23

This outline summarizes the major new features and changes in the API available with ARCHICAD 23. Technical changes [Windows only] ARCHICAD 23 uses the Visual Studio 2017 toolset for building Add-On projects. Do not worry, you can use Visual Studio 2019 also for building! Make sure to set “Visual Studio…

March 29, 2019
by Gyuri Nyitrai
modified at July 19, 2019

API for BIMx mobile apps

I’m happy to announce that from now not only ARCHICAD offers API but certain functions of BIMx on mobile also accessible for development partners. BIMx API provides a bi-directional live connection between any web-enabled data management system and BIMx mobile apps both on iOS and Android platforms. We developed the…

January 16, 2019
by Tibor Lorántfy
modified at January 21, 2019

How to Create Multi-Language Add-On

Content Windows platform macOS platform Name of Add-Ons folder in different Language versions of ARCHICAD Windows platform Introduction Before ARCHICAD 22 an ARCHICAD Add-On was a single “.apx” executable file which contained both executable code and resources. That prevented to create multi-language Add-Ons, the Add-On developers have to build separate…

July 5, 2018
by Tibor Lorántfy
modified at July 19, 2019

Hello, world! Part 2: Dialog with text, SVG icon and button

Ákos Somorjai has already written a post about “Hello, world!”. It helps to create a simple text element with “Hello, API world!” content. Now, in this post, I will show you how to create a simple dialog with a “Hello World” text label on it. And this will be also…

June 12, 2018
by Tibor Lorántfy
modified at December 12, 2019

HDPI support using DG module

macOS HDPI Environment So called “Retina” display gives users ultra-sharp text and graphics without making the interface too small to see. To achive this the system renders the user interface with four times as many pixels (twice the vertical and twice the horizontal resolutions). ARCHICAD supports perfect high resolution display on…

June 12, 2018
by Tibor Lorántfy

Tools for debugging (updated)

The API depends on other modules (which are also part of the Development Kit) which support platform independent development. Many API structures and functions use the GS::UniString class from GSRoot module for Unicode strings, or the IO::Location class from the InputOutput module which represents file system independent file locations. GRAPHISOFT publishes…

June 6, 2018
by Ákos Somorjai

Working in Visual Studio 2017

ARCHICAD 21 and 22 both use the Visual Studio 2015 compiler for building add-on projects. With the appearance of Visual Studio 2017 you’ll need to do a few extra hops to be able to build your add-ons. Start the Visual Studio Installer Under Desktop Development with C++ install the VC++…

March 8, 2017
by Tamás Móréh
modified at November 27, 2017

How to use Context Menus on DG dialogs

Sometimes we need context menus on our add-on’s panels. Since the DG::PanelObserver class has the PanelContextMenuRequested event handler, it is pretty easy. In the localised grc you have a strings resource: ‘STR#’ RESID “Context Menu strings” { /* [ 1] */ “Say hello!” /* [ 2] */ “Close” } In…

February 3, 2017
by Ákos Somorjai
modified at May 19, 2017

Hello, world!

Here comes every programmer’s favourite example: “Hello, world!” – API style! GSErrCode Do_CreateHelloWord (void) { const char hwText[] = { “Hello, API world!” }; const size_t hwLen = strlen (hwText) + 1; return ACAPI_CallUndoableCommand (hwText, [&] () -> GSErrCode { API_Element element; API_ElementMemo memo; GSErrCode err = NoError; BNClear (element);…