We value your input! Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey
2023-05-21 03:16 PM
Hello to all.
I'm just starting to work with arrays, and I have some problems .
I'm still working on an object to change the text of objects from the model view options, and for that I need a matrix in which I indicate 1/ the name I want to change 2/ the name that should appear.
For example, 'living room" on the left and "Liv. " On the right.
I would like to know how to initialize an array to be able to use it.
For example, to use the array I had initialized with DIM arrayValeurs_glob[] , I had to manually enter empty values from my parameters tab to be able to display values in my interface.
If these values had not been created manually, they did not appear.
I wish I could avoid that, especially since this method made my script bug:
I went from 3 values to 12 values per matrix, and my script (template view option) didn't update because it remembers I had 3 values and doesn't want to update.
Do you have any ideas/examples?
Thank you!
2023-05-21 05:27 PM
Once you declared your array, you could initialize it with a FOR loop using VARDIM1() and give your array default values (assuming your array is not null). VARDIM1 will give you the size of a one dimensional array.
for piece = 1 to vardim1(arrayValeurs_glob)
arrayValeurs_glob[piece] = "defaut"
next piece
Then you would need to update the values of your array with PARAMETERS
parameters arrayValeurs_glob = arrayValeurs_glob
2023-05-22 03:31 AM
If you look at the master script of this object, you will see that the array size is updated each time a relevant variable is updated. If the array size value is not accessible, you can delete it, save, let the object fail to generate, then recreate the parameter. There is probably some better way to force it to update, but that is what I did a few times when I changed my array widths...
Ling.
AC22-23 AUS 7000 | Help Those Help You - Add a Signature |
Self-taught, bend it till it breaks | Creating a Thread |
Win11 | i9 10850K | 64GB | RX6600 | Win10 | R5 2600 | 16GB | GTX1660 |