The Global Archicad Community

Stay informed. Get help. Share your knowledge.

Discussions about using GRAPHISOFT's tools (Archicad API, BIMx API, BIMcloud API) for independent software developers

Moderators: Karl Ottenstein, LaszloNagy, ejrolon, Barry Kelly, Gordana Radonic, nbalogh, mnguyen, gkmethy, rmasaki, Viktor Kovacs, MOREH Tamas, Akos Somorjai, Ed Brown, Mihály Palenik, Tibor Lorántfy

#312970
Folks,

The Archicad 24 API devkits is available on the API site https://archicadapi.graphisoft.com.

We have also created a landing page (https://graphisoft.com/downloads/python) for those who are interested in the capabilities of the brand new Python/JSON API. Please note that this approach differs from the previous experimental version in many ways, so make sure to go through at least the introduction section :)

Beside the well-known archicadapi@graphisoft.com email address you can also contact us via the new customer support service desk, https://graphisoft.atlassian.net/servic ... r/portal/5. Please note that all email issues are routed to this portal as well, so even if you started with an email you may continue on the service desk portal.

On the personal side, I'm changing hats this year, being offered the greater responsibility of shaping the future direction of Archicad as a platform. That also means moving away from the day-to-day API support I've been doing for 22 years — anyone remembers API 1.3 in 1997 :) ? So, with some sadness I'd like to pass the steering wheel to Tibor Lorántfy and the developer support team to continue the tradition of giving the best help you can get.

Archicad API rocks!

Akos
#312985
Hello,

great to hear! I didn’t understand some things:
1. Is the cpp API still has the most abilities? Or the python api already provides ALL the features that the cpp api offers?
2. What is the difference between Json api to python api?

Thanks!
#312996
Akos Somorjai wrote: Wed Jul 08, 2020 3:08 pmOn the personal side, I'm changing hats this year, being offered the greater responsibility of shaping the future direction of Archicad as a platform. That also means moving away from the day-to-day API support I've been doing for 22 years — anyone remembers API 1.3 in 1997 :) ? So, with some sadness I'd like to pass the steering wheel to Tibor Lorántfy and the developer support team to continue the tradition of giving the best help you can get
My memory of the API - and having early training with you - go back to 1999. You've been instrumental to the development and support of the ARCHICAD API for the whole time - very sad to be losing you. But GS is gaining a steady hand for the future of ARCHICAD, and wish you all the best in that role.
#313011
Congratulations on the move up the ladder!
It makes sense that you have been offered this greater responsibility and the fact that worthy people such as yourself and Gergely get elevated in Graphisoft makes me love the company even more and gives me a lot of confidence in the future.
I hope to see you both again soon.

Cant wait to play with the new Python/JSON API! well done! again
#313023
Tomer1 wrote: Wed Jul 08, 2020 6:54 pm Hello,

great to hear! I didn’t understand some things:
1. Is the cpp API still has the most abilities? Or the python api already provides ALL the features that the cpp api offers?
2. What is the difference between Json api to python api?

Thanks!
Hopefully AKOS hasn't already left for his new position, but in the meantime - as I see it.

The C++ API is about the same with some new additions to cover the new features. The Python API is more limited now than even the experimental version, basically covering only properties and a little of the "navigator". It parallels,somewhat, the Property_Test example in the C++ API, but little else. However, it has a new format which is much easier to use and understand. Comparing it against the present Excel/properties capabilities, I don't see much advantage in using it. It has no capability to create or manipulate elements or labels/zones, at present. So basically useless.

Graphisoft has, however, mentioned that they are now working on modeling wrappers for Python and that they have the capability to update the Python API outside and independent of the annual revisions (see PyPi.org/archicad). This is true but remains to be seen. A continuous update philosophy would be welcome but I see no movement to solicit input from the users. Perhaps Python development has already taken a "left turn", that would be a shame since the work to date has been pretty good.

The Jason and Python API's are mostly the same thing. Json just allows one to package Python commands (API wrappers) in Json format (dictionaries) and forward to a running Archicad instance , thus one could use any programming language which supports Json and URL's to communicate commands to Archicad.

IOW, a good start but mostly a "marketing novelty". At this point. I'm waiting on management to define the direction and time line of Python before I commit to something with limited support and use.
#313033
Thanks, Gerry, that mostly covers it. There are two main reasons why we started the whole Python development:
- automation requests from clients
- lower the entry to the Archicad API world -- Archicad itself is complex enough, so let's try to take away the complexity of the programming language by adding Python.

The C++ API is the major interface to Archicad and will be in the foreseeable future. The Python API exposes some (bigger and bigger) part of that functionality in a modern, Python-conform way.
The first step in Archicad 24 is the property interface and layout book generation, element access is coming.

The major difference between C++ and Python/JSON is that the latter is intended to be an automation tool, where you can drive Archicad from the outside, whereas the C++ interface allows much deeper integration (menus, user input, dialog boxes, etc.).

Best Akos
#313387
It will be interesting to see if anything other than a vague answer is given.

My thoughts are that since Python has the add-on's of Tkinter and Qt5 which are much more versatile and powerful than Archicad's interface, it would be a waste of resources to try and duplicate the C++ interface?

Better to target more C++ function wrappers to expand Python's usefulness. However, I would like to see an interface (read/write) to the interactive schedules , the capability of which is badly needed.