<?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: 2D drawing overlay in 3D view in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/680833#M10650</link>
    <description>&lt;P&gt;Hi Bruno,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can also approach this billboard-like behaviour from the GDL side. You can find below a sample GDL script that turns a picture towards the perspective camera.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Best, Akos&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;dx= GLOB_EYEPOS_X - GLOB_TARGPOS_X
dy= GLOB_EYEPOS_Y - GLOB_TARGPOS_Y

rotx 90

if SYMB_MIRRORED then
  roty SYMB_ROTANGLE
else
  roty -SYMB_ROTANGLE
endif

if abs(GLOB_EYEPOS_X-GLOB_TARGPOS_X)&amp;lt;EPS then
  if GLOB_EYEPOS_Y&amp;gt;GLOB_TARGPOS_Y then roty 180
else
  alf=atn(abs(dy/dx))

  if SYMB_MIRRORED then
    if dx&amp;lt;0 and dy&amp;gt;0 then roty -(180-alf)
    if dx&amp;lt;0 and dy&amp;lt;0 then roty -(180+alf)
    if dx&amp;gt;0 and dy&amp;lt;0 then roty -(-alf)
    if dx&amp;gt;0 and dy&amp;gt;0 then roty -(alf)
  else
    if dx&amp;lt;0 and dy&amp;gt;0 then roty (180-alf)
    if dx&amp;lt;0 and dy&amp;lt;0 then roty (180+alf)
    if dx&amp;gt;0 and dy&amp;lt;0 then roty (-alf)
    if dx&amp;gt;0 and dy&amp;gt;0 then roty (alf)
  endif
  roty 90
endif

addx -ZZYZX/2*pictWidth/pictHeight
picture "picture", ZZYZX*pictWidth/pictHeight, ZZYZX, 1
del top&lt;/LI-CODE&gt;</description>
    <pubDate>Tue, 21 Oct 2025 12:55:19 GMT</pubDate>
    <dc:creator>Akos Somorjai</dc:creator>
    <dc:date>2025-10-21T12:55:19Z</dc:date>
    <item>
      <title>2D drawing overlay in 3D view</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/676810#M10556</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi! I need to figure out a way to make 2D drawings in the 3D view, in a way that the drawings are always facing the camera, preferably while rotating the camera too. My intention is to draw pins where the user clicked in the model. Here’s a mockup of what I mean:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="BrunoValads_0-1757938911997.png" style="width: 433px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/91997iC3BE96D16275B4E0/image-dimensions/433x286?v=v2" width="433" height="286" role="button" title="BrunoValads_0-1757938911997.png" alt="BrunoValads_0-1757938911997.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;Is it possible to do this in the current state of the API?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2025 12:23:56 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/676810#M10556</guid>
      <dc:creator>BrunoValads</dc:creator>
      <dc:date>2025-09-15T12:23:56Z</dc:date>
    </item>
    <item>
      <title>Re: 2D drawing overlay in 3D view</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/680292#M10631</link>
      <description>&lt;P&gt;Hi Bruno,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The only thing I know of which comes close is the &lt;A href="https://graphisoft.github.io/archicad-api-devkit/class_a_c_a_p_i_1_1_u_i_1_1_notification_1_1_notification_bubble.html" target="_self"&gt;Notification Bubble introduced with AC29&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Not sure if you can do it without a timeout though to always show it and also updating it to camera rotation might be tricky.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't know of any other functionality to achieve this directly with only the Archicad API. You can get the clicked point though in screen coordinates of the 3D window like it's done in the notification bubble example. Then you could send this to an external program (written by yourself or maybe there are solutions available) to draw a pin there. It's for sure an experiment, but I assume it's possible.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope that helps,&lt;/P&gt;
&lt;P&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Thu, 16 Oct 2025 15:23:59 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/680292#M10631</guid>
      <dc:creator>BerndSchwarzenbacher</dc:creator>
      <dc:date>2025-10-16T15:23:59Z</dc:date>
    </item>
    <item>
      <title>Re: 2D drawing overlay in 3D view</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/680833#M10650</link>
      <description>&lt;P&gt;Hi Bruno,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can also approach this billboard-like behaviour from the GDL side. You can find below a sample GDL script that turns a picture towards the perspective camera.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Best, Akos&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;dx= GLOB_EYEPOS_X - GLOB_TARGPOS_X
dy= GLOB_EYEPOS_Y - GLOB_TARGPOS_Y

rotx 90

if SYMB_MIRRORED then
  roty SYMB_ROTANGLE
else
  roty -SYMB_ROTANGLE
endif

if abs(GLOB_EYEPOS_X-GLOB_TARGPOS_X)&amp;lt;EPS then
  if GLOB_EYEPOS_Y&amp;gt;GLOB_TARGPOS_Y then roty 180
else
  alf=atn(abs(dy/dx))

  if SYMB_MIRRORED then
    if dx&amp;lt;0 and dy&amp;gt;0 then roty -(180-alf)
    if dx&amp;lt;0 and dy&amp;lt;0 then roty -(180+alf)
    if dx&amp;gt;0 and dy&amp;lt;0 then roty -(-alf)
    if dx&amp;gt;0 and dy&amp;gt;0 then roty -(alf)
  else
    if dx&amp;lt;0 and dy&amp;gt;0 then roty (180-alf)
    if dx&amp;lt;0 and dy&amp;lt;0 then roty (180+alf)
    if dx&amp;gt;0 and dy&amp;lt;0 then roty (-alf)
    if dx&amp;gt;0 and dy&amp;gt;0 then roty (alf)
  endif
  roty 90
endif

addx -ZZYZX/2*pictWidth/pictHeight
picture "picture", ZZYZX*pictWidth/pictHeight, ZZYZX, 1
del top&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 21 Oct 2025 12:55:19 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/680833#M10650</guid>
      <dc:creator>Akos Somorjai</dc:creator>
      <dc:date>2025-10-21T12:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: 2D drawing overlay in 3D view</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/694245#M10803</link>
      <description>&lt;P&gt;Interesting solution! Perhaps I could force a practical permanence by setting a large timeout (with Uint32 miliseconds I could set it to last 42 years hahahha), and maybe call the Show(Point3D) method whenever I detect the camera change. It's sad that it's only a AC29 feature, I would need from AC23 up to current, as demanded by my client.&amp;nbsp;This problem is tied to an add-on demand from this client, but the project is paused. Once it returns, I'll definitely test this workaround. Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 26 Feb 2026 12:50:38 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/694245#M10803</guid>
      <dc:creator>BrunoValads</dc:creator>
      <dc:date>2026-02-26T12:50:38Z</dc:date>
    </item>
    <item>
      <title>Re: 2D drawing overlay in 3D view</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/694246#M10804</link>
      <description>&lt;P&gt;That's an interesting solution! And I see it working from AC23 up to current. As I said in my previous reply, once this project returns&lt;SPAN&gt;&amp;nbsp;I'll definitely test this workaround. Thank you so much!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Feb 2026 12:51:41 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/694246#M10804</guid>
      <dc:creator>BrunoValads</dc:creator>
      <dc:date>2026-02-26T12:51:41Z</dc:date>
    </item>
    <item>
      <title>Re: 2D drawing overlay in 3D view</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/694304#M10805</link>
      <description>&lt;P&gt;I think you could use the billboard people object(s), and just attach a custom image...&amp;nbsp;&lt;BR /&gt;there are also out of the box third party solutions that may be better for what you are trying to accomplish. I can't remember which application a past firm used, but it was similar to the navigable realtor models; "click here to move camera position"&lt;/P&gt;</description>
      <pubDate>Thu, 26 Feb 2026 17:46:48 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/2D-drawing-overlay-in-3D-view/m-p/694304#M10805</guid>
      <dc:creator>Patrick M</dc:creator>
      <dc:date>2026-02-26T17:46:48Z</dc:date>
    </item>
  </channel>
</rss>

