2022-08-19 06:33 AM - last edited on 2024-09-24 10:29 AM by Doreena Deng
I know Graphisoft had what they considered ironclad reasons for deprecating the parameters that they did, and I've had these conversations before. But it is still causing me grief, and I am still unconvinced it needs to be this way.
Two examples:
1. GLOB_NORTH_DIR: I am scripting parts that test for compliance with the local planning guidelines. One of these is a balcony check that is dependent on the orientation of the balcony: north, south, east west. I should be able to check this against the GLOB_NORTH_DIR...but this isn't available in the parameter script, which means I now must rely on the user to manually enter the Project North in the part.
2. REQUEST("Profile_components"...: I have scripted an all-purpose surface label that gets around the shortcomings of the Archicad one. It will read from doors, windows, objects,...and complex profiles. One of the functionalities I would like to include is the ability to filter the surfaces in the complex profile for the user to select from. This can't be done in the parameter script, so the user is left selecting from the entire project surface catalogue, and the labels tests the validity of the selection after the fact: rather backwards.
I don't see any problem with the management of attributes and their impact on objects being left to the BIM managers of the file, and not being locked out of this functionality. There are plenty of examples where this happens currently (e.g. changing a scheduling parameter in the script).
Solved! Go to Solution.
2022-08-24 11:39 AM - edited 2022-08-24 11:41 AM
Dear Bruce!
From AC 20 the Project- and View Dependent Globals and many Requests have been restricted in Parameter Script (and Master Script as well), such as the two mentioned in this topic.
The main reason behind the restriction is that the parameter script (parameter consolidation) should not be run in case of changing something on the view or in the project settings (such as changing the North Direction, View Scale, Origin Location, etc. or editing Complex Profiles or Composites). The other reason is that this globals and requests can't run parameter consolidation during TeamWork.
For further information you can see the GDL Reference Guide at https://gdl.Graphisoft.com/ or the PDF added to the Archicad's Documentation folder.
Best regards,
Peter
2022-08-26 02:53 PM
Is the parameter script the only way to solve these needs?
parameter script:
dim vals[], strings[]
for i = 1 to 32000
vals[i] = i
strings[i] = str(i, 1, 0)
next i
values{2} "SelectedSurface" vals, strings
UI script:
ui_infield{3} SelectedProfile, 0, 0, 200, 24
n = REQUEST ("Profile_components", SelectedProfile, nComponents)
! set up filter
dim pics[], strings[], vals[]
for i = 1 to nComponents
iSurface = 0
n = REQUEST{4} ("Profile_component_info", SelectedProfile, i, "gs_profile_surface", iSurface)
sSurfaceName = ""
n = REQUEST ("Name_of_material", iSurface, sSurfaceName)
pics[i] = 0
strings[i] = sSurfaceName
vals[i] = iSurface
next i
! currently selected surface might not be available in selected profile
sSurfaceName = ""
n = REQUEST ("Name_of_material", SelectedSurface, sSurfaceName)
ui_infield{3} SelectedSurface, 0, 25, 200, 24,
8, 0,
0, 0,
0, 0, 0, 0,
0, "selection: " + sSurfaceName, SelectedSurface,
pics, strings, vals
! check result
ui_outfield sSurfaceName, 210, 30, 200, 19
2022-08-24 11:39 AM - edited 2022-08-24 11:41 AM
Dear Bruce!
From AC 20 the Project- and View Dependent Globals and many Requests have been restricted in Parameter Script (and Master Script as well), such as the two mentioned in this topic.
The main reason behind the restriction is that the parameter script (parameter consolidation) should not be run in case of changing something on the view or in the project settings (such as changing the North Direction, View Scale, Origin Location, etc. or editing Complex Profiles or Composites). The other reason is that this globals and requests can't run parameter consolidation during TeamWork.
For further information you can see the GDL Reference Guide at https://gdl.Graphisoft.com/ or the PDF added to the Archicad's Documentation folder.
Best regards,
Peter
2022-08-26 02:53 PM
Is the parameter script the only way to solve these needs?
parameter script:
dim vals[], strings[]
for i = 1 to 32000
vals[i] = i
strings[i] = str(i, 1, 0)
next i
values{2} "SelectedSurface" vals, strings
UI script:
ui_infield{3} SelectedProfile, 0, 0, 200, 24
n = REQUEST ("Profile_components", SelectedProfile, nComponents)
! set up filter
dim pics[], strings[], vals[]
for i = 1 to nComponents
iSurface = 0
n = REQUEST{4} ("Profile_component_info", SelectedProfile, i, "gs_profile_surface", iSurface)
sSurfaceName = ""
n = REQUEST ("Name_of_material", iSurface, sSurfaceName)
pics[i] = 0
strings[i] = sSurfaceName
vals[i] = iSurface
next i
! currently selected surface might not be available in selected profile
sSurfaceName = ""
n = REQUEST ("Name_of_material", SelectedSurface, sSurfaceName)
ui_infield{3} SelectedSurface, 0, 25, 200, 24,
8, 0,
0, 0,
0, 0, 0, 0,
0, "selection: " + sSurfaceName, SelectedSurface,
pics, strings, vals
! check result
ui_outfield sSurfaceName, 210, 30, 200, 19
2022-08-29 12:38 AM
Thanks Peter. How do I schedule the orientation of a balcony using these methods? I need to produce a schedule that not only shows the orientation of the balcony (N, S, E, W), but also whether its m² complies - which is dependent on its orientation. To my knowledge, I can only schedule parameters.
2022-08-30 09:35 AM
You can show 2D in schedule, and use GLOB_PREVIEW_MODE = 2 to draw the result of the validation.
2022-08-30 10:47 AM
That would then be a 2D preview, as opposed to a text field, right? Even if the preview was text (via TEXT2 / RICHTEXT2), it wouldn't be exportable / sortable as a text field?
2022-09-02 03:25 PM
That's true.
Maybe it could be done with a property expression without GDL? Almost - "Area" is available for objects as AxB, but "Angle from North" is for Curtain wall panels only. I will ask why we restrict that.