abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

variable Hotspots in Schleife

Hallo Zusammen

ich möchte in einer Schleife variable Hotspots in nur einem Parameter (Array) anlegen

!=================================
!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
Mac OSX - up to date

GER Archicad Full, Up to date
8 ANTWORTEN 8
Frank Beister
Advisor
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.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Hallo Frank,

habe einen "echten Parameter" angelegt....

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


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

Ist ein GOSUB sinnvoll?
Mac OSX - up to date

GER Archicad Full, Up to date
Ma_Scht
Advocate
"" statt "[INT_COUNT]" ?
Frank Beister
Advisor
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.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
"Ma_Scht" wrote:
"" 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?
Mac OSX - up to date

GER Archicad Full, Up to date
xandros1
Newcomer
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:

! ### 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!
AC 25 / 26, Voll, D / Intel i9-9900K, 64 GB RAM, nVidia GeForce RTX 2080 Ti, Win 10 x64
Frank Beister
Advisor
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.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
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.
Mac OSX - up to date

GER Archicad Full, Up to date