Opens the Object/Lamp(/Window/Door) Settings dialog.
GSErrCode ACAPI_Interface (
APIIo_ObjectSettingsID,
API_ObjectSettingsPars* objectSettingsPars
);
Parameters
- objectSettingsPars
- [in/out] The parameters to open the dialog with. Also contains the selected object on return.
Return Values
NoError- The function has completed with success.
APIERR_BADPARSobjectSettingsParsisnullptr.APIERR_BADIDobjectSettingsParscontains invalid data.
For other common API errors see the API Errors document.
Remarks
The Settings dialog may show only library parts with a given subtype. The default library part’s library index can also be passed onto this function.
It returns the parameters set in the Settings dialog, and also the additional parameters of the selected library part.
If subtypeID is an empty string, then the passed typeID and variationID will be used to identify the tool whose subtype will serve as a filter.
If libIndex is 0 (i.e. you haven’t used ACAPI_LibPart_Search to find an appropriate library item), then the function tried to find the first item in the loaded libraries, whose subtype matches the passed subTypeID (or typeID and variationID).
The linked properties information specified on the Listing and Labeling page returns in the propIndivLibInd and propCriteria fields. These properties should be linked to the element you would create after calling the Object Settings dialog (see ACAPI_Element_SetLinkedPropertyObjects).
Example
GSErrCode SelectObject (void) { GSErrCode err = NoError; API_ObjectSettingsPars api_objSetPars; BNZeroMemory (&api_objSetPars, sizeof (API_ObjectSettingsPars)); api_objSetPars.elemDef.object.head.type = API_ObjectID; // this tells the API which dialog it should bring up CHCopyC ("{D65FA25D-A6D4-48A4-BD9B-2DFE16D58297}-{0D053320-4961-4B12-A2C3-BEA101B0E56F}", api_objSetPars.subtypeID); // GUID of Gas Supply Terminal subtype // the appropriate subtype should be copied here; it'll be used for filtering err = ACAPI_Interface (APIIo_ObjectSettingsID, &api_objSetPars, nullptr); if (err == NoError) { char msgStr[256]; sprintf (msgStr, "Object #%d was selected!", api_objSetPars.elemDef.object.libInd); ACAPI_WriteReport (msgStr, true); // Create an object element: { API_Element element; API_ElementMemo memo; BNZeroMemory (&element, sizeof (API_Element)); BNZeroMemory (&memo, sizeof (API_ElementMemo)); element.object = api_objSetPars.elemDef.object; element.object.pos.x = ...x...; element.object.pos.y = ...y...; element.header.floorInd = ...story...; memo.params = api_objSetPars.addPars; err = ACAPI_CallUndoableCommand ("...", [&] () -> GSErrCode { GSErrCode err1 = ACAPI_Element_Create (&element, &memo); if (err1 == NoError) err1 = ACAPI_Element_SetLinkedPropertyObjects (&element.header, api_objSetPars.propCriteria, api_objSetPars.propIndivLibInd); return err1; }); } } if (api_objSetPars.addPars != nullptr) ACAPI_DisposeAddParHdl (&api_objSetPars.addPars); // do not forget to dispose the handle return err; }
Requirements
- Version: API 4.1 or later
- Header: APIdefs_Interface.h