Archicad API in .NET???

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2017-04-17
12:07 AM
- last edited on
‎2023-07-12
08:44 PM
by
Doreena Deng
Would it make sense to wrap ArchiCAD C++ library to other languages?
Cheers
aitor
- Labels:
-
Add-On (C++)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-16 11:07 AM
https://github.com/iotong/PauperTools
Haven't been able to test and a bit unclear how it works and what it is currently capable of, but I find it interesting. I don't have the knowledge how wrapping the ARCHICAD C++ SDK into Python would work, but apparently, it seems feasible. I does seem to open up a whole world of possibilities for other CAD, 3D and BIM software... Vectorworks, Revit (Dynamo), Rhino, Maya, ...
Archicad28/Revit2024/Rhino8/Solibri/Zoom
MBP2023:14"M2MAX/Sequoia+Win11
Archicad-user since 1998
my Archicad Book

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-16 11:51 AM
ARCHICAD is behind in this area.
Seems to me that although Python is more complex than GDL, it is very capable, yet much simpler than C++, so it offers a way for people to add functionality to their BIM application.
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-16 12:34 PM
LaszloNagy wrote:
Yes, the interesting thing is that Revit, Rhino, Vectorworks and Allplan all have Python support.
ARCHICAD is behind in this area.
It's not a big secret that GRAPHISOFT is already working on an official Python API.
I'm curious about your opinion, for what would you use the Python API if it would be as powerful as the C++ API?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-16 02:58 PM
C++ for me is a much more complex of a programming environment to learn.
My understanding is that it is much easier to learn Python than C++.
I would probably use it to add functions to ARCHICAD that do not exist yet.
For example, there was a thread where someone asked if it is possible to find out how many groups there are in the project. That would probably be a simple case of writing a Python script to achieve that.
Or, another recent question was: how to find missing library part instances. I imagine one could write a simple Python script that could find and give info about these missing library part instances not only in Floor Plan Viewpoints, but in any Viewpoint.
Or, another one: create a Python script to give a list and info about all the SEOs in the Project.
Or, there could be a Python script that would highlight or change the Pen of all Dimension Texts that were modified from their measured value. There are just so many cases to mention.
In general I think an API should give access to the whole project database (all Viewpoints, Project Map, Layouts, Publisher Sets, etc.) and enable you to do anything you can do using your mouse and keyboard. It would open the door to automating a lot of tasks and creating a lot of functionality that is not available (mostly because of development priorities by GS).
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-16 09:22 PM
Windows 11 - Visual Studio 2022; ArchiCAD 27

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-18 02:56 AM
Access to model data on big files, without the need to graphically display then.
Programatically manage attributes.
Programatically rename hundred of layouts, views, etc...
Create custom forms to feet on office idiosyncratic workflows.
Programatically manage Graphic Overrides.
programatically import dwg plans to layouts, properly naming the layouts.
Connect to SQL database to I\O data for whatever reason.
Connect to external applications using Rest Api to optimize workflows and interoperability.
Create GDL objects using python syntax (well, one can dream), OOP and hopefully with a +modern IDE with code autocompletion and syntax highlighting.
Empower GDL objects with external modules, in particular with 3d geometry processing libraries.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-18 02:57 AM
It's not a big secret that GRAPHISOFT is already working on an official Python API.really, it wasn't??? c'mon...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-30 10:01 AM
Tibor wrote:
It's not a big secret that GRAPHISOFT is already working on an official Python API.
That's good to know. Are there any details of this development and timeline?
I was wondering recently is it so hard to make C# running in C++ code. All of the languages C#, C++ and Python are .Net languages so there are technically capable of working together. As far as I know, there are some techniques, for example, C++/CLI to do this kind of stuff.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-30 10:28 AM
kzaremba wrote:Only if you're working in a .NET environment. C++/CLI should really be thought of as a different language – it's a Microsoft spec that isn't compatible with C++. We've used it as a 'glue' to implement software originally written as standard C++ in .NET environments, but you can't do it the other way around. It's part of the standard MS 'embrace, extend, extinguish' approach to software.
I was wondering recently is it so hard to make C# running in C++ code. All of the languages C#, C++ and Python are .Net languages so there are technically capable of working together. As far as I know, there are some techniques, for example, C++/CLI to do this kind of stuff.
Central Innovation

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2018-08-30 12:30 PM
As Ralph said, these are only true in a .NET environment. Otherwise, neither Python nor C++ are .NET languages, although .NET implementations of them exist (C++/CLI and IronPython). ARCHICAD is not built in a .NET environment, as it would highly impact its performance, which would be a great cost.
Since Python is implemented in C, it isn't difficult to use and extend it in C/C++ programs. Their documentation* even has a whole section about such process.
Best regards,
Dénes
P.S.: I'm eager to hear more about what users would like to do in a Python API, I've already wrote down what I could find in this forum so far.

*