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

KeyNote Demonstration in Archicad 25

poco2013
Mentor
I made up a video which demonstrates a keynote application in Archicad 25 using Python an the new Add-On Command Handler.

My idea is to demo what might be possible and what a keynote application features should have. IOW-- What do you like about this demo and what do you dislike. What do you absolutely have to have and what don't you care about.

This is your chance to give some input to Graphisoft which everyone complains about not having the opportunity.

The application and source code is on GitHub if your inclined to explore. i believe that anyone familiar with Archicad and the API could work out the files. If not, leave a comment and i try to help.

The GitHub link is:

https://github.com/poco2018?tab=repositories

Made a video which demos the features and will make more detailed videos if anyone is interested??

https://www.youtube.com/watch?v=9xeA2hNqjQs

Made
Gerry

Windows 11 - Visual Studio 2022; ArchiCAD 27
6 REPLIES 6
Barry Kelly
Moderator
Gerry,
I edited your post title to Archicad 25.
We don't want people getting excited about 26 yet - that is still a year away.

Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Anonymous
Not applicable
Hi Gerry,
Thanks for the initiative. Yes. A proper Keynote tool is essential.
Central Innovation (former Cadimage) has a very good (or even a perfect) solution.
But I also recall a wish posted by Tomek Piatek regarding this matter. The wish is: Add Ability to Access Classification Description in Parameters (And Get a Free Keynoting Solution) Lots of great inputs there.
Your approach seems to start it from scratch with Phython, but I am more in favor to use the current Classification System as the foundation for a Keynote tool.
Podolsky
Ace
Personally I'm not checking Central Innovation product, as for me their down under innovations somehow not interesting. So excuse me, if I would describe here some ideas, that might be already implemented by CI.
What I do like in this keynote tool, that you are placing an object, that you can later schedule and get actual keynotes list on your drawing.
What I don't like - it's external interface. I had experience with some piece in software, written on Visual Basic, that was part of standard workflow in one not really good architectural company. The person, who is corporative BIM manager there, paid extra attention to his crashy baby but ignoring many terrible situations in the company workflow, by explaining that it's ArchiCAD bad program (not that he is not capable to manage the company better way).
Anyway. Sometimes people just prefer pub instead of finding better ways in life.

What this keynote is missing is ability to extract information from BIM model. It has it's own database of classifications etc. But actually, if I understand it correct, I can use wrong keynote to any element on my drawing.

By another hand - label has this perfect ability to read object's variables and element's properties. I even can pass to the label - is it load-bearing element, what renovation filter etc. This is already half work for keynote - to get automatically initial information and then just match needed description. But then there is a problem - how to get a list of keynotes? Maybe looking to this area - how to schedule labels, can be the right direction of making better keynote tool.

Currently it's possible to have a button in label UI 'send to database' - when label will send info about it presence in the drawings to some primitive database like txt or xml. Then another object would get this information and populate the right keynotes list, that can placed on layout. This is the only method available on GDL. Maybe part of it can be simplified with C++.

By the way - font name is 'Arial'. With 'a'.
poco2013
Mentor
The purpose of my post was to solicit suggestions on what should define a good keynote application -- so thank you for your response.

I did consider many of you concerns before hand but found most problematic for the following:

IMNOHO - keynotes are primarily instructions to the builder in a concise form. They are widely diverse from firm to firm and project to project. My primary concern was the ability to maintain the database and to quickly revise, find and apply them according to office standards Your inference that the automatic attachment of a note to a element based on its type can lead to substantial problems and misinterpretations. Labels are perfect for display of element attributes but a better solution is to just use the schedules. Other than a few properties attached by Graphisoft, you can not attach custom properties to a label since labels can not be classified, Even at that, a typical keynote requires much more information than just element attribute(s), Trying to put long statements into a property would be a nightmare to maintain as standards are constantly changing with regulations.

That's why I chose a Json file to organize and segregate the notes in a manner which would be easily understood and under the control of a BIM manager. Every firm could easily define their own display format (style). My intent was to be able to quickly organize, find the appropriate note and apply it with the style of the current office standards. Also a Json file allows the BIM manager to apply Regex expressions to select the applicable note. I did not demo this but it is easily applied.

It is possible within the API to pick up the element parameters and apply them to a note. But that is beyond my Demo at this time. My intent was to show the ease of using a json file, Python and the AddOn Command Handler to handle the placement details.

I agree that it is unfortunate that Python files for this application must be run outside of Archicad, but perhaps that might be solved in the future. In the mean time, the bat file works just fine

IOW, I think we are talking Apples and Oranges..
Gerry

Windows 11 - Visual Studio 2022; ArchiCAD 27
Anonymous
Not applicable
Thank you for raising this very important issue.

poco2013 wrote:
Even at that, a typical keynote requires much more information than just element attribute(s), Trying to put long statements into a property would be a nightmare to maintain as standards are constantly changing with regulations.
Sure it is. But why not using the Classification Manager to store this information? A simple automatic ID system with parent/child key within branches could easy the process. Then a simple favorite label with the element classification, plus a dedicated MVO to show/hide ID/Name/ShortDescription/LongDescription. Finally schedule all assigned classifications an edit the ShortDescription/LongDescription according to the specified product.
Does this makes sense?
Podolsky
Ace
poco2013 wrote:
The purpose of my post was to solicit suggestions on what should define a good keynote application -- so thank you for your response.

I did consider many of you concerns before hand but found most problematic for the following:

IMNOHO - keynotes are primarily instructions to the builder in a concise form. They are widely diverse from firm to firm and project to project. My primary concern was the ability to maintain the database and to quickly revise, find and apply them according to office standards Your inference that the automatic attachment of a note to a element based on its type can lead to substantial problems and misinterpretations. Labels are perfect for display of element attributes but a better solution is to just use the schedules. Other than a few properties attached by Graphisoft, you can not attach custom properties to a label since labels can not be classified, Even at that, a typical keynote requires much more information than just element attribute(s), Trying to put long statements into a property would be a nightmare to maintain as standards are constantly changing with regulations.

That's why I chose a Json file to organize and segregate the notes in a manner which would be easily understood and under the control of a BIM manager. Every firm could easily define their own display format (style). My intent was to be able to quickly organize, find the appropriate note and apply it with the style of the current office standards. Also a Json file allows the BIM manager to apply Regex expressions to select the applicable note. I did not demo this but it is easily applied.

It is possible within the API to pick up the element parameters and apply them to a note. But that is beyond my Demo at this time. My intent was to show the ease of using a json file, Python and the AddOn Command Handler to handle the placement details.

I agree that it is unfortunate that Python files for this application must be run outside of Archicad, but perhaps that might be solved in the future. In the mean time, the bat file works just fine

IOW, I think we are talking Apples and Oranges..
I might disagree that we are talking Apples and Oranges. All what I'm trying to say - keynote can be more integrated into ArchiCAD using same Python, Json and C++.
When I mention label tool as proper tool to use for keynote - I mean by that, that part of information is coming from element classification and property, and part from external database. And then they match each other. So this way you actually cannot use keynote for reinforced concrete pointing furniture, just because you missed the keynote number and chose 21 instead of 12 after not sleeping at night.
Let say I'm pointing element on my drawing that is part of foundation. Label detects it's classification and structural load - then in label interface (that can be very pretty - GDL interfaces are simple to do and they have a lot of possibilities) you can choose keynotes related only to foundation and structural concrete.
This way you are preventing human error and adding more intelligence into your objects - and this is what computers intent to do - think for us, when we had too much coffees, problems with wife and conflicts in the office - and start producing some non-senses in our drawings. I've seen so many absolutely ridiculous errors in CAD drawings, especially with annotation - because for annotation is always not enough time, that now, if I plan to do any library part with annotation involved I always think how to minimise the risk of human error and include as much automatic features as possible.

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!