<?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 [BUG?] AC24: Drawing anchor point error when creating drawings in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/BUG-AC24-Drawing-anchor-point-error-when-creating-drawings/m-p/234577#M2533</link>
    <description>&lt;DIV class="actalk-migrated-content"&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I've updated my addon from AC 23 to AC 24 and tested it and I noticed it doesn't apply the anchor point I passed (APIAnc_MM) on the element, it reverts back to APIAnc_LB after ACAPI_Element_Create.&lt;BR /&gt;&lt;BR /&gt;Its the same code used, seems no code changes for element creation unlike room relation / dg struct.&lt;BR /&gt;&lt;BR /&gt;I posted pictures on resulting drawings, if you notice AC24 drawings are on same coords but placed on LB node instead of MM node.&lt;BR /&gt;&lt;BR /&gt;I thought hotfix was the issue but I've updated to AC 3022 INT FULL and it still occurs&lt;/DIV&gt;</description>
    <pubDate>Tue, 14 Sep 2021 11:35:49 GMT</pubDate>
    <dc:creator>Erenford</dc:creator>
    <dc:date>2021-09-14T11:35:49Z</dc:date>
    <item>
      <title>[BUG?] AC24: Drawing anchor point error when creating drawings</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/BUG-AC24-Drawing-anchor-point-error-when-creating-drawings/m-p/234577#M2533</link>
      <description>&lt;DIV class="actalk-migrated-content"&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I've updated my addon from AC 23 to AC 24 and tested it and I noticed it doesn't apply the anchor point I passed (APIAnc_MM) on the element, it reverts back to APIAnc_LB after ACAPI_Element_Create.&lt;BR /&gt;&lt;BR /&gt;Its the same code used, seems no code changes for element creation unlike room relation / dg struct.&lt;BR /&gt;&lt;BR /&gt;I posted pictures on resulting drawings, if you notice AC24 drawings are on same coords but placed on LB node instead of MM node.&lt;BR /&gt;&lt;BR /&gt;I thought hotfix was the issue but I've updated to AC 3022 INT FULL and it still occurs&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Sep 2021 11:35:49 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/BUG-AC24-Drawing-anchor-point-error-when-creating-drawings/m-p/234577#M2533</guid>
      <dc:creator>Erenford</dc:creator>
      <dc:date>2021-09-14T11:35:49Z</dc:date>
    </item>
    <item>
      <title>Re: [BUG?] AC24: Drawing anchor point error when creating drawings</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/BUG-AC24-Drawing-anchor-point-error-when-creating-drawings/m-p/234578#M2534</link>
      <description>I made a sample code and tested it on a new empty project, still doesn't work&lt;BR /&gt;

&lt;PRE&gt;&lt;I&gt;
&lt;/I&gt;void Test_CreateDrawing()
{
	API_NavigatorItem item;
	// Gets view with id "TEST" and name "TEST"
	TEST_Navigator(item);

	API_Element elem;
	BNZeroMemory(&amp;amp;elem, sizeof(elem));
	elem.drawing.head.typeID = API_DrawingID;
	GSErrCode err = ACAPI_Element_GetDefaults(&amp;amp;elem, NULL);

	elem.header.layer = ARCHICAD_LAYER; //set to Archicad Layer
	elem.drawing.drawingGuid = item.guid;
	elem.drawing.isCutWithFrame = true;
	elem.drawing.ratio = 1;
	elem.drawing.angle = 0;
	elem.drawing.colorMode = APIColorMode_OriginalColors;
	elem.drawing.penTableUsageMode = APIPenTableUsageMode_UseOwnPenTable;
	elem.drawing.useOwnOrigoAsAnchor = false;
	elem.drawing.manualUpdate = false;
	// set name
	elem.drawing.nameType = APIName_CustomName;
	sprintf(elem.drawing.name, "TEST");
	// coords (hotspot pos)
	elem.drawing.pos.x = 0.427592;
	elem.drawing.pos.y = 0.271358;
	// set anchor point to middle node
	// ~~ MAIN ISSUE: this is not applied and reverts to APIAnc_LB ~~
	elem.drawing.anchorPoint = APIAnc_MM;

	// Create drawing
	ACAPI_CallUndoableCommand("Create Layout Drawing", [&amp;amp;] () -&amp;gt; GSErrCode { //
	err = ACAPI_Element_Create(&amp;amp;elem, NULL);
	return NoError; });

	if (err != NoError)
	{
		WriteReport("[" __FUNC__ "] ERROR %s - ACAPI_Element_Create", ErrId2Name(err));
		return;
	}

	// get drawing to check value
	if (ACAPI_Element_Get(&amp;amp;elem) == NoError)
	{
		// prints out anchor point, prints 6 (LB) not 4 (MM)
		WriteReport("elem.drawing.anchorPoint: %d", elem.drawing.anchorPoint);
		// Try to change anchor point again
		API_Element mask;
		ACAPI_ELEMENT_MASK_CLEAR(mask);
		ACAPI_ELEMENT_MASK_SET(mask, API_DrawingType, anchorPoint);
		elem.drawing.anchorPoint = APIAnc_MM;
		ACAPI_CallUndoableCommand("Update Drawing", [&amp;amp;]() -&amp;gt; GSErrCode { //
		err = ACAPI_Element_Change(&amp;amp;elem, &amp;amp;mask, NULL, NULL, true);
		return NoError; });

		if (err != NoError)
		{
			WriteReport("[" __FUNC__ "] ERROR %s - ACAPI_Element_Change", ErrId2Name(err));
			return;
		}

		// get drawing for the 2nd time then print anchor, still prints 6
		if (ACAPI_Element_Get(&amp;amp;elem) == NoError)
			WriteReport("elem.drawing.anchorPoint: %d", elem.drawing.anchorPoint);
	}
}
&lt;/PRE&gt;




&lt;BR /&gt;
6 btw is APIAnc_LB&lt;BR /&gt;
it should be 4, which is APIAnc_MM</description>
      <pubDate>Thu, 07 Jan 2021 05:48:53 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/BUG-AC24-Drawing-anchor-point-error-when-creating-drawings/m-p/234578#M2534</guid>
      <dc:creator>Erenford</dc:creator>
      <dc:date>2021-01-07T05:48:53Z</dc:date>
    </item>
  </channel>
</rss>

