<?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: Smart Hotspots in Libraries &amp; objects</title>
    <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3754#M41594</link>
    <description>Barry, you can move the 3D hotspot in xyz dimensions, but only two palettes of coordinates will show.&lt;BR /&gt;
&lt;BR /&gt;
Look at this example, Tentmaker_1.gsm, the interface allows to choose z or xy or xyz coordinates for 3D hotspots.&lt;BR /&gt;
&lt;A href="http://archicad-talk.graphisoft.com/viewtopic.php?t=3183" target="_blank"&gt;&lt;LINK_TEXT text="http://archicad-talk.graphisoft.com/vie ... php?t=3183"&gt;http://archicad-talk.graphisoft.com/viewtopic.php?t=3183&lt;/LINK_TEXT&gt;&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
Unfortunatelly with xyz, the control is not easy, because the shift key does not work as expected with z axis. &lt;BR /&gt;
The hotspot feature needs some improvement.</description>
    <pubDate>Tue, 02 Nov 2004 09:34:44 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2004-11-02T09:34:44Z</dc:date>
    <item>
      <title>Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3745#M41585</link>
      <description>&lt;DIV class="actalk-migrated-content"&gt;&lt;T&gt;I'm looking for a tutorial/info on how to script 2d smart hotspots. Does anyone know where I could find one?&lt;/T&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 02 Dec 2003 14:33:38 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3745#M41585</guid>
      <dc:creator>Red</dc:creator>
      <dc:date>2003-12-02T14:33:38Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3746#M41586</link>
      <description>&lt;BLOCKQUOTE&gt;Red wrote:&lt;BR /&gt;I'm looking for a tutorial/info on how to script 2d smart hotspots. Does anyone know where I could find one?&lt;/BLOCKQUOTE&gt;

In the help file @ HOTSPOT  &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_wink.gif" style="display : inline;" /&gt; &lt;BR /&gt;
&lt;BR /&gt;
HOTSPOT &lt;BR /&gt;
HOTSPOT  x, y, z [, unID [, paramReference,&lt;BR /&gt;
         flags] [, displayParam]]&lt;BR /&gt;
HOTSPOT2 x, y  [, unID [, paramReference, flags][, displayParam]]&lt;BR /&gt;
&lt;BR /&gt;
unID: unique identifier, which must be unique among the hotspots defined in the library part. &lt;BR /&gt;
&lt;BR /&gt;
paramReference: parameter that can be edited by this hotspot using the graphical hotspot based parameter editing method. &lt;BR /&gt;
&lt;BR /&gt;
displayParam: parameter to display in the information palette when editing the paramRefrence parameter. Members of arrays can be passed as well. &lt;BR /&gt;
&lt;BR /&gt;
Examples of valid arguments: &lt;BR /&gt;
&lt;BR /&gt;
   D, Arr[5], Arr[2*I+3][D+1], etc.&lt;BR /&gt;
&lt;BR /&gt;
flags: hotspot's type + hotspot's attribute, &lt;BR /&gt;
&lt;BR /&gt;
type:&lt;BR /&gt;
1: length type editing, base hotspot&lt;BR /&gt;
2: length type editing, moving hotspot&lt;BR /&gt;
3: length type editing, reference hotspot (always hidden) &lt;BR /&gt;
&lt;BR /&gt;
4: angle type editing, base hotspot &lt;BR /&gt;
&lt;BR /&gt;
5: angle type editing, moving hotspot &lt;BR /&gt;
&lt;BR /&gt;
6: angle type editing, center of angle (always hidden) &lt;BR /&gt;
&lt;BR /&gt;
7: angle type editing, reference hotspot (always hidden) &lt;BR /&gt;
&lt;BR /&gt;
attribute can be a combination of the following values or zero:&lt;BR /&gt;
128: hide hotspot (meaningful for types: 1,2,4,5) &lt;BR /&gt;
&lt;BR /&gt;
256: editable base hotspot (for types: 1,4) &lt;BR /&gt;
&lt;BR /&gt;
512: reverse the angle in 2D (for type 6) &lt;BR /&gt;
&lt;BR /&gt;
To edit a length type parameter, three hotspots must be defined with types 1, 2 and 3. The positive direction of the editing line is given by the vector from the reference hotspot to the base hotspot. The moving hotspot must be placed along this line at a distance determined by the associated parameter's value, measured from the base hotspot. &lt;BR /&gt;
&lt;BR /&gt;
To edit an angle type parameter, four hotspots must be defined with types 4, 5, 6 and 7. The plane of the angle is perpendicular to the vector that goes from the center hotspot to the reference hotspot. The positive direction in measuring the angle is counter-clockwise if we look at the plane from the reference hotspot. In 2D the plane is already given, so the reference hotspot is ignored, and the positive direction of measuring the angle is by default counter-clockwise. This can be changed to clockwise by setting the 512 attribute flag for the center hotspot (type 6). To be consistent, the vectors from the center hotspot to the moving and the base hotspots must be perpendicular to the vector from the center to the reference hotspot. The moving hotspot must be placed at an angle determined by the associated parameter measured from the base hotspot around the center hotspot. &lt;BR /&gt;
&lt;BR /&gt;
If several sets of hotspots are defined to edit the same parameter, hotspots are grouped together in the order of the execution of the hotspot commands. If the editable attribute is set for a base hotspot, the user can also edit the parameter by dragging the base hotspot. Since the base hotspot is supposed to be fixed in the object's coordinate frame (i.e. its location must be independent of the parameter that is attached to it), the whole object is dragged or rotated along with the base point. (As the parameter's value is changing, the moving hotspot will not change its location.) &lt;BR /&gt;
&lt;BR /&gt;
Two or three length type sets of hotspots can be combined to allow editing of two or three parameters with only one dragging. If two are combined, the motion of the hotspot is no longer constrained to a line but to the plane determined by the two lines of each set of length editing hotspots. In 3D, the combination of three sets of length editing hotspots allows the hotspot to be placed anywhere in space. The two lines must not be parallel to each other, and the three lines must not be on the same plane. A combined parameter editing operation is started if, at the location of the picked point, there are two or three editable hotspots (moving or editable base) with different associated parameters. If parameters are designed for combined editing, the base and reference hotspots are not fixed in the object's coordinate frame, but must move as the other parameter's value changes. See illustration and example .</description>
      <pubDate>Tue, 02 Dec 2003 16:39:52 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3746#M41586</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2003-12-02T16:39:52Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3747#M41587</link>
      <description>&lt;BLOCKQUOTE&gt;Red wrote:&lt;BR /&gt;I'm looking for a tutorial/info on how to script 2d smart hotspots. Does anyone know where I could find one?&lt;/BLOCKQUOTE&gt;

Its my next big challenge in the Cookbook 4 authoring.&lt;BR /&gt;
&lt;BR /&gt;
I was in Denmark for 3 days doing a sort of masterclass with the Undergraduates in Aarhus who are doing an excellent GDL project to study industrialised building components - and perhaps 60-70% of my tutoring time was spent giving their objects super smart hotspots. Once you have identified what you want the hotspots to do, the actual procedure is not too difficult once you have done it enough times not to need to keep consulting the tutorial/manual. Its very 'copy and paste'  - once you have done the first one the rest follow more easily.&lt;BR /&gt;
&lt;BR /&gt;
Sometime ago in Feb/March 2003 I printed out a PDF tutorial that I must have got from GS on updates from 7 to 8 which was quite good on the hotspots and which taught me how to do it! it was better than the help menu in archiCAD which is short of examples.&lt;BR /&gt;
&lt;BR /&gt;
I have done one exercise in the CB with the hotspots, but still need to write a primer on the idea behind it, and make it easier to read than GS's somehow.</description>
      <pubDate>Sun, 11 Jan 2004 15:16:52 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3747#M41587</guid>
      <dc:creator>david nicholson-cole</dc:creator>
      <dc:date>2004-01-11T15:16:52Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3748#M41588</link>
      <description>Sheesh, I havent been here in a while and cant believe I missed this post.&lt;BR /&gt;
&lt;BR /&gt;
I havent played with the angle editing but the length type is pretty fun. I added a feature to our objects that allow the user to drag the joist and beam labels across the length of the member.&lt;BR /&gt;
&lt;BR /&gt;
In the following example, &lt;B&gt;locx&lt;/B&gt; is the location of the label along the length of the joist (x-axis), &lt;B&gt;labl_v&lt;/B&gt; is a verticle placement either above or below the member. The first hotspot determines a start point, the second creates a vector or direction to move from the start point and the last is the moving point itself. I also borrowed a tip from DNC concerning the unique ID by increasing the number by 1 before each HOTSPOT statement. That way you dont have to keep track of which ID's you have used and it becomes more "Cut &amp;amp; Paste" friendly.&lt;BR /&gt;
&lt;BR /&gt;
hsp=hsp+1&lt;BR /&gt;
HOTSPOT2    0,      labl_v, hsp, locx, 1+128	! base&lt;BR /&gt;
hsp=hsp+1&lt;BR /&gt;
HOTSPOT2  -1",      labl_v, hsp, locx, 3	! vector&lt;BR /&gt;
hsp=hsp+1&lt;BR /&gt;
HOTSPOT2 locx,      labl_v, hsp, locx, 2	 !move-able&lt;BR /&gt;
TEXT2 locx,labl_v,lstr</description>
      <pubDate>Thu, 19 Feb 2004 18:15:14 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3748#M41588</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-02-19T18:15:14Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3749#M41589</link>
      <description>(... just maybe this tread isn't dead... &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_wink.gif" style="display : inline;" /&gt; )&lt;BR /&gt;
&lt;BR /&gt;
Okay, I've read these explanations for a while, and have tried to play around with them, but no luck. What I'm trying to do is insert some TEXT2 in a block at a specified default location (with a HOTSPOT2), but I'd like the user to be able to relocate it (hotspot and text) once the block is inserted by draging the hotspot to a new location.&lt;BR /&gt;
&lt;BR /&gt;
So what's the trick here.</description>
      <pubDate>Mon, 11 Oct 2004 20:25:21 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3749#M41589</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-10-11T20:25:21Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3750#M41590</link>
      <description>Hi Sergio, i finally understand what you tried to achieve with your post "Text treatment in GDL" on this same thread.&lt;BR /&gt;
Sorry, your question was not clear enough the first time. Try this&lt;BR /&gt;
&lt;BR /&gt;
unID=1      ! always declare the first unID&lt;BR /&gt;
!!! ------------  static hotspots ------------ &lt;BR /&gt;
HOTSPOT2  x1, y1, unID : unID=unID+1  ! first hotspot=anchor point&lt;BR /&gt;
HOTSPOT2  x2, y2, unID : unID=unID+1&lt;BR /&gt;
HOTSPOT2  xn, yn, unID : unID=unID+1&lt;BR /&gt;
&lt;BR /&gt;
!!! ------------  moveable hotspots ------------ &lt;BR /&gt;
!!! ------------ x location&lt;BR /&gt;
HOTSPOT2  0 , yy, unID, xx, 1+128 : unID=unID+1    ! base &lt;BR /&gt;
HOTSPOT2 -1 , yy, unID, xx, 3          : unID=unID+1    ! ref&lt;BR /&gt;
HOTSPOT2  xx, yy, unID, xx, 2         : unID=unID+1    ! moveable&lt;BR /&gt;
&lt;BR /&gt;
!!! ------------ y location&lt;BR /&gt;
HOTSPOT2 xx,  0 , unID, yy, 1+128 : unID=unID+1&lt;BR /&gt;
HOTSPOT2 xx, -1 , unID, yy, 3          : unID=unID+1&lt;BR /&gt;
HOTSPOT2 xx,  yy, unID, yy, 2         : unID=unID+1&lt;BR /&gt;
&lt;BR /&gt;
TEXT2 xx, yy, your text&lt;BR /&gt;
&lt;BR /&gt;
You have to declare xx and yy as lenght parameters, but you can hide them in the parameters windpw.</description>
      <pubDate>Tue, 12 Oct 2004 07:41:13 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3750#M41590</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-10-12T07:41:13Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3751#M41591</link>
      <description>FINALLY!!!!.... A HUGE thank you for this bit of code. I've been looking for something like this for the longest time. I always found ArchiCAD's help rather cryptic in some areas, and the GDL Cookbook is still not out. Makes figuring out new things rather tough.&lt;BR /&gt;
&lt;BR /&gt;
Now to understand the logic behind what is going on... and to finally start writing some useful GDL...  &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_biggrin.gif" style="display : inline;" /&gt;</description>
      <pubDate>Wed, 13 Oct 2004 19:20:58 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3751#M41591</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-10-13T19:20:58Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3752#M41592</link>
      <description>Is anyone having much luck with 3D editable hotspots &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_question.gif" style="display : inline;" /&gt; &lt;BR /&gt;
&lt;BR /&gt;
I am trying to move a point in the X, Y and Z directions at the same time.&lt;BR /&gt;
&lt;BR /&gt;
Seems impossible.&lt;BR /&gt;
Try as I might I can only get a dialogue box that allows me to change two values.&lt;BR /&gt;
&lt;BR /&gt;
Here is the 3D script I am using.&lt;BR /&gt;
&lt;BR /&gt;
!Stretchy x&lt;BR /&gt;
HOTSPOT 0, dist_y, dist_z, unID, dist_x, 1+128	!base&lt;BR /&gt;
HOTSPOT -1, dist_y, dist_z, unID, dist_x, 3		!reference&lt;BR /&gt;
HOTSPOT dist_x, dist_y, dist_z, unID, dist_x, 2	!moveable&lt;BR /&gt;
unID=unID+1&lt;BR /&gt;
&lt;BR /&gt;
!Stretchy y&lt;BR /&gt;
HOTSPOT dist_x, 0, dist_z, unID, dist_y, 1+128	!base&lt;BR /&gt;
HOTSPOT dist_x, -1, dist_z, unID, dist_y, 3		!reference&lt;BR /&gt;
HOTSPOT dist_x, dist_y, dist_z, unID, dist_y, 2	!moveable&lt;BR /&gt;
unID=unID+1&lt;BR /&gt;
&lt;BR /&gt;
!Stretchy z&lt;BR /&gt;
HOTSPOT dist_x, dist_y, 0, unID, dist_z, 1+128	!base&lt;BR /&gt;
HOTSPOT dist_x, dist_y, -1, unID, dist_z, 3		!reference&lt;BR /&gt;
HOTSPOT dist_x, dist_y, dist_z, unID, dist_z, 2	!moveable&lt;BR /&gt;
unID=unID+1&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
add dist_x, dist_y, dist_z&lt;BR /&gt;
sphere 0.1&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
With this I can only move in the X or Y direction.&lt;BR /&gt;
Only X and Y appear in the dialogue box.&lt;BR /&gt;
I can use the SHIFT button to constrain along either axis.&lt;BR /&gt;
&lt;BR /&gt;
Remark the X or Y hotspots out and then the Z value suddenly appears in the dialogue box.&lt;BR /&gt;
But using the SHIFT button to constrain only allows me to move in the X or Y direction (whichever was not commented out) and the Z value drops to zero.&lt;BR /&gt;
I must type in a value for Z - it can not be constrained with SHIFT.&lt;BR /&gt;
&lt;BR /&gt;
Ideally I would like to graphically move in all 3 directions with the ability to use the SHIFT button to constrain the X, Y or Z values.&lt;BR /&gt;
&lt;BR /&gt;
To quote from the on-line GDL help file: -&lt;BR /&gt;
"In 3D, the combination of three sets of length editing hotspots allows the hotspot to be placed anywhere in space. "&lt;BR /&gt;
&lt;BR /&gt;
And from the Archicad 8 Training Guide (page 192): -&lt;BR /&gt;
"Depending on their programming, GDL Objects can have smart editing hotspots in 3D. If you select such an object in 3D view, click a 3D hotspot and choose the horizontal or vertical stretch icon in the pet palette (whichever is appropriate), you will get both a visualfeedback of the available stretching range and the name of the value of the parameter you are modifying"&lt;BR /&gt;
&lt;BR /&gt;
Normally only the horizontal stretch button is available in the pet palette.&lt;BR /&gt;
The only way I can get the vertical stretch button to appear is if I use ZZYZX as my height variable.&lt;BR /&gt;
But still the dialogue box only shows the Z value and X OR Y, but not all three.&lt;BR /&gt;
&lt;BR /&gt;
I am using V8.1 R2c (build 2284) on Windows XP professional.&lt;BR /&gt;
&lt;BR /&gt;
Could anyone please shed some light on this?&lt;BR /&gt;
Thanks,&lt;BR /&gt;
Barry.</description>
      <pubDate>Tue, 02 Nov 2004 05:44:01 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3752#M41592</guid>
      <dc:creator>Barry Kelly</dc:creator>
      <dc:date>2004-11-02T05:44:01Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3753#M41593</link>
      <description>A litte demonstration object for 2D movable hotspots you can find attached.&lt;BR /&gt;
The reference hotspots are made visible so you can see them moving together with the moving hotspots on the border of the rectangles.</description>
      <pubDate>Tue, 02 Nov 2004 08:49:36 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3753#M41593</guid>
      <dc:creator>Jochen Suehlo</dc:creator>
      <dc:date>2004-11-02T08:49:36Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3754#M41594</link>
      <description>Barry, you can move the 3D hotspot in xyz dimensions, but only two palettes of coordinates will show.&lt;BR /&gt;
&lt;BR /&gt;
Look at this example, Tentmaker_1.gsm, the interface allows to choose z or xy or xyz coordinates for 3D hotspots.&lt;BR /&gt;
&lt;A href="http://archicad-talk.graphisoft.com/viewtopic.php?t=3183" target="_blank"&gt;&lt;LINK_TEXT text="http://archicad-talk.graphisoft.com/vie ... php?t=3183"&gt;http://archicad-talk.graphisoft.com/viewtopic.php?t=3183&lt;/LINK_TEXT&gt;&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
Unfortunatelly with xyz, the control is not easy, because the shift key does not work as expected with z axis. &lt;BR /&gt;
The hotspot feature needs some improvement.</description>
      <pubDate>Tue, 02 Nov 2004 09:34:44 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3754#M41594</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-11-02T09:34:44Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3755#M41595</link>
      <description>&lt;BLOCKQUOTE&gt;Olivier wrote:&lt;BR /&gt;Barry, you can move the 3D hotspot in xyz dimensions, but only two palettes of coordinates will show.&lt;BR /&gt;
&lt;BR /&gt;
Look at this example, Tentmaker_1.gsm, the interface allows to choose z or xy or xyz coordinates for 3D hotspots.&lt;BR /&gt;
&lt;A href="http://archicad-talk.graphisoft.com/viewtopic.php?t=3183" target="_blank"&gt;&lt;LINK_TEXT text="http://archicad-talk.graphisoft.com/vie ... php?t=3183"&gt;http://archicad-talk.graphisoft.com/viewtopic.php?t=3183&lt;/LINK_TEXT&gt;&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
Unfortunatelly with xyz, the control is not easy, because the shift key does not work as expected with z axis. &lt;BR /&gt;
The hotspot feature needs some improvement.&lt;/BLOCKQUOTE&gt;

It is inevitable that any new feature leaves room for improvement. There has also always been some inconsistency with moving/stretching in the z direction. The relative r (type r and enter distance) does not work on the z axis, it only accepts values as relative to project zero (maybe it works with the user origin too - I haven't tried that) and not the element's origin nor the current (command) origin.&lt;BR /&gt;
&lt;BR /&gt;
I have found that constraining the movable hotspot in the z direction works quite well though.</description>
      <pubDate>Tue, 02 Nov 2004 15:48:01 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3755#M41595</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-11-02T15:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3756#M41596</link>
      <description>&lt;BLOCKQUOTE&gt;Barry wrote:&lt;BR /&gt;
&lt;PRE&gt;!Stretchy x
HOTSPOT 0, dist_y, dist_z, unID, dist_x, 1+128	!base
HOTSPOT -1, dist_y, dist_z, unID, dist_x, 3		!reference
HOTSPOT dist_x, dist_y, dist_z, unID, dist_x, 2	!moveable
unID=unID+1&lt;/PRE&gt;
&lt;/BLOCKQUOTE&gt;

I don't know if it matters in your case, but we had a bit of confusion over the hotspot ID issue when editable hotspots were introduced - discussion archived in GDL-talk I think.  Note that the GDL reference manual and Graphisoft indicate that each hotspot command should have a unique ID, not the group of hotstpots as you show (and as I also misunderstood when this feature was introduced).&lt;BR /&gt;
&lt;BR /&gt;
So your code should read:&lt;BR /&gt;

&lt;PRE&gt;!Stretchy x
HOTSPOT 0, dist_y, dist_z, unID, dist_x, 1+128	!base
unID=unID+1
HOTSPOT -1, dist_y, dist_z, unID, dist_x, 3		!reference
unID=unID+1
HOTSPOT dist_x, dist_y, dist_z, unID, dist_x, 2	!moveable
unID=unID+1&lt;/PRE&gt;

HTH,&lt;BR /&gt;
Karl</description>
      <pubDate>Tue, 02 Nov 2004 18:29:12 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3756#M41596</guid>
      <dc:creator>Karl Ottenstein</dc:creator>
      <dc:date>2004-11-02T18:29:12Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3757#M41597</link>
      <description>&lt;BLOCKQUOTE&gt;Karl wrote:&lt;BR /&gt;Note that the GDL reference manual and Graphisoft indicate that each hotspot command should have a unique ID, not the group of hotstpots as you show&lt;/BLOCKQUOTE&gt;

Karl you are right. May i add that GS recommends always to declare the first unID  (unID=1 or 1000 or more) depending if you call macros.&lt;BR /&gt;
&lt;BR /&gt;
About calling macros, i get better results when i script all the hotspots in the final object, not by calling macro's hotspots. &lt;BR /&gt;
I have several examples, but this is only my point of view.&lt;BR /&gt;
&lt;BR /&gt;
To come back to Barry's post, if i want to move the hotspot in the 3D window,&lt;BR /&gt;
If i declare x,  i can constrain the hotspot in x direction&lt;BR /&gt;
If i declare y,  i can constrain the hotspot in y direction&lt;BR /&gt;
If i declare z,  i can constrain the hotspot in z direction&lt;BR /&gt;
If i declare xy,  i can constrain the hotspot in x and y directions&lt;BR /&gt;
If i declare xz,  i can constrain the hotspot in x direction only, i can move it on z, but without control&lt;BR /&gt;
If i declare yz,  i can constrain the hotspot in y direction only, i can move it on z, but without control&lt;BR /&gt;
If i declare xyz,  i can constrain the hotspot in x and y directions, i can move it on z, but without control&lt;BR /&gt;
&lt;BR /&gt;
If you get different results, please tell me, i will be glad to learn.&lt;BR /&gt;
I would like three palettes of coordinates when i declare xyz, and the ability to constrain the z direction.&lt;BR /&gt;
Smart hotspots are one of the best features of AC8, but sorry to insist, they need some improvements. &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_wink.gif" style="display : inline;" /&gt;</description>
      <pubDate>Tue, 02 Nov 2004 21:10:03 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3757#M41597</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-11-02T21:10:03Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3758#M41598</link>
      <description>&lt;BLOCKQUOTE&gt;Karl wrote:&lt;BR /&gt;
&lt;BR /&gt;
I don't know if it matters in your case, but we had a bit of confusion over the hotspot ID issue when editable hotspots were introduced - discussion archived in GDL-talk I think.  Note that the GDL reference manual and Graphisoft indicate that each hotspot command should have a unique ID, not the group of hotstpots as you show (and as I also misunderstood when this feature was introduced).&lt;BR /&gt;
&lt;BR /&gt;
So your code should read:&lt;BR /&gt;

&lt;PRE&gt;!Stretchy x
HOTSPOT 0, dist_y, dist_z, unID, dist_x, 1+128	!base
unID=unID+1
HOTSPOT -1, dist_y, dist_z, unID, dist_x, 3		!reference
unID=unID+1
HOTSPOT dist_x, dist_y, dist_z, unID, dist_x, 2	!moveable
unID=unID+1&lt;/PRE&gt;

HTH,&lt;BR /&gt;
Karl&lt;/BLOCKQUOTE&gt;

&lt;BR /&gt;
Thanks Karl,&lt;BR /&gt;
I tried this but it made no difference.&lt;BR /&gt;
&lt;BR /&gt;
As someone else mentioned (I think on GDL-Talk) that it seems odd to have a unique ID for each part of the hotspot.&lt;BR /&gt;
Couldn't the program control that automatically?&lt;BR /&gt;
After all it has unique ID's for all elements in the model and can keep track of those OK.&lt;BR /&gt;
&lt;BR /&gt;
The GDL help file states "unID: unique identifier, which must be unique among the hotspots defined in the library part. "&lt;BR /&gt;
&lt;BR /&gt;
I guess it depends on how you look at a graphical hotspot.&lt;BR /&gt;
Is it 3 or 4 separate hotspots that combine to make one, or is it one hotspot with 3 or 4 lines of code?&lt;BR /&gt;
If you really think about it they are really 3 or 4 separate hotspots.&lt;BR /&gt;
The help file examples show unique ID's for each of these separate parts so I guess that is the way to do it.&lt;BR /&gt;
&lt;BR /&gt;
Seems to make no difference at the moment but who knows what will happen in the future.&lt;BR /&gt;
If using a single unique ID for a group (one graphical hotspot) is wrong, then why does the GDL editor not say it is bad script?&lt;BR /&gt;
&lt;BR /&gt;
Could Graphisoft please confirm which way is right or wrong or whether it matters at all?&lt;BR /&gt;
&lt;BR /&gt;
Minor winge as it takes nothing to add the incremental counter, but why should we need to do it?&lt;BR /&gt;
More command lines for the program to process.&lt;BR /&gt;
More nanno-seconds of time wasted waiting. &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_wink.gif" style="display : inline;" /&gt; &lt;BR /&gt;
&lt;BR /&gt;
Barry.&lt;BR /&gt;
 &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_cool.gif" style="display : inline;" /&gt;</description>
      <pubDate>Fri, 05 Nov 2004 01:43:38 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3758#M41598</guid>
      <dc:creator>Barry Kelly</dc:creator>
      <dc:date>2004-11-05T01:43:38Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3759#M41599</link>
      <description>&lt;BLOCKQUOTE&gt;Olivier wrote:&lt;BR /&gt;
&lt;BR /&gt;
To come back to Barry's post, if i want to move the hotspot in the 3D window,&lt;BR /&gt;
If i declare x,  i can constrain the hotspot in x direction&lt;BR /&gt;
If i declare y,  i can constrain the hotspot in y direction&lt;BR /&gt;
If i declare z,  i can constrain the hotspot in z direction&lt;BR /&gt;
If i declare xy,  i can constrain the hotspot in x and y directions&lt;BR /&gt;
If i declare xz,  i can constrain the hotspot in x direction only, i can move it on z, but without control&lt;BR /&gt;
If i declare yz,  i can constrain the hotspot in y direction only, i can move it on z, but without control&lt;BR /&gt;
If i declare xyz,  i can constrain the hotspot in x and y directions, i can move it on z, but without control&lt;BR /&gt;
&lt;BR /&gt;
If you get different results, please tell me, i will be glad to learn.&lt;BR /&gt;
I would like three palettes of coordinates when i declare xyz, and the ability to constrain the z direction.&lt;BR /&gt;
Smart hotspots are one of the best features of AC8, but sorry to insist, they need some improvements. &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_wink.gif" style="display : inline;" /&gt;&lt;/BLOCKQUOTE&gt;

Olivier,&lt;BR /&gt;
I can confirm exactly what you get here.&lt;BR /&gt;
The only way I have been able to get all 3 stretchy directions is to use ZZYZX for the Z variable - not always desirable in an object.&lt;BR /&gt;
&lt;BR /&gt;
However you still only get 2 co-ordinates in the dialogue box - x and z or y and z.&lt;BR /&gt;
You can however stretch (constrained with shift key) in both the x and y directions (3rd button on the pet palette that appears) even though you can't see the value for either x or y.&lt;BR /&gt;
And the 4th button on the pet palette allows you to stretch z (constrained automatically).&lt;BR /&gt;
&lt;BR /&gt;
Seems to be a bit of a bug here (any comments Graphisoft please?).&lt;BR /&gt;
Is it any differnt in version 9.0?&lt;BR /&gt;
&lt;BR /&gt;
Barry.&lt;BR /&gt;
 &lt;IMG src="https://community.graphisoft.com/legacyfs/online/emojis/icon_cool.gif" style="display : inline;" /&gt;</description>
      <pubDate>Fri, 05 Nov 2004 01:51:10 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3759#M41599</guid>
      <dc:creator>Barry Kelly</dc:creator>
      <dc:date>2004-11-05T01:51:10Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3760#M41600</link>
      <description>I'm trying to create a new block that's editable in 3d. From what I understand, 3d HOTSPOTS is the answer. However, I seem to have hit upon a baffling problem. If I try to use the sample editable hotspot code provided by Karl...
&lt;PRE&gt;!Stretchy x
HOTSPOT 0, dist_y, dist_z, unID, dist_x, 1+128   !base
HOTSPOT -1, dist_y, dist_z, unID, dist_x, 3      !reference
HOTSPOT dist_x, dist_y, dist_z, unID, dist_x, 2   !moveable
unID=unID+1&lt;/PRE&gt;
I get an error that &lt;B&gt;dist_x&lt;/B&gt; is not a valid parameter name. This appears to be the case whatever variable I use. The reason could be the time of day I'm working on this, but... maybe not. So, anybody have any ideas? This is with AND without increasing the &lt;B&gt;unID&lt;/B&gt; for each HOTSPOT.</description>
      <pubDate>Thu, 20 Jan 2005 03:05:23 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3760#M41600</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-01-20T03:05:23Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3761#M41601</link>
      <description>You need to make sure that you have dist_x, dist_y and dist_z in your parameter list.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Cheers&lt;BR /&gt;
Stu.</description>
      <pubDate>Thu, 20 Jan 2005 05:00:19 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3761#M41601</guid>
      <dc:creator>Stuart Atkinson</dc:creator>
      <dc:date>2005-01-20T05:00:19Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3762#M41602</link>
      <description>&lt;BLOCKQUOTE&gt;Sergio wrote:&lt;BR /&gt;I'm trying to create a new block that's editable in 3d. From what I understand, 3d HOTSPOTS is the answer. However, I seem to have hit upon a baffling problem. If I try to use the sample editable hotspot code provided by Karl...
&lt;PRE&gt;!Stretchy x
HOTSPOT 0, dist_y, dist_z, unID, dist_x, 1+128   !base
HOTSPOT -1, dist_y, dist_z, unID, dist_x, 3      !reference
HOTSPOT dist_x, dist_y, dist_z, unID, dist_x, 2   !moveable
unID=unID+1&lt;/PRE&gt;
I get an error that &lt;B&gt;dist_x&lt;/B&gt; is not a valid parameter name. This appears to be the case whatever variable I use. The reason could be the time of day I'm working on this, but... maybe not. So, anybody have any ideas? This is with AND without increasing the &lt;B&gt;unID&lt;/B&gt; for each HOTSPOT.&lt;/BLOCKQUOTE&gt;

Ayyyy.  No, that's the code that I said NOT to use.  You must assign a unique ID to each hotspot, so the unID variable must be incremented as in the code samples earlier in this thread. &lt;E&gt;&lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/E&gt;&lt;BR /&gt;
&lt;BR /&gt;
Does Checkscript give the error, or is it when you try to edit the hotspot?&lt;BR /&gt;
&lt;BR /&gt;
Take a look at some of the 9.0 library code, for example Cylinder in Basic Shapes 9.&lt;BR /&gt;
&lt;BR /&gt;
Karl</description>
      <pubDate>Thu, 20 Jan 2005 05:13:25 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3762#M41602</guid>
      <dc:creator>Karl Ottenstein</dc:creator>
      <dc:date>2005-01-20T05:13:25Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3763#M41603</link>
      <description>Sergio, i got an error when i copy paste your script, illegal &amp;lt; &amp;gt; character at line blablabla.&lt;BR /&gt;
Search and replace all the spaces by a "W" character.&lt;BR /&gt;
Look at the empty spaces, just before breakpoints. The "illegal" characters. See below.&lt;BR /&gt;
&lt;BR /&gt;
HOTSPOTW0,Wdist_y,Wdist_z,WunID,Wdist_x,W1+128&amp;nbsp;W&amp;nbsp;!baseW&lt;BR /&gt;
HOTSPOTW-1,Wdist_y,Wdist_z,WunID,Wdist_x,W3&amp;nbsp;W&amp;nbsp;W&amp;nbsp;W!referenceW&lt;BR /&gt;
HOTSPOTWdist_x,Wdist_y,Wdist_z,WunID,Wdist_x,W2&amp;nbsp;W&amp;nbsp;!moveableW&lt;BR /&gt;
unID=unID+1&lt;BR /&gt;
&lt;BR /&gt;
Delete all these empty parts, it should work. &lt;BR /&gt;
This happens sometime after copy paste operations with pdf documents, some space characters are not recognized.&lt;BR /&gt;
&lt;BR /&gt;
PS: Karl is right, you have to declare the first unID, and then assign a unique ID to each hotspot.</description>
      <pubDate>Thu, 20 Jan 2005 09:32:37 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3763#M41603</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-01-20T09:32:37Z</dc:date>
    </item>
    <item>
      <title>Re: Smart Hotspots</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3764#M41604</link>
      <description>Ok!?!?!&lt;BR /&gt;
&lt;BR /&gt;
What I'm trying to do is multiple (array) as many copies as I need of an 2D object by an interger parameter. Could someone take the following script below and show me how I can do this. Also each copy should have a movable (SMART) hotspot in the middle.&lt;BR /&gt;
&lt;BR /&gt;
rect2 0,0,2',2'&lt;BR /&gt;
Also can it multiple them 3' apart?</description>
      <pubDate>Tue, 14 Jun 2005 12:14:45 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Smart-Hotspots/m-p/3764#M41604</guid>
      <dc:creator>Red</dc:creator>
      <dc:date>2005-06-14T12:14:45Z</dc:date>
    </item>
  </channel>
</rss>

