2021-09-29 08:45 AM
Hello all
It's a long time i didn't work on Archicad API. It's fun to be back here 😉
I have a problem when i try to update the parameter section of a library part.
To illustrate this i have made a simplified code i put below the message.
Everything is OK until the ACAPI_LibPart_UpdateSection call at the end.
This call returns this error : APIERR_BADPARS : -2130313112 : The passed parameters are inconsistent.
In my real code i add & modify parameters. In this sample, to eliminate my errors during these operations, i don't modify the parameters at all wich gives the same problem.
Does someone had something like this ?
Thanks,
Georges
// Experimental function for addPar updates
void BACDownload::TestParameterUpdates(API_LibPart& libPart)
{
// Get the library part
GSErrCode err = ACAPI_LibPart_Get(&libPart);
if (err == NoError)
{
if (libPart.location != NULL)
{
delete libPart.location;
libPart.location = NULL;
}
}
// Define a parameter section
API_LibPartSection section;
BNZeroMemory(§ion, sizeof(API_LibPartSection));
section.sectType = API_SectParamDef;
// Get parameter section
GSHandle sectionHdl = NULL;
err = ACAPI_LibPart_GetSection(libPart.index, §ion, §ionHdl, NULL);
if (err) return;
// Get current parameters
double a, b;
Int32 addParNum, i;
API_AddParType** addPars;
err = ACAPI_LibPart_GetParams(libPart.index, &a, &b, &addParNum, &addPars);
if (err) return;
// ..
// Do nothing with the parameters
// ..
// Build a section handle with all parameters
GSHandle Sect2DDrawHdl = NULL;
err = ACAPI_LibPart_GetSect_ParamDef(&libPart, addPars, &a, &b, Sect2DDrawHdl, §ionHdl);
// Update our section
err = ACAPI_LibPart_UpdateSection(libPart.index, §ion, sectionHdl, NULL);
// NOTE : Here above i get and error : APIERR_BADPARS : -2130313112 : The passed parameters are inconsistent.
BMKillHandle(§ionHdl);
ACAPI_DisposeAddParHdl(&addPars);
}