Archicad Python API
About automating tasks in Archicad using the Python API.
SOLVED!

Problem with Python API

Jahidur
Participant
Is there any way to build a Add-On API using python. I want to build a Add-On API using python but i didn't find any resource or any document for this task.
1 ACCEPTED SOLUTION

Accepted Solutions
Solution
Tibor Lorantfy
Graphisoft Alumni
Graphisoft Alumni
From version 24, Archicad has a new JSON Interface. It provides a way for external applications to automate ARCHICAD functions. It is a one-way communication from the external software to ARCHICAD.
The communication happens via HTTP using JSON messages.

GRAPHISOFT publishes an official Python binding for the ARCHICAD JSON Interface at the Python Package Index (PyPI). This package helps to establish the connection and hides the JSON communication layer.

When you are running a python script, the script sends JSON messages to Archicad and Archicad returns JSON responses back to the script via HTTP.

So the Python API is based on the JSON Interface. I recommend you to check the official documentation of the JSON Interface: https://archicadapi.graphisoft.com/JSONInterfaceDocumentation
The names of the Python API functions are completely the same as the JSON command names.

View solution in original post

2 REPLIES 2
Podolsky
Ace
It is not possible yet to build Add-On on Python. Python has only few commands, that can only change ID's, apply some properties and work with Layouts.

http://archicadapi.graphisoft.com/archicadPythonPackage/archicad.html

Graphisoft is promising to add more commands with upcoming versions. Currently it's unknown, will Python commands duplicate C functions and commands.
If you need to build proper Add-On - the only way is to write it on C.
Solution
Tibor Lorantfy
Graphisoft Alumni
Graphisoft Alumni
From version 24, Archicad has a new JSON Interface. It provides a way for external applications to automate ARCHICAD functions. It is a one-way communication from the external software to ARCHICAD.
The communication happens via HTTP using JSON messages.

GRAPHISOFT publishes an official Python binding for the ARCHICAD JSON Interface at the Python Package Index (PyPI). This package helps to establish the connection and hides the JSON communication layer.

When you are running a python script, the script sends JSON messages to Archicad and Archicad returns JSON responses back to the script via HTTP.

So the Python API is based on the JSON Interface. I recommend you to check the official documentation of the JSON Interface: https://archicadapi.graphisoft.com/JSONInterfaceDocumentation
The names of the Python API functions are completely the same as the JSON command names.