We value your input! Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey
2018-03-05 04:40 AM - last edited on 2023-07-12 05:48 PM by Doreena Deng
IO::Location fileLoc("C:\\Users\\W.C.SHIM\\Downloads\\test.gsm"); API_LibPart libPart; BNZeroMemory(&libPart, sizeof(API_LibPart)); libPart.typeID = APILib_ObjectID; libPart.location = &fileLoc; ACAPI_LibPart_Register(&libPart);but it doesnt work :'(
2018-03-05 12:57 PM
2018-03-06 01:43 AM
2018-03-06 09:35 AM
Twily wrote:
oooo... my mistake :'( i want load a .gsm file. not use part of the loaded library
(just open and use gsm file programmatically)
i tried ACAPI_LibPart_Create and ACAPI_LibPart_Register. but libpart.index is always 0.
2018-03-06 10:07 AM
Ralph wrote:
ACAPI_LibPart_Registereffectively includes the gsm in the loaded library – you can't work with it otherwise. The value of libpart.indexis the object's index in the loaded library.
Do you get an error code returned fromACAPI_LibPart_Register?
IO::Location fileLoc("C:\\Users\\W.C.SHIM\\Downloads\\test.gsm"); API_LibPart libPart; GSErrCode err = NoError; BNZeroMemory(&libPart, sizeof(API_LibPart)); libPart.typeID = APILib_ObjectID; libPart.location = &fileLoc; err = ACAPI_LibPart_Register(&libPart); if (err != NoError) { char msgStr[256]; sprintf(msgStr, "Register Error : %d", (int)err); ACAPI_WriteReport(msgStr, true); } err = ACAPI_LibPart_Create(&libPart); if (err != NoError) { char msgStr[256]; sprintf(msgStr, "Create Error : %d", (int)err); ACAPI_WriteReport(msgStr, true); }result is
2018-03-07 10:38 AM
Twily wrote:That error is
result is
Register Error : -2130313214
Create Error : -2130312314
I tried to find the error code but i can't find :'(
2018-03-07 11:07 AM
Ralph wrote:yes, i'm testing to menu item click.Twily wrote:That error is
result is
Register Error : -2130313214
Create Error : -2130312314
I tried to find the error code but i can't find :'(APIERR_MEMFULL(Insufficient memory), which is odd. In what context are you trying to register the library part, e.g. in response to a menu item click?
2018-03-08 02:44 PM
Twily wrote:That code should work in the right context – it looks practically identical to the documentation example. Perhaps try building one of the example projects – LibPart_Test – that uses this function. See if it works in that context and work back from there.
yes, i'm testing to menu item click.
But later i will use immediately after open archicad.
I want this method (in automatically) :
after open archicad (load addon) ->
load gsm file ->
get thumbnail and parameters ->
close gsm file.