Forum Replies Created
If your rectangle size is set to the A value then you actually dont need to use moveable hotspots. The standard “hotspot2 A, 0” will be movebale. its one of the nice efficiencies in Archicad that is very helpful when creating windows and doors.
So an editable rectangle (with bottom left corner as 0,0) would simply need the following 4 hotspots:
hotspot2 0, 0
hotspot2 0, B
hotspot2 A, B
hotspot2 A, 0
It would be nice to be able to extract more data on the Zones geometry.
I am creating the content for a manufacturer in AC 21. So there may be some differences.
However, i found the answer the typical way: by looking at a Graphisoft circular skylight (it was 1 am when i posted this and i was lazy and dopey).
There is a standard boolean parameter that allows you to do a custom hole in the roof: AC_Custom_3D_Hole
Once I added this parameter and set the rules for when it is on or off then my wallhole & wallniche scripts worked.
it is actually nice to be able to use the auto roof cut function with the top edge angles and so on. But it is also nice to be able to override it. Great work again from Graphisoft, they really do think of everything.
I will now have to test the objects in AC 22 and AC 23 to make sure this method still works.
The reason for the 2D array with the first dimension set to 1 is only because i am using it for space between vertical frame elements, so its not necessary, its just easier for me to read.
I will make some changes based on your advice and hopefully get the issue resolved.
Thanks for your help
The arrays that are in the error are two-dimensional but they being generated by other arrays that are one dimensional so perhaps the trail will lead back to them.
The object has many 1D arrays such that it will be a large job to convert them all. Is there are known reason and a possible work around, other than changing all arrays to 2D?
This issue has arisen again and I need to fix is. I am thankfully getting an error message now.
The error message is reporting “Incompatible Array Dimensions” however I cannot fixed the problem.
I use dynamic arrays extensively and
Example of script below with the error line being “xVPanel = _xVPanel”:
for i = 1 to vertpan_numb
if i > vardim2(xVPanel) then
_xVPanel[i] = .160
_xVPanel[i] = xVPanel[i]
xVPanel = _xVPanel
parameters xVPanel = xVPanel
Hi Gergely (and Joachim),
I thought i would add this question here as it is related.
I have a problem where the WALL_SKINS_PARAMS is not working in the 3D script but works in the 2D script.
I am creating plaster returns for my windows and the 2D works fine but the 3D is acting as if the wall is a single skin saying the index is greater than the array dimension.
SCRIPT (identical in 2D and 3D)
if WALL_SKINS_NUMBER > 1 then
SKINFillInt = “”
SKINThickInt = .010
SKINPenInt = 1
SKINPenFillInt = 1
SKINPenBGInt = 1
if GLOB_CONTEXT # 5 then
SKINFillInt = WALL_SKINS_PARAMS[WALL_SKINS_NUMBER]
SKINThickInt = WALL_SKINS_PARAMS[WALL_SKINS_NUMBER]
SKINPenInt = WALL_SKINS_PARAMS[WALL_SKINS_NUMBER]
SKINPenFillInt = WALL_SKINS_PARAMS[WALL_SKINS_NUMBER]
SKINPenBGInt = WALL_SKINS_PARAMS[WALL_SKINS_NUMBER]
thanks Barry and Peter,
it works if you just simply type the prefix in but I want to define th prefix in the GDL code based on several other parameter values. Therefore i need to set in the GDL code: parameters ROOM_NUMBER = prefix + counting function
No i didn’t and i don’t believe it is possible. lines in XML don’t actually mean anything and are just convenient formatting (as you probably know).
The way i do it is i set up a sample of the structure i want and then using GDL I copy this structure and then populate the copy. feel free to call (0412 781 769) if you want to discuss it further.
It seems i’m not getting email notifications of replies from this site.
Anyway, i was a bit lazy on this as it was a request from a client i didn’t want to spend too much time testing. I checked and it doesn’t matter if it is hotlinked or not. if i mirror a room it has the same affect. So obviously this puts the blame on the “Flip wall on reference line” function. So all i need to do is find out what side of the reference line to wall is on. I will search the GDL guide for value to reference but if you know the script in need could you please let me know.
Sorry i didn’t see this a year ago, I’m actually looking for answers to labels at the moment also. You need this script.
if label_custom_arrow then
Did you resolve this successfully. I use the loop functions like Gergely described though i do it with invisible/local arrays which i use to populate the visible/parameter array as it allows the array to expand and shrink. When I started doing this a few years ago I had to do it this way to get the array to shrink.
perfect! you guys are brilliant! all the answers follow the most direct logic and simplify very powerful functionality.
sorry a couple of cropped sentences above, very tired at the moment.
I haven’t tried anything else because… i’m very busy and very tired. GDL 12hrs a day weakens the brain muscle come Friday afternoon.
Thank you for the information in Tips and Tricks it is very useful.
I am now struggling a little with the OUTPUT function of the XML Add-on.
I have manage to modify the XML file with OUTPUT and a bit of testing help me to understand the navigation aspect, which as you know is done using the INPUT commands as describe in Tips and Tricks.
The issue i cannot resolve is how to get the OUTPUT function to create a new line in the XML file. Using the only 4 options available (AsNextSibling/AsPreviousSibling/AsFirstChild/AsLastChild) only allows me to write on the same line as the Position Description. Can I get it to create a new line or do I have to come up with a different XML structure?
I’m using the ‘Copy’ function so perhaps if i had a specific character in the XML file that got copied in this function perhaps that would somehow create my new line for me?