Archicad C++ API
About Archicad add-on development using the C++ API.

about Request function

Anonymous
Not applicable
can i create a certain add-on with ApiDevKit to add a new request item?
if possible, how?

thanks.
12 REPLIES 12
Karl Ottenstein
Moderator
Wolf wrote:
can i create a certain add-on with ApiDevKit to add a new request item?
Not with the AC API Dev Kit ... but yes, it is possible with the GDL Dev Kit. Unfortunately, the last version of that kit that I saw was for 7.0 and I have not seen it made available for download since then.

The only thing available at:
http://www.graphisoft.com/support/developer/downloads/index.html#LibraryDevKit
is the new XML converter for converting libraries to XML format for mass editing (and management with source code control systems, for example) and then convert back into library parts. The GDL dev kit included the definition of the binary format of GDL objects as well as tools for writing your own REQUEST (or OPEN, INPUT, OUTPUT, CLOSE) functionality.

I will see if I can find an answer and either post the information here, or perhaps someone from GS will post the answer directly.

Karl
One of the forum moderators
AC 28 USA and earlier   •   macOS Sequoia 15.2, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
Anonymous
Not applicable
Thank you, Karl. It is the first direct answer of my questions on DevKit.

There is few reference document about development (API or GDL), why?

None of People who work for GS think plenty of Add-ons can help GS sell ArchiCAD better?
Karl Ottenstein
Moderator
Wolf wrote:
Thank you, Karl. It is the first direct answer of my questions on DevKit.
You're welcome ... you've found the right place to ask questions, at least for free, here in Graphisoft's new-this-year user-to-user developer forum. (Graphisoft offers direct technical support for developers for a fee.)
There is few reference document about development (API or GDL), why?
I can only speculate. My guess is that GS has limited manpower and budget and feels that the current SDK helpfiles and many examples are adequate. The only difference between this and what Microsoft did with Visual Studio 1.0 way back when is that MS included a tutorial book on working through the examples. (Well, they provided a bookshelf full of printed documents, actually. But online help systems weren't as smart as they are now then.) That book disappeared with later versions when the (many) commercial books on how to program with VS and MFC and the Windows SDK started pouring out.

I find the Help file (MSDN format or HTML) mostly adequate - the hyperlinks are especially helpful - but sample code in each section would definitely help. And, as noted in other threads in this forum, a "Getting Started" chapter is needed as well as sections on fine-tuning the build process for each of VS and Code Warrior.

I don't see commercial books appearing for the API as they do for mass-market products like VS. Perhaps an API Cookbook could sell, but I doubt it would recover the cost of the author's time and the publishing costs.
None of People who work for GS think plenty of Add-ons can help GS sell ArchiCAD better?
I suspect that they do believe this to some degree, since they changed their policy and have made the SDK freely available this year and have started this forum for us to discuss it. The mixed level of support within the SDK (low-level dialog mechanism and no interface to many features of AC) suggests to me that GS hasn't really decided on how much they want to encourage external development. In the meantime, there's lots that an expert programmer can accomplish with the SDK (witness the available commercial add-ons)...

Karl
One of the forum moderators
AC 28 USA and earlier   •   macOS Sequoia 15.2, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
Anonymous
Not applicable
I think the GDL API (request) function update from 7.0 to 8.1 (9.0) is a big missed opportunity. I think it would be a VERY important piece of the 3rd party solutions.

Last time we were experimenting with the request function API for an ODBC I/O prototype it was relying very heavily on non-public DLLs (there had to be a "glue" file which was ArchiCAD build dependent). I think the 7.0 REQUEST development kit was a one-time deal and as soon as the GDL subsidiary stopped being a separate revenue center, the Core development guys with a big sigh returned to the assumption that all GDL REQUEST function will be done in house (compiled with the ArchiCAD build)

At that time there was also a religious argument about the necessity of a "firewall" between the GDL and the API hooks. I think it should be over now with the great improvement in the plugin runtime (notifications, private data,..), but certainly not enough push for it from the management.

About the API documentation:
I think one should start with the compiling and reviewing of the Examples projects- (just put in your own MDID numbers and build), because it is the de-facto definition of what works, and how it can be made working.
These examples are always tested with the current archicad build, so you get the straight dope there, even if the code is not always updated to reflect the best practices possible with the latest API capabilities.
My development always start with cloning an example project, stripping down the unnecessary stuff, combining with stripped down code snippets from other examples, and so on..

The HTML/MSDN documentation is SYNTACTICALLY correct (with some exception), because that is the duty of the API maintainers to provide the raw stuff parallel to every modification they make. The rest (SEMANTHICS: annotation, example of the "best use") is dependent on the extra resources they have available at the time, or how much education the "inner circle" requires. Lot of the shrinkwrap product functionality is API based (which is a good thing for reliability standpoint)

I think it will change (mature) only slowly as long as the dev support group is handled as a "cost center" and not a "profit center", and 3rd party is not regarded as an important part of the ArchiCAD success in the marketplace.
Anonymous
Not applicable
I register API ID because I want to make some request functions.

After reading posts above, I think we can not pass any value to GDL script, can we?
Anonymous
Not applicable
If you have registered you API ID in order to create Request functions, I think you are out of luck with 8.0 and 8.1 (and I didn't see anything yet in the 9.0 beta dev kit).

Only what fits the General API runtime protocol can be done

However there might be alternative solutions, one example:
an API tool could create a library part, setting all the parameters with the response (dictionary) you want, and other objects could call that object which can then return the requested value from the dictionary.

It all depends what you really want to access in the request method.

I think studying the Notification Manager Example in the devkit might be useful.

(don't follow my English, it is my second (third) language too:)
Anonymous
Not applicable
Thank you, Ferenc.

I am studying now.
Akos Pfemeter
Graphisoft
Graphisoft
Dear Wolf et al.

To create GDL requests you need the GDL API developer kit, which was publicly available for earlier versions of ArchiCAD as indicated by Ferenc Lazar. Since over the past few years independent developers showed minimal interest in using this developer kit Graphisoft decided to stop publishing it.

At the same time it continues to exist in-house. The current policy is that if some independent developer wants to use this developer kit a development plan has to be submitted upon which Graphisoft can decide if access to use this developer kit will be granted.

Akos Pfemeter

VP Global Cross-Brand Sales, Graphisoft

Oleg
Expert
Akos wrote:
Dear Wolf et al.
To create GDL requests you need the GDL API developer kit, which was publicly available for earlier versions of ArchiCAD as indicated by Ferenc Lazar. Since over the past few years independent developers showed minimal interest in using this developer kit Graphisoft decided to stop publishing it. .
It is a pity. I am disappointed by this decision as I used this KIT as a part of a big project. Now the project depends on granting the Kit.
Akos wrote:
At the same time it continues to exist in-house. The current policy is that if some independent developer wants to use this developer kit a development plan has to be submitted upon which Graphisoft can decide if access to use this developer kit will be granted.
I will do. I start to move the project to 8.1 and I need the KIT.