2021-06-06 02:52 AM - last edited on 2021-09-14 09:35 AM by Noemi Balogh
static GS::ErrCode Do_CreateNCS(API_Coord c) { keyParams keys; GS::UniString name("NCS Indicator 24"); API_LibPart libPart; API_Element element; API_ElementMemo memo; API_AddParType **addPars = nullptr; API_Guid nn; double a, b; Int32 addParNum; GS::ErrCode err; BNZeroMemory(&libPart, sizeof(API_LibPart)); BNZeroMemory(&element, sizeof(API_Element)); BNZeroMemory(&memo, sizeof(API_ElementMemo)); GS::ucscpy(libPart.docu_UName, name.ToUStr()); // "DB8C3EE - 4019 - 46C8 - 91D0 - 7A8DE0A5EC6D" - NCS guid err = ACAPI_LibPart_Search(&libPart, false); if (err == NoError) { ACAPI_WriteReport(" Lib Part index %d", true,libPart.index); } else { ACAPI_WriteReport(" Did Not Find Lib Part", true); return err; } if (libPart.location != nullptr) delete libPart.location; element.label.labelClass = APILblClass_Symbol; element.label.parent = APINULLGuid; API_Coord xx; xx.x = 0; xx.y = 0; element.label.begC = xx; element.label.midC.x = xx.x + 1.0; element.label.midC.y = xx.y + 0.5; element.label.endC.x = xx.x + 3.0; element.label.endC.y = xx.y + 0.5; GS::Guid buf("BDB8C3EE - 4019 - 46C8 - 91D0 - 7A8DE0A5EC6D");// NCS Indicator Guid element.label.u.head.guid = GSGuid2APIGuid(buf); element.header.typeID = API_LabelID; //ElementTypeID element.header.variationID = APIVarId_LabelSymb; element.label.parent = APINULLGuid; element.label.u.symbol.libInd= libPart.index; //library part index; element.header.hasMemo = true; err = ACAPI_Element_GetDefaults(&element, &memo); if (err == NOERROR) { GS::Guid gs(APIGuid2GSGuid(element.label.u.head.guid)); char hold[254] = {}; gs.ConvertToString(hold); ACAPI_WriteReport("Label GUID %s ", true, hold); // label guid -- should be the same as NCS Indicator Guid but is reset to 0 by GetDefault? } API_StoryInfo storyInfo; BNZeroMemory(&storyInfo, sizeof(API_StoryInfo)); err = ACAPI_Environment(APIEnv_GetStorySettingsID, &storyInfo, nullptr); //element.object.libInd = libPart.index; //library part index; element.header.floorInd = storyInfo.actStory; element.object.level = 0; //height from the floor element.object.pos.x = c.x + .25; //End of Arrow element.object.pos.y = c.y; element.object.angle = 1; //element angle BMKillHandle((GSHandle *)&storyInfo.data); //err = ACAPI_LibPart_GetParams(libPart.index, &a, &b, &addParNum, &addPars); UInt32 totalParams = BMGetHandleSize((GSConstHandle)addPars) / (UInt32)sizeof(API_AddParType); // totalParams redundant but retain for future use //memo.params = addPars; err = ACAPI_CallUndoableCommand("NCS Test API Function", [&]() -> GSErrCode { err = ACAPI_Element_Create(&element, &memo); return err; }); if (err) ACAPI_WriteReport("Create Error %s ", true, ErrID_To_Name(err)); return NOERROR; }Thanks for any help -- I hope this isn't a bug??