2005-10-12
08:51 PM
- last edited on
2023-08-07
11:33 AM
by
Doreena Deng
2005-10-13 03:18 AM
2005-10-14 07:05 PM
2005-10-19 03:23 AM
2005-10-20 02:18 PM
API_ParamOwnerType paramOwner;
API_ChangeParamType chgParam;
API_GetParamsType getParams;
API_Element element, mask;
API_ElementMemo memo;
GSErrCode err, err2;
BNZeroMemory (¶mOwner, sizeof (API_ParamOwnerType));
paramOwner.libInd = 0; // no library part
paramOwner.typeID = API_WindowID; // window element
paramOwner.index = 0; // element default
BNZeroMemory (&getParams, sizeof (APIAny_GetActParametersID));
err = ACAPI_Goodies (APIAny_OpenParametersID, ¶mOwner, NULL);
if (!err) {
BNZeroMemory (&chgParam, sizeof (API_ChangeParamType));
err = ACAPI_Goodies (APIAny_GetActParametersID, &getParams, NULL);
if (!err) {
chgParam.index = 0;
// junk parameter for testing
CHCopyC ("A", chgParam.name);
chgParam.realValue = 2.1;
// what I actually want to change
//CHCopyC ("gs_detlevel_3D", chgParam.name);
// chgParam.strValue = "Off";
err2 = ACAPI_Goodies (APIAny_ChangeAParameterID, &chgParam, NULL);
if (!err2){
err = ACAPI_Goodies (APIAny_GetActParametersID, &getParams, NULL);
if (!err){
WriteReport_Err("APIAny_GetActParametersID successful: ", err);
}else{
WriteReport_Err("APIAny_GetActParametersID error: ", err);
}
WriteReport_Err("ACAPI_Goodies (APIAny_ChangeAParameterID) successful: ", err2);
}else{
WriteReport_Err("ACAPI_Goodies (APIAny_ChangeAParameterID) error: ", err2);
}
}else {
WriteReport_Err("ACAPI_Goodies (APIAny_OpenParametersID) error: ", err);
}
ACAPI_Goodies (APIAny_CloseParametersID, NULL, NULL);
WriteReport_Err("APIAny_OpenParametersID successful: ", err);
}else {
WriteReport_Err("APIAny_OpenParametersID error: ", err);
}
if (!err) { // If typeID = Window
BNZeroMemory (&element, sizeof (API_Element));
BNZeroMemory (&memo, sizeof (API_ElementMemo));
element.header.typeID = API_WindowID;
element.window.width = 1.2;
element.window.height = 2.1;
ACAPI_ELEMENT_MASK_CLEAR (mask);
ACAPI_ELEMENT_MASK_SET (mask, API_WindowType, width);
ACAPI_ELEMENT_MASK_SET (mask, API_WindowType, height);
memo.params = getParams.params;
err2 = ACAPI_Element_ChangeParameters (elemHead, elemCount, &element, &memo, &mask);
if (!err2){
WriteReport_Err("ACAPI_Element_ChangeParameters successful: ", err2);
}else{
WriteReport_Err("ACAPI_Element_ChangeParameters error: ", err2);
}
WriteReport_Err("ACAPI_Goodies (APIAny_ChangeAParameterID) successful: ", err);
}else{
WriteReport_Err("ACAPI_Goodies (APIAny_ChangeAParameterID) error:: ", err);
}
Is there anything you (or anyone else) see that is wrong?2005-10-20 02:20 PM
Demo layer is on Existing layer is on Window #14 Selected element is a Window Element is set to existing APIAny_GetActParametersID successful: : 0 ACAPI_Goodies (APIAny_ChangeAParameterID) successful: : 0 APIAny_OpenParametersID successful: : 0 ACAPI_Element_ChangeParameters successful: : 0 ACAPI_Goodies (APIAny_ChangeAParameterID) successful: : 0
2005-10-21 05:02 AM
2005-10-27 07:17 PM
TomWaltz wrote:Can you clarify what you are trying to do here? Your opening question suggests you are trying to modify a selected element, but this code would modify the default settings for placing a new Window element (you only specify the typeID and not the index of a specific element. Is that what you want? Take a look at the API documentation on the type API_ParamOwnerType for more information on this.
I was experimenting with two different ideas: changing the "A" value of the object and changing the "width" and "height" of the window. Neither approach seemed to work.API_ParamOwnerType paramOwner; BNZeroMemory (¶mOwner, sizeof (API_ParamOwnerType)); paramOwner.libInd = 0; // no library part paramOwner.typeID = API_WindowID; // window element paramOwner.index = 0; // element default
TomWaltz wrote:There is a type mismatch here - getParams is the type API_GetParamsType, but you zero it using the size of APIAny_GetActParametersID. You could also write:API_GetParamsType getParams; BNZeroMemory (&getParams, sizeof(APIAny_GetActParametersID));
BNZeroMemory (&getParams, sizeof(getParams));
2005-10-27 07:22 PM
Can you clarify what you are trying to do here?Ralph,
2005-10-27 07:38 PM
TomWaltz wrote:In that case, you need to specify the index for each selected window to be changed:
my intention is to change one of the parameters of the selected door or window.
paramOwner.index = <index of a selected window>;