<?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 add IFC property to an element in AC29 in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-add-IFC-property-to-an-element-in-AC29/m-p/679721#M10614</link>
    <description>&lt;P&gt;&lt;SPAN&gt;IFC properties could previously be added to an element with&amp;nbsp;&lt;EM&gt;ACAPI_Element_SetIFCProperty&lt;/EM&gt;. This was deprecated in AC28 and removed in AC29. The new approach is to use IFC hooks to dynamically declare what IFC properties should be attached to an element on demand (e.g. for IFC export or for a UI display).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;EM&gt;ACAPI_Element_SetIFCProperty&lt;/EM&gt;&amp;nbsp;statically attaches data to project elements and can often extremely verbose and/or repetitive, which can lead to slow, bloated projects. And frequently this data already exists somewhere else, e.g. an external database. Using hooks enables an add-on to attach or extract IFC data at the point of export or import. GS is forcing this approach by removing the functions that add/remove IFC properties directly to/from elements.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Take a look at&amp;nbsp;the HookManager, e.g. GetHookManager::RegisterPropertyHook. The example project&amp;nbsp;IFCHook_Test is helpful.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 13 Oct 2025 13:02:43 GMT</pubDate>
    <dc:creator>Ralph Wessel</dc:creator>
    <dc:date>2025-10-13T13:02:43Z</dc:date>
    <item>
      <title>How to add IFC property to an element in AC29</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-add-IFC-property-to-an-element-in-AC29/m-p/679242#M10610</link>
      <description>&lt;P&gt;Hello, I recently took on plugin development and there was a function for creating new IFC properties.&lt;/P&gt;&lt;P&gt;Unfortunately I didn't find any function in IFCAPI that can attach a IFCAPI::Property to an element&lt;/P&gt;&lt;P&gt;The function in question:&lt;/P&gt;&lt;PRE&gt;void CApplyOnSelection::changeIFCProperty(const API_Guid &amp;amp; guid, const GS::UniString &amp;amp; propertyName, const GS::UniString &amp;amp; propertyType, const GS::UniString &amp;amp; propertySet, const std::string &amp;amp; value) {&lt;BR /&gt;  GSErrCode err;&lt;BR /&gt;  API_IFCProperty* newProperty = new API_IFCProperty;&lt;BR /&gt;  newProperty-&amp;gt;singleValue.nominalValue.value.stringValue = value;&lt;BR /&gt;  newProperty-&amp;gt;singleValue.nominalValue.valueType = propertyType;&lt;BR /&gt;  newProperty-&amp;gt;head.propertyName = propertyName;&lt;BR /&gt;  newProperty-&amp;gt;head.propertyType = API_IFCPropertySingleValueType;&lt;BR /&gt;  newProperty-&amp;gt;head.propertySetName = propertySet;&lt;BR /&gt;  err = ACAPI_Element_SetIFCProperty(guid, *newProperty);&lt;BR /&gt;  WriteReport_End(err);&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;</description>
      <pubDate>Wed, 08 Oct 2025 19:39:20 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-add-IFC-property-to-an-element-in-AC29/m-p/679242#M10610</guid>
      <dc:creator>nevim</dc:creator>
      <dc:date>2025-10-08T19:39:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to add IFC property to an element in AC29</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/How-to-add-IFC-property-to-an-element-in-AC29/m-p/679721#M10614</link>
      <description>&lt;P&gt;&lt;SPAN&gt;IFC properties could previously be added to an element with&amp;nbsp;&lt;EM&gt;ACAPI_Element_SetIFCProperty&lt;/EM&gt;. This was deprecated in AC28 and removed in AC29. The new approach is to use IFC hooks to dynamically declare what IFC properties should be attached to an element on demand (e.g. for IFC export or for a UI display).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;EM&gt;ACAPI_Element_SetIFCProperty&lt;/EM&gt;&amp;nbsp;statically attaches data to project elements and can often extremely verbose and/or repetitive, which can lead to slow, bloated projects. And frequently this data already exists somewhere else, e.g. an external database. Using hooks enables an add-on to attach or extract IFC data at the point of export or import. GS is forcing this approach by removing the functions that add/remove IFC properties directly to/from elements.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Take a look at&amp;nbsp;the HookManager, e.g. GetHookManager::RegisterPropertyHook. The example project&amp;nbsp;IFCHook_Test is helpful.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Oct 2025 13:02:43 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/How-to-add-IFC-property-to-an-element-in-AC29/m-p/679721#M10614</guid>
      <dc:creator>Ralph Wessel</dc:creator>
      <dc:date>2025-10-13T13:02:43Z</dc:date>
    </item>
  </channel>
</rss>

