<?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 Betreff: Best APIs to collect productivity/performance data from ArchiCAD for training analytics in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/Best-APIs-to-collect-productivity-performance-data-from-Archicad/m-p/689877#M10754</link>
    <description>&lt;P data-path-to-node="3"&gt;Oh my, that sounds horrible. ...But it's the best part of an Archicad Add-On that you can do whatever you want. &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/P&gt;
&lt;P data-path-to-node="4"&gt;I would do it this way:&lt;/P&gt;
&lt;P data-path-to-node="5"&gt;&lt;STRONG data-path-to-node="5" data-index-in-node="0"&gt;Add-On:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-path-to-node="6"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="6,0,0"&gt;Hook up Element Notifier to ALL Elements. Hook up New Element Notifier.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="6,1,0"&gt;Then I would see: Types of Elements created. Types of Elements modified. Number of Elements Deleted.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="7"&gt;Just from those operations, you could interpret a lot of insights without having to develop an extremely complex plugin. Then I would increment the data I harvest on the notifier. I would start with just the GUID, Timestamps and type of the element and then harvest more and more data wherever I find it useful.&lt;/P&gt;
&lt;UL data-path-to-node="8"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="8,0,0"&gt;The identification of the user I would do with the user ID API call.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="9"&gt;&lt;STRONG data-path-to-node="9" data-index-in-node="0"&gt;Backend:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-path-to-node="10"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="10,0,0"&gt;I would never ever directly write to a SQL database. I would create a Web API Call on the plugin side and then build a web application with the endpoint where my plugin instances write their data to.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="10,1,0"&gt;In this web application, I would integrate the data visualization and of course implement the whole authorization so that only those who shall see the data can see it.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="11"&gt;&lt;STRONG data-path-to-node="11" data-index-in-node="0"&gt;On another level coming from my experience in architecture firms:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-path-to-node="12"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,0,0"&gt;High turnover from drafting staff does not come from bad training. It comes from crunch projects that are in bad shape and of course bad hiring.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,1,0"&gt;Why projects are in bad shape of course depends. But I never ever had a project that failed because the training was insufficient.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,2,0"&gt;Implementing such a tool would fuel a toxic workplace environment and would lead to even higher turnover.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,3,0"&gt;I mean, before I would implement such a solution, I would first work on the HR department and ensure that the projects are somewhat bearable.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;</description>
    <pubDate>Thu, 15 Jan 2026 14:26:42 GMT</pubDate>
    <dc:creator>Joel Buehler</dc:creator>
    <dc:date>2026-01-15T14:26:42Z</dc:date>
    <item>
      <title>Best APIs to collect productivity/performance data from Archicad for training analytics</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Best-APIs-to-collect-productivity-performance-data-from-Archicad/m-p/686515#M10727</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;I'm looking to build a productivity tracking system for our drafting team. The goal is to collect data from Archicad, store it in a database, and later build reports to identify:&lt;/P&gt;
&lt;P&gt;- Which areas/tasks are taking drafters more time&lt;BR /&gt;- User-specific performance metrics&lt;BR /&gt;- Project-wise statistics&lt;BR /&gt;- Where individual training might be needed&lt;/P&gt;
&lt;P&gt;Our situation:&lt;BR /&gt;- Drafting staff turnover and varying efficiency levels&lt;BR /&gt;- Need data-driven insights to provide targeted training&lt;BR /&gt;- Want to track progress over time&lt;/P&gt;
&lt;P&gt;What I'm looking for:&lt;/P&gt;
&lt;P&gt;1. Which APIs/events would be most useful for capturing:&lt;BR /&gt;- Time spent on different element types (walls, slabs, roofs, etc.)&lt;BR /&gt;- Time spent in different views/worksheets/layouts&lt;BR /&gt;- Element creation/modification frequency&lt;BR /&gt;- Undo frequency (might indicate struggles)&lt;BR /&gt;- Tool usage patterns&lt;BR /&gt;- Session duration and idle time&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What's the best approach to track?&lt;BR /&gt;Our planned workflow:&lt;BR /&gt;1. Add-on collects data in background&lt;BR /&gt;2. Periodically writes to SQL database&lt;BR /&gt;3. Separate reporting app generates analytics dashboards&lt;/P&gt;
&lt;P&gt;Has anyone implemented something similar? What data points proved most valuable for identifying training needs?&lt;/P&gt;
&lt;P&gt;Any suggestions on APIs, approaches, or pitfalls to avoid would be greatly appreciated.&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jan 2026 18:15:55 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Best-APIs-to-collect-productivity-performance-data-from-Archicad/m-p/686515#M10727</guid>
      <dc:creator>Steve Sunny</dc:creator>
      <dc:date>2026-01-15T18:15:55Z</dc:date>
    </item>
    <item>
      <title>Betreff: Best APIs to collect productivity/performance data from ArchiCAD for training analytics</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Best-APIs-to-collect-productivity-performance-data-from-Archicad/m-p/689877#M10754</link>
      <description>&lt;P data-path-to-node="3"&gt;Oh my, that sounds horrible. ...But it's the best part of an Archicad Add-On that you can do whatever you want. &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/P&gt;
&lt;P data-path-to-node="4"&gt;I would do it this way:&lt;/P&gt;
&lt;P data-path-to-node="5"&gt;&lt;STRONG data-path-to-node="5" data-index-in-node="0"&gt;Add-On:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-path-to-node="6"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="6,0,0"&gt;Hook up Element Notifier to ALL Elements. Hook up New Element Notifier.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="6,1,0"&gt;Then I would see: Types of Elements created. Types of Elements modified. Number of Elements Deleted.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="7"&gt;Just from those operations, you could interpret a lot of insights without having to develop an extremely complex plugin. Then I would increment the data I harvest on the notifier. I would start with just the GUID, Timestamps and type of the element and then harvest more and more data wherever I find it useful.&lt;/P&gt;
&lt;UL data-path-to-node="8"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="8,0,0"&gt;The identification of the user I would do with the user ID API call.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="9"&gt;&lt;STRONG data-path-to-node="9" data-index-in-node="0"&gt;Backend:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-path-to-node="10"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="10,0,0"&gt;I would never ever directly write to a SQL database. I would create a Web API Call on the plugin side and then build a web application with the endpoint where my plugin instances write their data to.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="10,1,0"&gt;In this web application, I would integrate the data visualization and of course implement the whole authorization so that only those who shall see the data can see it.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="11"&gt;&lt;STRONG data-path-to-node="11" data-index-in-node="0"&gt;On another level coming from my experience in architecture firms:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-path-to-node="12"&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,0,0"&gt;High turnover from drafting staff does not come from bad training. It comes from crunch projects that are in bad shape and of course bad hiring.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,1,0"&gt;Why projects are in bad shape of course depends. But I never ever had a project that failed because the training was insufficient.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,2,0"&gt;Implementing such a tool would fuel a toxic workplace environment and would lead to even higher turnover.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-path-to-node="12,3,0"&gt;I mean, before I would implement such a solution, I would first work on the HR department and ensure that the projects are somewhat bearable.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 15 Jan 2026 14:26:42 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Best-APIs-to-collect-productivity-performance-data-from-Archicad/m-p/689877#M10754</guid>
      <dc:creator>Joel Buehler</dc:creator>
      <dc:date>2026-01-15T14:26:42Z</dc:date>
    </item>
  </channel>
</rss>

