We value your input!
Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey

Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

gdl values causing but not causing parameter changes in ac9

Anonymous
Not applicable
Hello,

I maintain a GDL library which was written in archiCAD 7 and have recently upgraded to archiCAD 9. I have found that the values statement can now cause a parameter to change but not really, which is confusing.

eg.
I have a door that allows different sets of width (a) values for different wall types.

if wall_comps_name = "Brick" then
values "a" 1.000, 1.200
endif

if wall_comps_name = "Block" then
values "a" 1.200, 3.400
endif

Now lets say the wall is set to brick and the window's a value is set to 1.000. When we change the wall to block and go to the window settings the interface says that the a value is now 1.200.

We press ok on the settings box but the width is still 1.000. We have to actually change it to 3.4 and back to 1.2 to get the required value.

In version 7 it would have stayed at 1.000 and the user would have had to change it to the required value. This is good because the user can know what the value was before and base their choise of new witdth off this.

The only thing I can think to do is to change it to this dodgy method:
if wall_comps_name = "Brick" then
values "a" a, 1.000, 1.200
endif
if wall_comps_name = "Block" then
values "a" a, 1.200, 3.400
endif

Has anyone encountered this problem?
Any ideas how I can get around it?

Thanks,
Adam
4 REPLIES 4
Frank Beister
Moderator
If this behaviour has changed from 7, you should report it as bug. But it's not the best way to change a parameter value, because if you change the wall settings, you have to start running the object script by going to the settings dialog and back. Anyway. Maybe this helps:
if wall_comps_name = "Brick" then
if GLOB_MODPAR_NAME="" and a<>1.2 then
 a=1.000
 parameters a=a
 endif
values "a" 1.000, 1.200
endif

if wall_comps_name = "Block" then
if GLOB_MODPAR_NAME="" and a<>3.4 then
 a=1.200
 parameters a=a
 endif
values "a" 1.200, 3.400
endif 
You have to have installed the newest AC-fix. There was a bug in the first release, which did not make this work.

And please report this to GS, that's important for library compatibility.
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
Anonymous
Not applicable
How do I report bugs if not to the forum?
Frank Beister
Moderator
Usually I report bugs to our German GS-Hotline. They accept bug reports without having a support contract. 😉 Normally I get 1 day later a "we have sent this to the programmers in Budapest". They reply normally via Munich back.
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
Djordje
Virtuoso
adambutler wrote:
How do I report bugs if not to the forum?
If the Bug Report comes up, don't just Send. First Edit - fill in your data, describe what happened. It will go automatically to the HQ.

If you reseller provides tech support, report it to them by email.
Djordje



ArchiCAD since 4.55 ... 1995
HP Omen