cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 
Archicad C++ API
About Archicad add-on development using the C++ API.

BIMmTool throws my Plugin out of the Window

Joel Buehler
Enthusiast

Hehey evryone. 

 

I have a strange problem: When on a Machine the "BIMmTool" Plugin is also installed, my Plugin won't work. 

The Debug information isn't to helpfull. it jus says that "Abnormal add-on termination ("C")" and then "Archicad.exe' (Win32): Unloaded 'C:\XXX\Add-Ons\AC2MESS\AC2MESSV04.apx" 

I cant get any further debug information since im not even getting to any functions like the initializiation etc. 

In the Add-On Manager is no Problem shown with my Plugin. 

 

Does anyone have a clue how i can find out where the problem is? 

 

Funny thing is, that the BIMmTool Add-On works just fine.. lol... 

4 REPLIES 4
scottjm
Advisor

So your adding runs correctly when BIMmTool is not installed and /or just set not to load in Archicad?

what about with a compiled release version of your apx?

also can you replicate the behaviour on a different computer?

Scott J. Moore | Fulton Trotter Architects | BIM Manager, Associate, Architect
Since AC13 | Current versions AC23.7000 & AC26.5002 | BIMCloud Basic | Python, GDL, VBA, PHP, SQL, CSS
Certified Graphisoft BIM Manger (2022)
Win 10, i9-9900K, 32GB, Quadro P2200, 500GB NVMe

Hehey Scottjm

 

"So your adding runs correctly when BIMmTool is not installed"

- Yes, deactivating BIMmTool with either deinstalling, removing the BIMmTool from the folder or doing the folder renaming trick (xxx) makes that my Plugin works again

 

"and /or just set not to load in Archicad?"

- Yes deactivation BIMmTool in the Add-On Manager makes, that my Plugin works correctly. 

 

"what about with a compiled release version of your apx?"

- All versions, debugging and releas build are affected. 

 

"also can you replicate the behaviour on a different computer?"

- thats wy i found out. i had users come to me with "the plugin stopped working" 

- all machines i know of where the BIMmTool got installed, is my plugin bricked.

 

any ideas? 😞

users are not happy at the moment and i just dont understand where the problem could be. 

Hi Joel,

 

Could you please check for any overlaps between DLLs used by your add-on and BIMmTool? (if you/they use any)

Maybe the add-ons use different versions of the same library? Or you both use the same library which is initialized from both add-ons, but it shouldn't be initialized twice?

Also, please send me any bug report ID you receive so that I can take a closer look.

 

Best, Akos

Ok i got it. stupid mistake: it was the ACAPI_RegisterModelessWindow call. 

 

- the call seems to made some problems

- removing the "paletteGuid" paramter fixed the problem.

- now both plugins work

- unfortunatly is the "referenceID" parameter still a problem. if i use as ID 32650, then the BIMn Pluings stops working. waht i like more... 😄

 

@Akos Somorjai : Thank you very much for your help!!

there was never a bug report. just straight out not working. 

 

i hope its okay that i give a few things to consinder on the graphisoft side:

 

the documentation for the modeless palettes is all over the place. as an example:

https://graphisoft.github.io/archicad-api-devkit/md__common_doxygen_files_2_articles_2_modeless___pa...

this is one of the first articels in the documentation. it shows me as a developer that i should use the "DGModelessInit" call to register my palette. 

 

BUUUUUTTTTT....

 

somewhere burried in the examples, it says in a comment that the friendship with "DGModelessInit" ended and the new best friend is "ACAPI_RegisterModelessWindow"... 

the confusion gets even more fuelled thanks to the fact, that the examples show both ways. 

 

this makes it for me as an developer hard to debugg a problem when i even have trouble to understand waht is now considered the best way to register my modeless palette.

 

furthermore im really not sure if it should be possible that two plugins with each modeless palettes should be able to interact and kick each other out. would be neat if a developer can do wahtever he wants with his modeless palettes and dont have to think if he breaks another plugin with his implementation...