ARCHICAD Forum
https://forum.graphisoft.de/

variable Hotspots in Schleife
https://forum.graphisoft.de/viewtopic.php?f=6&t=26575
Seite 1 von 1

Autor:  lukaso [ 17. Sep 2019, 15:21 ]
Betreff des Beitrags:  variable Hotspots in Schleife

Hallo Zusammen

ich möchte in einer Schleife variable Hotspots in nur einem Parameter (Array) anlegen
Zitat:
!=================================
!2DSCRIPT
!=================================

unID=100

DIM HTSP_ARRAY[]

FOR i=1 to INT_COUNT

unID = unID +1 : HOTSPOT2 0, 0, unID, HTSP_ARRAY[INT_COUNT], 1+128

unID = unID +1 :HOTSPOT2 0, -1, unID, HTSP_ARRAY[INT_COUNT], 3

unID = unID +1 :HOTSPOT2 0, HTSP_ARRAY[INT_COUNT], unID, HTSP_ARRAY[INT_COUNT], 2


next i


Es läuft noch nicht.....

Wer kann helfen?

Danke,

Lukas

Autor:  Beister [ 17. Sep 2019, 15:54 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

Kann so auch nicht. Das Array darfst du nicht im Skript definieren. Das muss ein "echter" Parameter und keine Varaible sein. Und dann auch ein entsprechend dimensionierter Arrayparameter. Sonst werden die Werte ja auch nicht in der Projektinstanz abgelegt.

INT_COUNT würde ich durch VARDIM1( HTSP_ARRAY ) ersetzen.

Autor:  lukaso [ 17. Sep 2019, 16:10 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

Hallo Frank,

habe einen "echten Parameter" angelegt....

ich steh leider aufm Schlauch
Zitat:
INT_COUNT würde ich durch VARDIM1( HTSP_ARRAY ) ersetzen.


wie springt das script dann in den nächsten Wert?

Ist ein GOSUB sinnvoll?

Autor:  Ma_Scht [ 17. Sep 2019, 17:18 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

"[i]" statt "[INT_COUNT]" ?

Autor:  Beister [ 18. Sep 2019, 01:10 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

Jap. Das war mir vorher gar nicht aufgefallen. Das muss natürlich i im Index sein.
Sonst solte das Skript stimmen. Es macht so viele Fangpunkte, wie das Array groß ist.

Autor:  lukaso [ 19. Sep 2019, 09:16 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

[quote="Ma_Scht"]"[i]" statt "[INT_COUNT]" ?


und ich dachte das hätt ich ausprobiert.....es läuft!
Was würd ich nur ohne euch machen ;)

Nur noch eine Frage: Kann ich die Größe der Matrix eines ARRAY Parameters (angelegter Parameter) definieren? Oder muss ich für den Fall der Fälle händisch ausreichend anlegen?

Autor:  Xandros [ 19. Sep 2019, 10:19 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

https://www.selfgdl.de/non-geo-scripte/ ... arameters/

ganz unten bei Tipps und Tricks stehts:

Arrayparameter in der Parameterliste haben eine feste Ausdehnung. Diese kann ab ArchiCAD 8 individuell für jedes im Projekt platzierte Objekt per Skript erweitert werden, indem man den neuen Feldern einen Wert zuweist und mit PARAMETERS neu anlegt:

Code:
! ### Parameterskript
! Parameter 'aa' ist ein Array mit 1x3 Feldern, Typ Länge
FOR i=4 TO 5
aa[i]=A : PARAMETERS aa[i]=aa[i]
NEXT i


Die Zuweisung kann auch durch den Befehl PARAMETERS aa=aa erfolgen.

So ist auch eine Reduzierung der Arrayausdehnung möglich, indem man zunächst ein anders benanntes Array (z.B. bb[2]) mit geringerer Ausdehnung definiert und die benötigten Werte dorthin überträgt und danach mittels PARAMETERS aa=bb neu setzt.

Joachim Sühlo und Frank Beister sei an dieser Stelle nochmal für die grandiose Seite gedankt!

Autor:  Beister [ 19. Sep 2019, 12:45 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

Das ist nicht ohne Stolperfallen.

PARAMETERS funktioniert nur im Rahmen des Parameter Skripts. Aber auch dann funktioniert das nicht jedes mal, wenn es abgearbeitet wird.

Das heißt, dass dein Array erst größer wird, wenn PARAMETERS auch wirksam war und die Werte in der Parametertabelle deiner Objektinstanz im Projekt geändert wurde.

Wenn nicht und dein 2D-Skript versucht Arraywerte zu lesen, die noch nicht angelegt wurden, kommt es zum dicken Knösel.

Daher bei dynamischen Parameterarrays besser mit VARDIM arbeiten als mit festen Werten.

BTW: Ein Reset des Arrays ist übrigens auch durch den DIM Befehl möglich. Dann werden alle Inhalte gelöscht und die Dimensionen neu gesetzt.

Autor:  lukaso [ 19. Sep 2019, 13:56 ]
Betreff des Beitrags:  Re: variable Hotspots in Schleife

Danke Frank,
habe auch gemerkt, dass das nicht ganz so problemlos läuft.....Für meinen Fall konnte ich aber mit dem Befehl im Parameter automatisiert 100 Standard Werte setzen.....danach habe ich die Zeile raus kommentiert.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/