2015-08-22 12:37 PM - last edited on 2023-05-24 12:31 PM by Rubia Torres
call "GS Window Functions" call "FM_types" call "ui_tabIDlistHierarchy_m"is there more documentation about these function and is there a source code for it ? (to try to get what they are doing internally and how it's done)
! -------------------------------------------------------------------------------- ! Window Settings and Opening Model Attributes ! -------------------------------------------------------------------------------- "pageCallWinModAttributes": call "ui_WinSettOpeningModAttr_m" parameters listFieldWinOpSettAttrID = listFieldWinOpSettAttrID, iWindowShape = iWindowShape, bVentilationProfile = 0, iWindowType = 18, ! WIN_Curved gs_bLeftSLight = 0, gs_bSLight = 0, gs_UTrans = 0, gs_UTrans_Div = 0, gs_LTrans = 0, gs_LTrans_Div = 0, gs_sash_uniform = 0, gs_panes_number = 0, bOverride_MVO_3D = bOverride_MVO_3D, or_bOplines3D = or_bOplines3D returnIf you have some solutions for that.
IF GLOB_CONTEXT = 6 THEN !Schedule iLoD2D = SCALE_50 ENDIFbut I don't know how to draw dimensions objects. I think I can make it work with lines, but quite more complicated.
2015-08-23 02:47 AM
Voulz wrote:Those are macros calls, when an object calls another object. ARCHICAD Library uses macros extensively. For example, all Door and Windows objects call many macros to create various portions of their geometries. Select the name of the macro in quotation marks, and press CTRL+SHIFT+O to open it.
Hi guys !
I've been using archicad for quite a time so I decided to start learning GDL.
I decided to create a frameless window as exercise and to not start from scratch, I modified the Curved Window 19.
As of now, the window works fine, I can divide it horizontally and vertically but I still have some questions:
1) there is a lot of calls to external functions likecall "GS Window Functions" call "FM_types" call "ui_tabIDlistHierarchy_m"is there more documentation about these function and is there a source code for it ? (to try to get what they are doing internally and how it's done)
2) I don't really get the UI part and it's not straight forward to understand what are the available default panels and if there is a way to modify them without rebuilding it from scratch.I would have to get deep into the code to answer that, sorry, I don't have that much time now.
ex: remove the Frame Surface from the model attributes List! -------------------------------------------------------------------------------- ! Window Settings and Opening Model Attributes ! -------------------------------------------------------------------------------- "pageCallWinModAttributes": call "ui_WinSettOpeningModAttr_m" parameters listFieldWinOpSettAttrID = listFieldWinOpSettAttrID, iWindowShape = iWindowShape, bVentilationProfile = 0, iWindowType = 18, ! WIN_Curved gs_bLeftSLight = 0, gs_bSLight = 0, gs_UTrans = 0, gs_UTrans_Div = 0, gs_LTrans = 0, gs_LTrans_Div = 0, gs_sash_uniform = 0, gs_panes_number = 0, bOverride_MVO_3D = bOverride_MVO_3D, or_bOplines3D = or_bOplines3D returnIf you have some solutions for that.
3) About the schedule.I think you will have to do it with lines and Text because there is no Dimension command in GDL. Actually, you could write a Dimension macro that would take all the parameters a usual linear dimension element takes, and call that multiple times, passing parameters in time, to create dimensions in a schedule.
a)Is there a way to easily annotate the drawings from the GDL script ? I'd like to have automatic dimensions for my panels. The attachment is made with the "annotate" tool of the schedule. I know how to check if I am drawing in the Schedule :IF GLOB_CONTEXT = 6 THEN !Schedule iLoD2D = SCALE_50 ENDIFbut I don't know how to draw dimensions objects. I think I can make it work with lines, but quite more complicated.
b) any idea on how to make it work in the elevation view of the window ?
Thank you for your help
2015-08-24 03:35 AM
Those are macros calls, when an object calls another object. ARCHICAD Library uses macros extensively. For example, all Door and Windows objects call many macros to create various portions of their geometries. Select the name of the macro in quotation marks, and press CTRL+SHIFT+O to open it.I think I can now be able to answer most of my questions with that.
I would have to get deep into the code to answer that, sorry, I don't have that much time now.I'll check by opening the macro, it might get me the answer
I think you will have to do it with lines and Text because there is no Dimension command in GDL. Actually, you could write a Dimension macro that would take all the parameters a usual linear dimension element takes, and call that multiple times, passing parameters in time, to create dimensions in a schedule.It is what I thought. I'll try it and come back if I have questions.
2015-08-24 02:03 PM
Voulz wrote:A Macro is just a library part that is Called by other parts. Create a new object, then in the Details pane of the library part window, uncheck the Placable option, so the macro will not be visible in the Library Part's Setting dialog box (so users will not try to use the macro by itself). In the script of the main (calling) library part use the Call command to call the macro and set its parameters (see the GDL Reference Guide for more information). The macro must be in one of the loaded libraries, in most cases a separate sub-folder is created to place the macros for easier organization of the library.
Could you just tell me how to create a Macro ? just a basic sample would be enough. I don't really get where to create it and how to add it to an object.
2015-08-24 02:16 PM
2015-08-27 03:27 PM
A Macro is just a library part that is Called by other parts. Create a new object, then in the Details pane of the library part window, uncheck the Placable option, so the macro will not be visible in the Library Part's Setting dialog box (so users will not try to use the macro by itself). In the script of the main (calling) library part use the Call command to call the macro and set its parameters (see the GDL Reference Guide for more information). The macro must be in one of the loaded libraries, in most cases a separate sub-folder is created to place the macros for easier organization of the library.Thanks David, I was able to create some already. It also makes mo understand better how archicad is working with that.
As a general recommendation, especially if you are just getting your feet wet with GDL, I would not start by trying to modify a Graphisoft window. They are fairly complex and at times baffling. You will probably have an easier time of it looking at a simpler window first.I am just looking for the part I know I want to change some behavior of Archicad. I also have background in programation and like to learn new things !
However, if you wish to removed the hotspot in your item #4 then you only need to find it. You can search the GDL code for the HOTSPOT2 command and comment it out (place and exclamation mark at the front of the command like this ==> ! Hotspot2 x, y) and then see if the offending hotspot has disappeared. This could be a bit of a hunt as the command could come from the main object or any of the macros as well.My problem is more that I don't know how the basic hotspots are generated and how to get rid of them without changing the essence of the object.
2015-08-28 02:24 PM
Voulz wrote:I took a quick look at this, and those hotspots might be built-in and cannot be turned off. I tried a window with zero then one Hotspot2 statement, and the corner hotspots remained. I then tried changing the parameter AC_Hole_Hotspot_Control (part of the Window (Wall) SubType) to zero, and still the hotspots are there. For Objects there is an option for hotspots on the bounding box, I don't see a similar option for Windows. HTH,However, if you wish to removed the hotspot in your item #4 then you only need to find it. You can search the GDL code for the HOTSPOT2 command and comment it out (place and exclamation mark at the front of the command like this ==> ! Hotspot2 x, y) and then see if the offending hotspot has disappeared. This could be a bit of a hunt as the command could come from the main object or any of the macros as well.My problem is more that I don't know how the basic hotspots are generated and how to get rid of them without changing the essence of the object.
I'd like to take rid of the two hotspots at the top of the window, but even by being the subtype of the most basic Window [Window (Wall)], all the hotspots are present. I don't know if I can get rid of it.
2015-08-28 07:59 PM
2015-08-29 09:45 AM
2015-08-30 05:08 AM
Voulz wrote:But then what happens then when you want to adjust the length but not the angle?
I'd like to add a Hotspot controlling the angle of the corner window. I am able to do it quite easily and it works fine. The problem is when this hotspot is matching the basic window hotspot. When i try to use it, it will use the hotspot of the window, and so change the length of my window instead of the angle. Perhaps there is a way to make my hotspot either in foreground or giving it a bigger priority.