<?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 layoutinfo. customData give me bundles of guid - &amp;gt;value but where do I get a bundle of varname-&amp;gt;guid in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225552#M2252</link>
    <description>&lt;DIV class="actalk-migrated-content"&gt;User was create new variable in master layout.&lt;BR /&gt;I need to get value of that variable by name.&lt;BR /&gt;But I have only pairs guid-&amp;gt;value in the layout.customData.&lt;BR /&gt;How I can get values by variable name?&lt;BR /&gt;In original example Database_Control.cpp there is a no informative code how to change all variables:&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE&gt;//----&amp;gt;&amp;gt;&amp;gt;
API_LayoutInfo	layoutInfo;
BNZeroMemory (&amp;amp;layoutInfo, sizeof (API_LayoutInfo));
if (ACAPI_Environment (APIEnv_GetLayoutSetsID, &amp;amp;layoutInfo, &amp;amp;api_dbPars.databaseUnId) == NoError) 
{
	...
      for (auto it = layoutInfo.customData-&amp;gt;EnumeratePairs (); it != nullptr; ++it) 
      {
                   *it-&amp;gt;value += " - Modified via API";
       }
      ACAPI_Environment (APIEnv_ChangeLayoutSetsID, &amp;amp;layoutInfo, &amp;amp;api_dbPars.databaseUnId);
}
//&amp;lt;&amp;lt;&amp;lt;----
My code is:
//-&amp;gt;&amp;gt;
API_LayoutInfo layoutInfo;
err = ACAPI_Environment(APIEnv_GetLayoutSetsID, &amp;amp;layoutInfo, &amp;amp;databaseUnId, &amp;amp;actualPageIndex);
if (layoutInfo.customData != nullptr)
{
       if (layoutInfo.customData-&amp;gt;GetSize() &amp;gt; 0)
       {
             Guid keyguid;
             keyguid.ConvertFromString("7151E155-1B9B-4F17-9D4F-35F8036DE4A2");
             API_Guid key = GSGuid2APIGuid(keyguid);//layoutInfo.customData-&amp;gt;GetAKey(0);
             UniString us;
	     if(layoutInfo.customData-&amp;gt;ContainsKey(key))
                   us = layoutInfo.customData-&amp;gt;Get(key);
	}
}
&lt;/PRE&gt;
&lt;BR /&gt;As result - us contains value.&lt;BR /&gt;But I need to get it by layout custom variable name;&lt;/DIV&gt;</description>
    <pubDate>Tue, 14 Sep 2021 07:18:59 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2021-09-14T07:18:59Z</dc:date>
    <item>
      <title>layoutinfo. customData give me bundles of guid - &gt;value but where do I get a bundle of varname-&gt;guid</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225552#M2252</link>
      <description>&lt;DIV class="actalk-migrated-content"&gt;User was create new variable in master layout.&lt;BR /&gt;I need to get value of that variable by name.&lt;BR /&gt;But I have only pairs guid-&amp;gt;value in the layout.customData.&lt;BR /&gt;How I can get values by variable name?&lt;BR /&gt;In original example Database_Control.cpp there is a no informative code how to change all variables:&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE&gt;//----&amp;gt;&amp;gt;&amp;gt;
API_LayoutInfo	layoutInfo;
BNZeroMemory (&amp;amp;layoutInfo, sizeof (API_LayoutInfo));
if (ACAPI_Environment (APIEnv_GetLayoutSetsID, &amp;amp;layoutInfo, &amp;amp;api_dbPars.databaseUnId) == NoError) 
{
	...
      for (auto it = layoutInfo.customData-&amp;gt;EnumeratePairs (); it != nullptr; ++it) 
      {
                   *it-&amp;gt;value += " - Modified via API";
       }
      ACAPI_Environment (APIEnv_ChangeLayoutSetsID, &amp;amp;layoutInfo, &amp;amp;api_dbPars.databaseUnId);
}
//&amp;lt;&amp;lt;&amp;lt;----
My code is:
//-&amp;gt;&amp;gt;
API_LayoutInfo layoutInfo;
err = ACAPI_Environment(APIEnv_GetLayoutSetsID, &amp;amp;layoutInfo, &amp;amp;databaseUnId, &amp;amp;actualPageIndex);
if (layoutInfo.customData != nullptr)
{
       if (layoutInfo.customData-&amp;gt;GetSize() &amp;gt; 0)
       {
             Guid keyguid;
             keyguid.ConvertFromString("7151E155-1B9B-4F17-9D4F-35F8036DE4A2");
             API_Guid key = GSGuid2APIGuid(keyguid);//layoutInfo.customData-&amp;gt;GetAKey(0);
             UniString us;
	     if(layoutInfo.customData-&amp;gt;ContainsKey(key))
                   us = layoutInfo.customData-&amp;gt;Get(key);
	}
}
&lt;/PRE&gt;
&lt;BR /&gt;As result - us contains value.&lt;BR /&gt;But I need to get it by layout custom variable name;&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Sep 2021 07:18:59 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225552#M2252</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-09-14T07:18:59Z</dc:date>
    </item>
    <item>
      <title>Re: layoutinfo. customData give me bundles of guid - &gt;value but where do I get a bundle of varname-&gt;guid</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225553#M2253</link>
      <description>I didnt try, but I guess you need function:&lt;BR /&gt;
&lt;BR /&gt;
GSErrCode ACAPI_Database (  APIDb_GetLayoutBookID,  API_LayoutBook* book  );&lt;BR /&gt;
&lt;BR /&gt;
and field &lt;BR /&gt;
&lt;BR /&gt;
book-&amp;gt;customScheme</description>
      <pubDate>Wed, 25 Aug 2021 14:06:24 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225553#M2253</guid>
      <dc:creator>Oleg</dc:creator>
      <dc:date>2021-08-25T14:06:24Z</dc:date>
    </item>
    <item>
      <title>Re: layoutinfo. customData give me bundles of guid - &gt;value but where do I get a bundle of varname-&gt;guid</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225554#M2254</link>
      <description>It works great! &lt;BR /&gt;
Thank you very much!</description>
      <pubDate>Wed, 25 Aug 2021 14:54:06 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/layoutinfo-customData-give-me-bundles-of-guid-gt-value-but-where/m-p/225554#M2254</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-08-25T14:54:06Z</dc:date>
    </item>
  </channel>
</rss>

