<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to read/edit/change/copy neig for drawings or the equivalent sub-elements identified by neig in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-read-edit-change-copy-neig-for-drawings-or-the-equivalent/m-p/676371#M10547</link>
    <description>&lt;P&gt;Hi, I'd suggest you to modify two places of your code for dealing with drawing local placement issue:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;err = ACAPI_Element_GetMemo(oldGuid, &amp;amp;memo, APIMemoMask_Polygon); // only need polygon info.&lt;/LI-CODE&gt;
&lt;P&gt;After created a new drawing element, force to change pos:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;API_Element mask;

ACAPI_ELEMENT_MASK_CLEAR(mask);

ACAPI_ELEMENT_MASK_SET(mask, API_DrawingType, pos);
newElement.drawing.pos	= element.drawing.pos;

err = ACAPI_Element_Change (&amp;amp;newElement, &amp;amp;mask, nullptr, 0, true);&lt;/LI-CODE&gt;
&lt;P&gt;Also, you can change newElement.drawing.name parameter for drawing title.&lt;/P&gt;
&lt;P&gt;(Sorry I didn't check AC25, it should work on latest version)&lt;/P&gt;
&lt;P&gt;HTH.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 10 Sep 2025 05:33:57 GMT</pubDate>
    <dc:creator>Hiromichi Shinkawa</dc:creator>
    <dc:date>2025-09-10T05:33:57Z</dc:date>
    <item>
      <title>How to read/edit/change/copy neig for drawings or the equivalent sub-elements identified by neig?</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-read-edit-change-copy-neig-for-drawings-or-the-equivalent/m-p/674855#M10535</link>
      <description>&lt;P&gt;Working in Archicad 25&lt;/P&gt;
&lt;P&gt;I am creating new drawings on a layout based on an old drawing on a layout, but with a different navigator item.&lt;/P&gt;
&lt;P&gt;(in the example i just linked it to a different view map item of the same detail to see what isn't/is copied)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;newElement.header.typeID = API_DrawingID;
newElement = oldElement;
newElement.drawing.drawingGuid = newNavItem.guid;

API_ElementMemo memo;
BNZeroMemory(&amp;amp;memo, sizeof(API_ElementMemo));
err = ACAPI_Element_GetMemo(oldGuid, &amp;amp;memo, APIMemoMask_DrawingData);
err = ACAPI_Element_Create(&amp;amp;newElement, &amp;amp;memo);
ACAPI_DisposeElemMemoHdls(&amp;amp;memo);&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;the neig items/equivalent sub-element of the new drawing are different from the old drawing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AllanP_0-1756338824039.png" style="width: 999px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/91325i5E92A21DA229324D/image-size/large?v=v2&amp;amp;px=999" role="button" title="AllanP_0-1756338824039.png" alt="AllanP_0-1756338824039.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(P.S. the neig&amp;nbsp; definition images are missing from the online documentation for Archicad 28, so no-one can tell what they refer to unless you have old copies of the developer documentation)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AllanP_4-1756339216193.png" style="width: 999px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/91329iAAB5BFDC0A6F89E7/image-size/large?v=v2&amp;amp;px=999" role="button" title="AllanP_4-1756339216193.png" alt="AllanP_4-1756339216193.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AllanP_3-1756339190021.png" style="width: 999px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/91328i0B959670031BDEBB/image-size/large?v=v2&amp;amp;px=999" role="button" title="AllanP_3-1756339190021.png" alt="AllanP_3-1756339190021.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Missing images&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AllanP_1-1756338958165.png" style="width: 999px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/91326i8397527C33B3F9F6/image-size/large?v=v2&amp;amp;px=999" role="button" title="AllanP_1-1756338958165.png" alt="AllanP_1-1756338958165.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How do i copy Nieg settings or&amp;nbsp;equivalent sub-element from one drawing and apply them to another drawing&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The ElementHead_To_Neig only sets the NeigID to APINeig_DrawingCenter&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AllanP_2-1756339041765.png" style="width: 999px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/91327i1A8BCB025210C054/image-size/large?v=v2&amp;amp;px=999" role="button" title="AllanP_2-1756339041765.png" alt="AllanP_2-1756339041765.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How do i access/change/update&amp;nbsp; the APINeig_DrawingTitle[3] field or the equivalent sub-element setting for the position of the drawing title?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The only example i have been able to find that even mentions the neig, but doesn't try to change any of the sub-element related to the neig equivalent sub-element.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is this just not possible to move the drawing title, or even get the drawing title location from another drawing?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;/*----------------------------------------------------------**
** Insert a new node into the clicked poly edge **
**----------------------------------------------------------*/

static void Do_Poly_InsertNode(void)
{
API_ElementMemo memo;
API_Neig neig;
API_ElemTypeID idElem;
API_Coord3D begC;
API_EdgeTrim edgeTrim;
Int32 nodeInd;
GSErrCode err;

if (!ClickAnElem("Click an edge to insert new node", API_ZombieElemID, &amp;amp;neig, nullptr, nullptr, &amp;amp;begC)) {
GiveMessage("Please click a polygon node", true);
return;
}

if (neig.neigID != APINeig_CeilOn &amp;amp;&amp;amp; neig.neigID != APINeig_RoofOn) {
GiveMessage("Please click a ceil or roof edge", true);
return;
}

idElem = Neig_To_ElemID(neig.neigID);
err = ACAPI_Element_GetMemo(neig.guid, &amp;amp;memo);
if (err) {
GiveMessage_Err("ACAPI_Element_GetMemo", err);
return;
}

nodeInd = neig.inIndex + 1;
err = ACAPI_Goodies(APIAny_InsertPolyNodeID, &amp;amp;memo, &amp;amp;nodeInd, (API_Coord*)(&amp;amp;begC));
if (!err) {
switch (idElem) {
case API_SlabID:
//* nothing to do
break;
case API_RoofID:
if (memo.edgeTrims != nullptr &amp;amp;&amp;amp; *memo.edgeTrims != nullptr) {
//* insert edgeTrim rec; [neig.inIndex]
}
break;
default:
return; //* never got there
}
err = ACAPI_Element_ChangeMemo(neig.guid, APIMemoMask_Polygon, &amp;amp;memo);
if (err)
GiveMessage_Err("ACAPI_Element_ChangeMemo", err);
}
else
GiveMessage_Err("APIAny_InsertPolyNodeID", err);

ACAPI_DisposeElemMemoHdls(&amp;amp;memo);
return;
}&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 28 Aug 2025 11:14:34 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-read-edit-change-copy-neig-for-drawings-or-the-equivalent/m-p/674855#M10535</guid>
      <dc:creator>AllanP</dc:creator>
      <dc:date>2025-08-28T11:14:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to read/edit/change/copy neig for drawings or the equivalent sub-elements identified by neig</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-read-edit-change-copy-neig-for-drawings-or-the-equivalent/m-p/676371#M10547</link>
      <description>&lt;P&gt;Hi, I'd suggest you to modify two places of your code for dealing with drawing local placement issue:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;err = ACAPI_Element_GetMemo(oldGuid, &amp;amp;memo, APIMemoMask_Polygon); // only need polygon info.&lt;/LI-CODE&gt;
&lt;P&gt;After created a new drawing element, force to change pos:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;API_Element mask;

ACAPI_ELEMENT_MASK_CLEAR(mask);

ACAPI_ELEMENT_MASK_SET(mask, API_DrawingType, pos);
newElement.drawing.pos	= element.drawing.pos;

err = ACAPI_Element_Change (&amp;amp;newElement, &amp;amp;mask, nullptr, 0, true);&lt;/LI-CODE&gt;
&lt;P&gt;Also, you can change newElement.drawing.name parameter for drawing title.&lt;/P&gt;
&lt;P&gt;(Sorry I didn't check AC25, it should work on latest version)&lt;/P&gt;
&lt;P&gt;HTH.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Sep 2025 05:33:57 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-read-edit-change-copy-neig-for-drawings-or-the-equivalent/m-p/676371#M10547</guid>
      <dc:creator>Hiromichi Shinkawa</dc:creator>
      <dc:date>2025-09-10T05:33:57Z</dc:date>
    </item>
  </channel>
</rss>

