<?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: Novice GDL question - which 3D object type to use? in GDL</title>
    <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367630#M618</link>
    <description>&lt;P&gt;Thanks David, I did find CROOF, but I hadn't got around to testing it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The POLY2 command basically ends up back at the start point. Apparently some commands require that, and it enables me to take exactly the same set of coordinates for use in every command.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Laziness I guess!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've added a signature - thanks!&lt;/P&gt;</description>
    <pubDate>Mon, 16 Jan 2023 11:02:54 GMT</pubDate>
    <dc:creator>Jim Allen</dc:creator>
    <dc:date>2023-01-16T11:02:54Z</dc:date>
    <item>
      <title>Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367366#M609</link>
      <description>&lt;P&gt;Apologies if this has been covered elsewhere, I've been looking at a &lt;STRONG&gt;lot&lt;/STRONG&gt; of GDL posts and documentation, and I've both learned a lot and been very confused, probably both in equal measure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create an object which is in effect a 2D and 3D gradient labelling tool. I want to insert it onto a mesh, and then stretch the length and rotate as required, then go to the 3D window and use a hotspot to anchor the non-base end of the symbol to a point on the mesh to give me the z height difference to calculate the slope, and have the gradient displayed in 2d and/or 3D with options for angle, percentage or slope ratio.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The purpose of this object is twofold, the first is simply to label gradients in 3D. Where I work, most of my sites have slopes and gradients. I often have deal with site gradients and cut and fill, so use terrain modelling on most projects. Designing ramps is a ball-ache, and they are expensive and ugly to construct. If I can design them out, so much the better.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any slope shallower than 1:20 is a 'gradient path' and doesn't need all the complexity of a ramp.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I like to use meshes in 3D and push and pull the nodes to shape the terrain as part of my design approach. Having a tool like this would actually make the design process a lot easier because I could push and pull my mesh, adjust the label and check compliance.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I started with the Archicad Slope 25 symbol which I have duplicated and edited. This is a screenshot of the modified object:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2023-01-13 at 10.49.53.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33343iB861C202FAC8EBA2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-13 at 10.49.53.png" alt="Screenshot 2023-01-13 at 10.49.53.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is broadly how it's scripted:&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="Screenshot 2023-01-12 at 16.25.24.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33342i86F88BE9A2064C34/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-12 at 16.25.24.png" alt="Screenshot 2023-01-12 at 16.25.24.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; So far so good. I can take the values for the polyline and hotspots and translate them to 3D, and hopefully that will work except I'm not sure which script to use.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I in effect want is to be able to define a 'slab' which will rotate in 3d (or 'tilt') when I move the editing hotspot in the z axis, so it looks something like this:&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="Screenshot 2023-01-13 at 10.27.20.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33340iD0D9DA8B5858D839/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-13 at 10.27.20.png" alt="Screenshot 2023-01-13 at 10.27.20.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;Without the circles and labels obviously.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The 3D text will be in a similar position to the 2D text if things work out - but inclined in the plane of the arrow. I want the 2D and 3D appearance to be ostensibly the same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is a lot of information on GDL, but not all of it is clear, simple and comprehensive, and it doesn't seem to tell you what the properties of them all are, and what their limitations are, and what they are best suited to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Should I use a PRISM for this, or can I use an EXTRUDE instead? I just want to translate the 2d xy coordinates to 3D (because it seems easiest and I'm &lt;EM&gt;very&lt;/EM&gt; new at this, and still a bit of a GDL idiot) and have the geometry update itself when I move the 3d hotspot.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Alternatively - is there a better option available that I have missed. Aligning the 3d text will require some head-scratching, but one thing at a time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help and guidance would be greatly appreciated!&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jan 2023 11:45:34 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367366#M609</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-13T11:45:34Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367381#M610</link>
      <description>&lt;P&gt;I would use a tube&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jan 2023 14:47:59 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367381#M610</guid>
      <dc:creator>SenecaDesignLLC</dc:creator>
      <dc:date>2023-01-13T14:47:59Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367391#M611</link>
      <description>&lt;P&gt;So in effect the profile I have drawn to create the tube would be extruded vertically I guess - makes sense, because if I have a 3D hotspot at either end of the profile, once one is at a different Z height, the geometry should resolve itself.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately that's the only thing about the TUBE script that makes sense to me!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've tried EXTRUDE, PRISM, POLY and SLAB - they all work in the sense of creating the 3D shape, but don't allow me to drag the hotspot in the Z plane.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my 3D script:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;HOTSPOT 0,0,0,unID :	unID=unID+1

HOTSPOT 0,0,0,unID,a,1+128 :unID=unID+1
HOTSPOT a,0,0,unID,a,2 :unID=unID+1
HOTSPOT -1,0,0,unID,a,3 :unID=unID+1


!extrude  6,      1+2+4+16+32+64+128,      
!        0, 		0,     	0, 
!        B/2, 		-B/2, 	1,
!        A-(B/2),	-B/2, 	1, 
!	 A,		0,	1,
!        A-(B/2),	B/2, 	1, 
!	 B/2,		B/2,	-1


!PRISM_  6,      0.005,      
!        0, 		0,     	15, 
!        B/2, 		-B/2, 	15,
!        A-(B/2),	-B/2, 	15, 
!	 A,		0,	15,
!        A-(B/2),	B/2, 	15, 
!	 B/2,		B/2,	15


!poly  6,          
!        0, 		0,
!        B/2, 		-B/2,
!        A-(B/2),	-B/2,
!	 A,		0,
!        A-(B/2),	B/2,
!	 B/2,		B/2

SLAB  6,      0.005,      
        0, 		0,     	0, 
        B/2, 		-B/2, 	0,
        A-(B/2),	-B/2, 	0, 
	A,		0,	0,
        A-(B/2),	B/2, 	0, 
	B/2,		B/2,	0&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do not understand the TUBE syntax at all. That's not at all for novices! It's not documented in the &lt;EM&gt;Object Making with GDL&lt;/EM&gt; or &lt;EM&gt;GDL Cookbook&lt;/EM&gt; guidance.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've looked at the RULED option, which is a lot simpler, would that work in the same way?&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jan 2023 16:20:21 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367391#M611</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-13T16:20:21Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367414#M612</link>
      <description>&lt;P&gt;Hi Jim,&lt;/P&gt;&lt;P&gt;Way out of my depth here (a GDL newbie myself), but after reading your post I'm wondering: Do you want a label that responds to your mesh edits, or an object that you use to set the mesh edits? &amp;nbsp;On reflection, I'm thinking the latter, unless I'm missing something in your post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With that, what I might consider is using the AC Ramp object (straight or curved) scripting to your advantage, since those objects already have 3d shapes, variable rise and run parameters and calcs, and resulting 2d labels. &amp;nbsp;Maybe the result is a 'simpler gradient object' from the ramp object which has a 3d top-of-gradient and 3d bottom-of-gradient shape (I'm thinking something like a surveyor's cylinder monument or a simple rectangular terminus object) with a variable distance parameter in between. &amp;nbsp;Perhaps a narrow centerline shape if you want to convey that path. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You set the desired distance and grade value and plant one end at the start and let your gradient object, based on gradient and distance (like the ramp object), set the other end. &amp;nbsp;Then you snap your mesh to meet up at the terminal points.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I see you also want the label in 3d, but that is beyond my present horizon, too ! &lt;span class="lia-unicode-emoji" title=":expressionless_face:"&gt;😑&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The example here is just the Ramp object with transitions and flanges off, thickness set to 1", and an AC26 Elevation Label added on plan.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;&lt;IMG src="http://community.graphisoft.com/t5/image/serverpage/image-id/55942i944E335D3F341CDA/image-size/large?v=v2&amp;amp;px=999" border="0" alt="Ramp with Trans Off and AC26 Elev Label.png" title="Ramp with Trans Off and AC26 Elev Label.png" /&gt;</description>
      <pubDate>Sat, 14 Jan 2023 07:48:41 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367414#M612</guid>
      <dc:creator>Marc H</dc:creator>
      <dc:date>2023-01-14T07:48:41Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367502#M613</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;&lt;A class="" href="https://community.Graphisoft.com/t5/user/viewprofilepage/user-id/4882" target="_self"&gt;Jim&lt;/A&gt;:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;You should look at the&amp;nbsp;&lt;/SPAN&gt;&lt;FONT color="#0000ff"&gt;CROOF_&lt;/FONT&gt;&lt;FONT color="#000000"&gt; command, as it is&amp;nbsp;similar&amp;nbsp;to the Roof Tool, it can create a 3D slab with slope. You could use the &lt;FONT color="#0000FF"&gt;PRISM&lt;/FONT&gt; command, but will need to use one of the &lt;FONT color="#0000FF"&gt;ROT&lt;/FONT&gt; commands before it to create the angle, and calculate the &lt;FONT color="#0000FF"&gt;PRISM&lt;/FONT&gt; locations based on the angle. You should be able to use the points you define for the 2D&amp;nbsp;polygon as part of this element. [The &lt;FONT color="#0000FF"&gt;Poly2_&lt;/FONT&gt; command in your example does not make sense to me, as it is calling for 7 nodes, but I only see 6 in the script.] This is a good project to get into GDL: it is&amp;nbsp;relatively simple and serves a need for you, rather than being an abstract&amp;nbsp;&lt;SPAN&gt;exercise.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;You should add a Signature to your Profile (click the Profile button near the top of this page) with your ArchiCAD version and operating system (see mine for an example) for more accurate help in this forum.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;David&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 14 Jan 2023 14:20:05 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367502#M613</guid>
      <dc:creator>David Maudlin</dc:creator>
      <dc:date>2023-01-14T14:20:05Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367515#M614</link>
      <description>&lt;P&gt;hi Jim , try next&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;!---------- THIS IS YOU 2D SCRIPT-------------

!pen outline_pen
!set line_type "solid line"
!fill fill2
poly2_ 7, 1,
0, 0, 13,
B/2, -B/2, 13,
A-B/2, -B/2, 13,
A, 0, 13,
A-B/2, B/2, 13,
B/2, B/2, 13,
0, 0, 1


!----------- ADD THIS IN 3D-------------

PRISM_ 7, 0.01,
0,0,15,
B/2, -B/2, 15,
A-B/2, -B/2, 15,
A, 0, 15,
A-B/2, B/2, 15,
B/2, B/2, 15,
0, 0, 15&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;try it and tell me how it works, then I can help you with the text&lt;/P&gt;</description>
      <pubDate>Sun, 15 Jan 2023 22:30:49 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367515#M614</guid>
      <dc:creator>Jorge_Arreguin</dc:creator>
      <dc:date>2023-01-15T22:30:49Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367616#M615</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;a question you didn't ask, but could help making your object easier to use: you can merge the 2d rotation - length-editing - height editing workflow to one step with a hotspot which is free to move in space. Read &lt;A href="https://gdl.Graphisoft.com/gdl-basics/hotspots-graphical-editing" target="_blank" rel="noopener"&gt;https://gdl.Graphisoft.com/gdl-basics/hotspots-graphical-editing&lt;/A&gt; to see how it can be done.&lt;/P&gt;
&lt;P&gt;From there your script can calculate the projections of the 3D vector and the various angles between the projections and the axes. I'd transform to the tilted plane, and model &lt;A href="https://gdl.Graphisoft.com/reference-guide/planar-shapes-in-3d#POLY__gdlcommand" target="_blank" rel="noopener"&gt;flat shapes in 3D&lt;/A&gt; using POLY. For the text additional transformations are needed to untilt it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 09:41:21 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367616#M615</guid>
      <dc:creator>Peter Baksa</dc:creator>
      <dc:date>2023-01-16T09:41:21Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367624#M616</link>
      <description>&lt;P&gt;Hi Peter, that is undoubtedly the best way to do it (hotspot and calculations for the plane to draw a poly) but it's a programmer's solution and is a lot more complex for someone like me, whose GDL skills are at a low level.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Most of the GDL guides are written from a programming point of view, which is not ideal for non-programmers. It's okay, because a great many people have managed to learn the language, but I think it represents a barrier to novices. There's a lot of it, it's complex, and daunting, which means dedicating quite a lot of time to learning. Fortunately workload is pretty light at the moment, which allows me chance to mess around, but I have spent several days experimenting just to get where I am, which isn't really very far &lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This phrase&amp;nbsp;&lt;SPAN&gt;&lt;EM&gt;calculate the projections of the 3D vector and the various angles between the projections and the axes&lt;/EM&gt;&amp;nbsp;is precisely the sort of thing that fills me with dread!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;It's way more complicated than building extruded geometry in the XY plane that can be inclined by moving a hotspot in 3D, and relies on quite a bit of GDL knowledge, way more than I currently have, and learning how to approach the syntax and mathematics and then scripting something like that is a whole world away from what I normally do. The only mathematics I do is area calculations and percentages, and the occasional simple formula for components.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 10:49:10 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367624#M616</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-16T10:49:10Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367629#M617</link>
      <description>&lt;P&gt;Hi Jorge,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the assistance, this is what my script created:&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="Screenshot 2023-01-16 at 10.53.06.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33431i7D173401CCF19218/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-16 at 10.53.06.png" alt="Screenshot 2023-01-16 at 10.53.06.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;This is what yours created:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2023-01-16 at 10.52.30.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33432iA143C23C9F2FB279/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-16 at 10.52.30.png" alt="Screenshot 2023-01-16 at 10.52.30.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;My shape works fine, it's the inability to move the 3D hotspot in the Z axis, and have the geometry update that's the issue. I don't think the PRISM option is the right one.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;David Maudlin's CROOF suggestion, looks like it might work in the way I want, it sounds like a better option. I really don't want to have to script all the trigonometry...&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="apocalypse-now-marlon-brando.gif" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33433i7D1129B49660BDB9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="apocalypse-now-marlon-brando.gif" alt="apocalypse-now-marlon-brando.gif" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 10:59:48 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367629#M617</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-16T10:59:48Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367630#M618</link>
      <description>&lt;P&gt;Thanks David, I did find CROOF, but I hadn't got around to testing it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The POLY2 command basically ends up back at the start point. Apparently some commands require that, and it enables me to take exactly the same set of coordinates for use in every command.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Laziness I guess!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've added a signature - thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 11:02:54 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367630#M618</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-16T11:02:54Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367631#M619</link>
      <description>&lt;P&gt;Not a bad suggestion at all, but it has no 3d labelling, no ability to have the gradient defined by a 3d hotspot, the shape isn't really an arrow, and it has no 3d label!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's a lot more complicated, so I'm not going to be able to decode the script easily.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Great idea though!&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 11:07:03 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367631#M619</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-16T11:07:03Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367647#M620</link>
      <description>&lt;P&gt;working fine no problem, prism is the most simply solution, have a nice day&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="simple prisma.png" style="width: 912px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33437i2B805B5F8EC53973/image-size/large?v=v2&amp;amp;px=999" role="button" title="simple prisma.png" alt="simple prisma.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 14:09:25 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367647#M620</guid>
      <dc:creator>Jorge_Arreguin</dc:creator>
      <dc:date>2023-01-16T14:09:25Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367660#M621</link>
      <description>&lt;P&gt;I'm really struggling with this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can create the 2d geometry and text and hotspot, but I just can't script hotspot 2 so I can move it in the Z direction.&lt;/P&gt;&lt;P&gt;This is what I'm trying to do:&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="Screenshot 2023-01-16 at 18.15.25.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33441iFD3A0A4ADA121C25/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-16 at 18.15.25.png" alt="Screenshot 2023-01-16 at 18.15.25.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Calculating the angle/gradient is easy enough, but I can't work out how to get what I have labelled as Hotspot E to be editable in the Z direction, and then I would have to read the Z coordinate to create the text value and 3d text rotation angle.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I really don't want to script the 3d geometry nodes by calculating them all. That's more mathematics than I have done for over 40 years, and I can do without that cognitive stress!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not angling for someone to write the whole script for me, I won't learn much that way.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what my 3d script looks like:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;	HOTSPOT 0,0,0,unID :	unID=unID+1

	HOTSPOT 0,0, 0,		unID,	a,	1+128+256 :unID=unID+1 !base
	HOTSPOT a,0,0,		unID,	a,	2 :unID=unID+1		!moving
	HOTSPOT -1,0,0,		unID,	a,	3 :unID=unID+1	!reference

!!!!!!!!!!!!!!!!!!!!!!
LIN_ 0,0,0,	A,0,0
HOTLINE 0,0,0,	A,0,0, unID :unID=unID+1
!!!!!!!!!!!!!!!!!!!!!!

!
!"shape3D":
!extrude  6,      1+2+4+16+32+64+128,      
!       0, 		0,     	0, 
!       B/2, 		-B/2, 	1,
!       A-(B/2),	-B/2, 	1, 
!	A,		0,	1,
!       A-(B/2),	B/2, 	1, 
!	B/2,		B/2,	-1


!PRISM_  6,      0.005,      
!       0, 		0,     	15, 
!       B/2, 		-B/2, 	15,
!       A-(B/2),	-B/2, 	15, 
!	A,		0,	15,
!       A-(B/2),	B/2, 	15, 
!	B/2,		B/2,	15


!PRISM_ 	7, 	0.01,
!		0,	0,		15,
!		B/2, 	B/2, 	15,
!		A-B/2, 	-B/2, 	15,
!		A, 	0, 		15,
!		A-B/2,	B/2, 	15,
!		B/2, 	B/2, 	15,
!		0, 	0, 		15

!poly  6,          
!       0, 		0,
!       B/2, 		-B/2,
!       A-(B/2),	-B/2,
!	A,		0,
!       A-(B/2),	B/2,
!	B/2,		B/2

!SLAB  6,      0.005,      
!       0, 		0,     	0, 
!       B/2, 		-B/2, 	0,
!       A-(B/2),	-B/2, 	0, 
!	A,		0,	0,
!       A-(B/2),	B/2, 	0, 
!	B/2,		B/2,	0

!TUBE{2} surf_3d, surf_3d, surf_3d,				!define surfaces
!	6, 			1, 		1+2+16+32,	!no of nodes in xy, no of nodes to extrude, mask
!        0, 		0,     	0, 	surf_3d,	
!        B/2, 		-B/2, 	0, 	surf_3d,
!        A-(B/2),	-B/2, 	0,  	surf_3d,
!	 A,		0,	0, 	surf_3d,
!        A-(B/2),	B/2, 	0,  	surf_3d,
!        B/2,		B/2,	0, 	surf_3d,
!        0,		0,	0.01, 	0

!SWEEP	6,	1,	0,	1,	1+2+4+16+32,
!       0, 		0,		0,
!       B/2, 		-B/2,	0,
!       A-(B/2),	-B/2,	0,
!	A,		0,		0,
!        A-(B/2),	B/2,	0,
!	B/2,		B/2,	0,
!	0,		0,	0	

CROOF_ surf_3d, surf_3d, surf_3d,				!define surfaces
		7,										!no of nodes in xy
		0, 			0,							!direction vector start
		A,			0,							!direction vector end
		0,										!height of defining edge at bottom
		90,										!angle perp to bottom
		0.005,						 			!extruded thickness
        0, 		0,     	0, 	15,	
        B/2, 		-B/2, 	0, 	15,
        A-(B/2),	-B/2, 	0,  	15,
	A,		0,	0, 	15,
        A-(B/2),	B/2, 	0,  	15,
	B/2,		B/2,	0, 	15,
        0,		0,	0.01, 	-1


!"Text3D":
Addz 0.0055
Addx A/2
	ROTX 0
	ROTY 0	
    style "3D_text_style"
    pen tpen
 	material tpen_3d
	leveltxt = txt_prefix + " " + txt_suffix		! add prefix to 3d text
	txtwidth = STW (leveltxt)/1000	
	pen   tpen_3d
    text  0, 0, txt_prefix + " " + Grad_type   	! draw text in 3D&lt;/LI-CODE&gt;&lt;P&gt;I make no apologies for showing the 3d geometry options I have tried. Most work, but they are based on the incorrect assumption that I can drag the second hotspot in the z axis, and the geometry will 'look after itself'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This may well be wrong, but I can't tell because I can't drag the hotspot in the z axis!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 18:35:08 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367660#M621</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-16T18:35:08Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367691#M622</link>
      <description>&lt;P&gt;ok , i got the whole idea, sorry for don't understand in the past , let me help you, give me a time please&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 22:43:11 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367691#M622</guid>
      <dc:creator>Jorge_Arreguin</dc:creator>
      <dc:date>2023-01-16T22:43:11Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367709#M623</link>
      <description>&lt;P&gt;You need kinda simple trigonometry&lt;/P&gt;&lt;P&gt;&lt;A href="https://drive.google.com/file/d/1O-YqzRxGduRC_jdWYH-WUY34oGZno4rO/view?usp=drivesdk" target="_self"&gt;basic slope&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2023 06:52:33 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367709#M623</guid>
      <dc:creator>A_ Smith</dc:creator>
      <dc:date>2023-01-17T06:52:33Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367724#M624</link>
      <description>&lt;P&gt;The math for your 3 hotspots if you wish to go that way;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;x =&amp;nbsp; ( ramp_length ) * cos ( angle_off_horizontal )&lt;/EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;EM&gt;! cos&lt;SPAN&gt;Θ = A / H&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;y = ( ramp_length ) * sin ( angle_off_horizontal )&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! sin&lt;SPAN&gt;Θ = O / H&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;z =&amp;nbsp; ( ramp_length ) * tan ( ramp_slope )&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! tan&lt;SPAN&gt;Θ = O / A&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Since you are wanting to insert x, y and z then use that to get your slope and rotate your object you can start with the following;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;ramp_length = sqr ( x^2 +&amp;nbsp;y^2 )&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! pythagoras&lt;/EM&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;ramp_slope = atn ( z / ramp_length )&amp;nbsp; &amp;nbsp; &amp;nbsp;! tan&lt;SPAN&gt;Θ = O / A rearranged&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;angle_off_horizontal = atn ( y / x )&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! tan&lt;SPAN&gt;Θ = O / A rearranged&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ling.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ps. You will need a hotspot for each axis you wish to move along. When stacked on top of each other, they will act as one with the correct math.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2023 08:36:04 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367724#M624</guid>
      <dc:creator>Lingwisyer</dc:creator>
      <dc:date>2023-01-17T08:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367733#M625</link>
      <description>&lt;P&gt;&lt;a href="https://community.graphisoft.com/t5/user/viewprofilepage/user-id/4882"&gt;@Jim Allen&lt;/a&gt;&amp;nbsp;If you are struggling with your Hotspots, have you considered preceding them using the ROT / ROT2 and ADD / ADD2 commands to simplify their placement &amp;amp; values e.g. in 3D use ADD a, b/2, 0 and ROTy 90 to set up your 3D Z hotspot using the same syntax as A, or shorter coding can be achieved omitting the ROTy &amp;amp; putting the right values in for the Z hotspot values. I find removing complex value entries from the Hotspot values reduces not-so-obvious user typo errors.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2023 09:47:16 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367733#M625</guid>
      <dc:creator>DGSketcher</dc:creator>
      <dc:date>2023-01-17T09:47:16Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367776#M626</link>
      <description>&lt;P&gt;Jim:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A few suggestions to help simplify your moving hotspot code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Rather than trying to increment the unique IDs (&lt;FONT color="#0000FF"&gt;unID&lt;/FONT&gt;), just hard code them. You could use &lt;FONT color="#0000FF"&gt;101&lt;/FONT&gt;, &lt;FONT color="#0000FF"&gt;102&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;and &lt;FONT color="#0000FF"&gt;103&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;so they correspond to the types of moving hotspots you need here. This would eliminate the&amp;nbsp;&lt;FONT color="#0000FF"&gt;unID&lt;FONT color="#000000"&gt; as a variable and the &lt;FONT color="#0000FF"&gt;:unID=unID+1&amp;nbsp;&lt;FONT color="#000000"&gt;from your code.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;2. Your hotspot should be moving in the Z direction, so your coding should be using the 3rd Hotspot variable (Hotspot x, y, &lt;FONT color="#FF0000"&gt;Z&lt;/FONT&gt;, unID,&amp;nbsp;paramReference,&amp;nbsp;flag).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This will probably be the hardest part of the coding, but once you get it working it will be a great reference for the other 3D aspects of your object: the 3D hotspot will show you where the end of the slab and 3D text need to be.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for adding your signature.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2023 15:22:48 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367776#M626</guid>
      <dc:creator>David Maudlin</dc:creator>
      <dc:date>2023-01-17T15:22:48Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367780#M627</link>
      <description>&lt;P&gt;do you want the 3d label measure same distance in plan view even if it's rotated?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2023 15:52:32 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367780#M627</guid>
      <dc:creator>Jorge_Arreguin</dc:creator>
      <dc:date>2023-01-17T15:52:32Z</dc:date>
    </item>
    <item>
      <title>Re: Novice GDL question - which 3D object type to use?</title>
      <link>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367785#M628</link>
      <description>&lt;P&gt;That object is really helpful &amp;nbsp;- thanks a lot!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've been working through it and although it's simple in the sense of few lines of script - I don't really understand it!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example, this I kind of understand:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;"hotspots":
	hotspot 0, 0, 0

	hotspot 0, 0, ZZYZX, hsID=hsID+1, A, 1+128
	hotspot A, 0, ZZYZX, hsID=hsID+1, A, 2
	hotspot -1, 0, ZZYZX, hsID=hsID+1, A, 3&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You have scripted the zzyzx as the z coordinate. I'm not sure how this relates to the object origin. Is it the default z coordinate of the initial object position?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This section I guess places the second hotpot which is movable in the z direction:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;	hotspot A, 0, 0, hsID=hsID+1, ZZYZX, 1+128
	hotspot A, 0, ZZYZX, hsID=hsID+1, ZZYZX, 2
	hotspot A, 0, -1, hsID=hsID+1, ZZYZX, 3&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My script was only using a single hotspot, and when I thought I was trying to drag a second one to change the Z height, I was just moving the length node of the first hotspot. Your script makes a lot of sense, and that was what was the biggest barrier - thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I managed to replace the PROJECT script with separate 2d geometry. That allows me to have different labels in 2d and 3d.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've added the script for the 3d text, which works, but the position in 3d is wrong.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is where it currently is:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2023-01-17 at 16.20.16.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/33478iA16586A072A2FCC7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-01-17 at 16.20.16.png" alt="Screenshot 2023-01-17 at 16.20.16.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;The text anchor is centre/centre, at A/2 but the z point is the same as the base hotspot. I'll need to use some trigonometry to elevate it with an ADDZ.&amp;nbsp;  &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The plane subroutine is new to me because I have never looked up the PUT commands.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;"plane":
	roty -ang

	si=15
	put 0, 0, si
	put 0.5*B, 0.5*B, si
	put trueA-0.5*B, 0.5*B, si
	put trueA, 0, si
	put trueA-0.5*B, -0.5*B, si
	put 0.5*B, -0.5*B, si
	put 0, 0, si
	poly_ nsp/3, get(nsp)

	del 1
return&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I understand that the roty command rotates the drawing plane for creating the geometry, and that each put command creates a node defining a shape coplanar to xy.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The bit I don't understand is&amp;nbsp;&lt;EM&gt;poly_ nsp/3, get(nsp)&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I understand the POLY_ command, but I don't understand what &lt;EM&gt;nsp&lt;/EM&gt; is, and what the GET command does. It's not a defined variable, and it seems to be used before it gets any data. It doesn't of course, otherwise it wouldn't work, but it does - which has really confused me!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks &lt;EM&gt;very&lt;/EM&gt; much for your help, it has made all the difference!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2023 16:27:38 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/GDL/Novice-GDL-question-which-3D-object-type-to-use/m-p/367785#M628</guid>
      <dc:creator>Jim Allen</dc:creator>
      <dc:date>2023-01-17T16:27:38Z</dc:date>
    </item>
  </channel>
</rss>

