<?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 create composite slabs through Add On in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570703#M8700</link>
    <description>&lt;P&gt;Hi Kency,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Yes &lt;STRONG&gt;ACAPI_CreateAttributeIndex&lt;/STRONG&gt; was introduced with AC27. Up to AC26 you can just assign an integer directly to the composite field and that should work.&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;slabElement.slab.composite = attributeIndexOfYourComposite;&lt;/LI-CODE&gt;
&lt;P&gt;To find out the attribute index from the composite name, you would have to iterate over all composite attributes and match the name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Right now the only way to access older documentation is to download the DevKit, install it with the documentation and read it offline.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;BR /&gt;Bernd&lt;/P&gt;</description>
    <pubDate>Fri, 13 Oct 2023 05:16:14 GMT</pubDate>
    <dc:creator>BerndSchwarzenbacher</dc:creator>
    <dc:date>2023-10-13T05:16:14Z</dc:date>
    <item>
      <title>How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/401963#M8694</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are trying to create a slab with Composite structure and wanted to know how we can set the option &lt;FONT color="#0000FF"&gt;"Concrete Floor Insulated with 10mm Tile"&amp;nbsp;&lt;FONT color="#000000"&gt;through the Add On. We were following the API structure of ArchiCAD 25 and we wanted to try by giving different value for composite field. But today the API reference got updated to ArchiCAD 27 and it showed a function&amp;nbsp;&lt;SPAN&gt;ACAPI_CreateAttributeIndex to create the composite field. But this function is only supported in ArchiCAD 27.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;Summarizing my queries:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;1. How to set the option Concrete Floor Insulated with 10mm Tile through Add On code.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;2. Is there any way we can refer to the ArchiCAD 25 version?&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kency_0-1697093497516.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/47207i533D0C95863CFC08/image-size/medium?v=v2&amp;amp;px=400" role="button" title="kency_0-1697093497516.png" alt="kency_0-1697093497516.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://community.graphisoft.com/t5/user/viewprofilepage/user-id/77075"&gt;@roni&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Sep 2024 12:27:20 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/401963#M8694</guid>
      <dc:creator>kency</dc:creator>
      <dc:date>2024-09-16T12:27:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570645#M8696</link>
      <description>&lt;P&gt;genuinely curious why you would need to? I mean, this is such a simple basic fundamental workflow baked into Archicad, I can't fathom why you wouldn't just edit the composite in Archicad rather than trying to 'squeeze blood from a stone' as it were. Even if it is a case of needing it updated in multiple files; fix it in one, export the attribute via the att manager, and import into all projects, appending by index. Even if I had to update 30 projects, this would be only about 10 minutes longer than the time it takes to open those files.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Oct 2023 18:17:25 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570645#M8696</guid>
      <dc:creator>Patrick M</dc:creator>
      <dc:date>2023-10-12T18:17:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570703#M8700</link>
      <description>&lt;P&gt;Hi Kency,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Yes &lt;STRONG&gt;ACAPI_CreateAttributeIndex&lt;/STRONG&gt; was introduced with AC27. Up to AC26 you can just assign an integer directly to the composite field and that should work.&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;slabElement.slab.composite = attributeIndexOfYourComposite;&lt;/LI-CODE&gt;
&lt;P&gt;To find out the attribute index from the composite name, you would have to iterate over all composite attributes and match the name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Right now the only way to access older documentation is to download the DevKit, install it with the documentation and read it offline.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;BR /&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 05:16:14 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570703#M8700</guid>
      <dc:creator>BerndSchwarzenbacher</dc:creator>
      <dc:date>2023-10-13T05:16:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570704#M8701</link>
      <description>&lt;P&gt;Hi 4dProof,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Often questions here are already distilled down to their most basic component where people are stuck. I agree that it might look like a lot of work for something that can be done quickly manually as you've mentioned.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But often what we do here is embedded in a much bigger workflow where it's just one tiny step to set a specific composite material. And most of the time we don't even know what material to set since we are not the ones running the Add-On! It depends on how the users use our Add-Ons and how their project is setup. So we really have to do a lot of those easy steps very generally. But then again it's easier to ask and answer programming questions if going back to specifics &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;Hope that gives a bit of an insight on what is going on here.&lt;BR /&gt;Best,&lt;BR /&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 06:34:47 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570704#M8701</guid>
      <dc:creator>BerndSchwarzenbacher</dc:creator>
      <dc:date>2023-10-13T06:34:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570711#M8707</link>
      <description>&lt;P&gt;Thank you so much &lt;a href="https://community.graphisoft.com/t5/user/viewprofilepage/user-id/8527"&gt;@BerndSchwarzenbacher&lt;/a&gt;&amp;nbsp;&amp;nbsp;. Much appreciated &lt;span class="lia-unicode-emoji" title=":raising_hands:"&gt;🙌&lt;/span&gt;. Just a few more follow-up questions:&lt;/P&gt;&lt;P&gt;1. Where can we get the list of Composite Attribute? Is there a list already provided in the Dev Kit files?&lt;/P&gt;&lt;P&gt;2. The downloaded DevKit did not contain the Documentation folder only the Example and Support folder was there. &lt;span class="lia-unicode-emoji" title=":eyes:"&gt;👀&lt;/span&gt; Please note we downloaded almost 3 weeks back.&lt;/P&gt;&lt;P&gt;cc:&amp;nbsp;&lt;a href="https://community.graphisoft.com/t5/user/viewprofilepage/user-id/77075"&gt;@roni&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 06:19:03 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570711#M8707</guid>
      <dc:creator>kency</dc:creator>
      <dc:date>2023-10-13T06:19:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570714#M8708</link>
      <description>&lt;P&gt;Happy to help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. It's a two step process. First get the number of attributes of a specific type and then iterate through it. For AC25 a sample code would be something like this:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;API_AttributeIndex num = 0;
err = ACAPI_Attribute_GetNum (API_CompWallID, &amp;amp;num);
if (err != NoError) { return err; }

for (API_AttributeIndex id = 1; id &amp;lt;= num; ++id)
{
	API_Attribute attr{};
	attr.header.typeID = typeID;
	attr.header.index = id;

	// can also leave the following two lines out
	// if you want to work with the cstr coming from attr.header.name instead
	GS::UniString uniStrName;
	attr.header.uniStringNamePtr = &amp;amp;uniStrName;

	err = ACAPI_Attribute_Get (&amp;amp;attr);
	if (err == APIERR_DELETED || err == APIERR_BADINDEX) { continue; }
	if (err != NoError) { return err; }

	if (uniStrName == nameOfAttrToFind) {
		// do something here
	}
}
&lt;/LI-CODE&gt;
&lt;P&gt;Also check out the Attribute_Test example from the DevKit.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Are you on Mac maybe? I'm not sure why, but some versions of the DevKit for macOS seem to come without a documentation.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For the Windows versions you find an option to install the Documentation with the devKit. So maybe you have access to a windows machine somewhere where you can install the devkit + doc and copy it from there.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best, Bernd&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 07:07:58 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570714#M8708</guid>
      <dc:creator>BerndSchwarzenbacher</dc:creator>
      <dc:date>2023-10-13T07:07:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570726#M8710</link>
      <description>&lt;P&gt;1. Ok, will try this out.&lt;/P&gt;&lt;P&gt;2. Yes, I am using Mac.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 08:13:46 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570726#M8710</guid>
      <dc:creator>kency</dc:creator>
      <dc:date>2023-10-13T08:13:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to create composite slabs through Add On</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570787#M8712</link>
      <description>&lt;P&gt;&lt;a href="https://community.graphisoft.com/t5/user/viewprofilepage/user-id/8527"&gt;@BerndSchwarzenbacher&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;fair enough. I totally get that we all work within our usual comfort zones and our own specific project, office, and workflow needs...&lt;/P&gt;
&lt;P&gt;but, nah, it still makes no sense to me. I'll just keep hoping it doesn't come to that level of complexity for me&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For my personal experiences, I struggle to get my clients to adopt the most simple workflows and tools; like integrated schedules, properties, or even associated labels... if I have to start teaching python, c++, or even GDL, I wont find a single firm willing to hire me.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 16:17:28 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-create-composite-slabs-through-Add-On/m-p/570787#M8712</guid>
      <dc:creator>Patrick M</dc:creator>
      <dc:date>2023-10-13T16:17:28Z</dc:date>
    </item>
  </channel>
</rss>

