We value your input! Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey
2017-03-27 10:39 PM - last edited on 2023-07-12 08:54 PM by Doreena Deng
2017-03-28 09:48 AM
mar_kq wrote:Hi,
Hello,
I am trying to find the materials of a room (Zone) entered by the user through the RoomTool Settings -> Settings -> Floor, Wall, Ceiling & Roof Panel:
-Floor Covering
-Ceiling Covering
-Wall Covering
-Roof Covering
I do not find them in the Memo of the Zone, also it is not part of the IFC Attributes or Properties. Where are these values stored?
Thank you for the advice.
Best, M
2017-03-28 05:59 PM
Akos wrote:Here the way I retrieve the memo.params:
They should be in the memo.params, in parameters like iFloorCovering (or stFloorCovering for the textual representation).
// GET MEMO ------------------------------------------------------------ // BNZeroMemory (&memo, sizeof (memo)); if (err == NoError && element.header.hasMemo) { err = ACAPI_Element_GetMemo (element.header.guid, &memo, APIMemoMask_AddPars); if (err != NoError) { ErrorBeep ("ACAPI_Element_Get/Memo", err); } } // GET ELEMENT PARAMETERS --------------------------------------------- // if (&memo.params != NULL || *memo.params != NULL) { GS::GSSize paramCount = BMGetHandleSize (reinterpret_cast<GSHandle> (*&memo.params)) / sizeof (API_AddParType); map<string, string> attributeMap = map<string, string>(); for (int p = 0; p < paramCount; p++) { string attrName = (*memo.params)I also tried getting the Memo without the APIMemoMask_AddPars Filter. I get in total 555 Parameters for the Zone..name; ....
2017-03-30 08:41 AM
reinterpret_cast<char*>((*memo.params)I replaced it with the following and now it works:.value.uStr);
GS::UniString ((*memo.params)Thanks.value.uStr).ToCStr();