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.

URGENT! GDL Column clean up

Anonymous
Not applicable
I rotated a custom profile to mak a Tuscan column. It looks fine with the exception of facet lines runing up the column. I want to know how I can show only the profile of the column in elveation and 3d without the facets of the rotated profile segments showing up. Could this be done in GDL by changing a parameter somewhere or adding a line of code in the 3d script?

Thanks
8 REPLIES 8
David Collins
Advocate
Daniel wrote:
I rotated a custom profile to mak a Tuscan column. It looks fine with the exception of facet lines runing up the column.
I assume you're using REVOLVE? You can control how these objects appear in hidden lines views and elevations with the general masking value and the node status. (Don't you just love talking in GDLese? There's something about these terms that just immediately clouds the mind....)

A general mask value of 48 will give you just the outline of the object. This turns on smoothing, which will eliminate those vertical lines.

You can keep the horizontal lines by changing the staus valus of each node to 0.

Note: this is for REVOLVE only. Masks and status values behave differently on other GDL objects.

Try these examples to see what's happening: Switch the 3d window to Internal Engine, Hidden Line to see how they will behave in the elevation views.

!GDL script follows************************************

!example 1: All construction lines appear in hidden line views

ROTy 270

RESOL 24
REVOLVE 12, 360, 64,
0.00, 0.001, 1,
0.7106149449405, 0.001, 1,
0.7106149449405, 0.09455224931837, 1,
0.6922014972484, 0.08227661752364, 900,
0, 118.2374455382, 4001,
0.6726748414214, 0.09269083396473, 1,
0.5798264222567, 0.1319921981915, 1,
0.564234314702, 0.09515626217786, 900,
0, 22.94222268572, 4001,
0.564234314702, 0.1351562621779, 1,
0.00, 0.1351562621779, 1,
0.00, 0.001, 1
DEL 1


!example 2: only the outline appears in hidden line

ADDx 0.50
ROTy 270

RESOL 16
REVOLVE 12, 360, 48,
0.00, 0.001, 1,
0.7106149449405, 0.001, 1,
0.7106149449405, 0.09455224931837, 1,
0.6922014972484, 0.08227661752364, 900,
0, 118.2374455382, 4001,
0.6726748414214, 0.09269083396473, 1,
0.5798264222567, 0.1319921981915, 1,
0.564234314702, 0.09515626217786, 900,
0, 22.94222268572, 4001,
0.564234314702, 0.1351562621779, 1,
0.00, 0.1351562621779, 1,
0.00, 0.001, 1

DEL 2

!example 3: outline with horizontal lines at profile nodes appearing

ADDX 1.00
ROTy 270
RESOL 16
REVOLVE 12, 360, 48,
0.00, 0.001, 0,
0.7106149449405, 0.001, 0,
0.7106149449405, 0.09455224931837, 0,
0.6922014972484, 0.08227661752364, 900,
0, 118.2374455382, 4000,
0.6726748414214, 0.09269083396473, 0,
0.5798264222567, 0.1319921981915, 0,
0.564234314702, 0.09515626217786, 900,
0, 22.94222268572, 4000,
0.564234314702, 0.1351562621779, 0,
0.00, 0.1351562621779, 0,
0.00, 0.001, 0
DEL 2
David Collins

Win10 64bit Intel i7 6700 3.40 Ghz, 32 Gb RAM, GeForce RTX 3070
AC 27.0 (4001 INT FULL)
Anonymous
Not applicable
Thanks alot David. I understand now the specific concept. But I am missing a step to get there. When I made the column, I made a custom profile and space bar clicked a circle to create a wall profile which effectively revolves my profile. A crude attempt I know, but coding a revolve statement is not working the way I tried it due to my lack of GDL skill in this area.

I made a polyline to represent my profile, selected it and saved it as GDL. I tried to replace your points with these and got errors, so that must not be the way to do it. Perhaps you (or anyone) can explain how to create a profile in plan and use REVOLVE to make a 3d object and I will know from now on how to do it.

Here is the code for the polyline profile copied out of the 2d script:


poly2_b{3} 33, 3, 0, 0,
0, 0, 1, 0, 0, 1,
0, 1.550783595862E-016, 1,
0.3, 1.550783595862E-016, 1,
0.3, 0.1182264945186, 1,
0.2555005096964, 0.1182264945186, 1,
0.2457652207136, 0.1646935045211, 900,
0, 156.3342590395, 4001,
0.2555005096964, 0.2111605145236, 1,
0.2555005096964, 0.2254580560628, 1,
0.2539934977823, 0.2564489794904, 900,
0, -77.62266477357, 4001,
0.2240459183101, 0.2483341225255, 1,
-64.98215747539, 0.1329957702323, 900,
0, 2.313548908056, 4001,
0.1662388608943, 2.880488948844, 1,
0.1796640456126, 2.879736154027, 900,
0, -94.65660352841, 4001,
0.1815042606812, 2.893055909778, 1,
0.1815042606812, 2.904547632337, 1,
0.1831869771988, 2.921497923112, 900,
0, 191.3387660837, 4001,
0.1815042606812, 2.938448213887, 1,
0.170012538122, 2.938448213887, 1,
0.170012538122, 2.984415104123, 1,
0.1787202234109, 2.986755962855, 900,
0, -123.0314051779, 4001,
0.1815042606812, 2.995332240554, 1,
0.1815042606812, 3.007398549242, 1,
0.1683594153305, 3.05847326148, 900,
0, 94.59363784294, 4001,
0.2182173166955, 3.075666366524, 1,
0.2271042488079, 3.075666366524, 1,
0.2271042488079, 3.14998589003, 1,
2.22044604925E-016, 3.14998589003, 1
Anonymous
Not applicable
Trying to revolve using this gives me this error:

"Generatrix edge coincides with X axis. at line 2 in the 3D script of the file Tuscan profile.gsm"

ROTY -90
REVOLVE 34, 360, 1+64,
0, 0, 1,
0, 1.550783595862E-016, 1,
0.3, 1.550783595862E-016, 1,
0.3, 0.1182264945186, 1,
0.2555005096964, 0.1182264945186, 1,
0.2457652207136, 0.1646935045211, 900,
0, 156.3342590395, 4001,
0.2555005096964, 0.2111605145236, 1,
0.2555005096964, 0.2254580560628, 1,
0.2539934977823, 0.2564489794904, 900,
0, -77.62266477357, 4001,
0.2240459183101, 0.2483341225255, 1,
-64.98215747539, 0.1329957702323, 900,
0, 2.313548908056, 4001,
0.1662388608943, 2.880488948844, 1,
0.1796640456126, 2.879736154027, 900,
0, -94.65660352841, 4001,
0.1815042606812, 2.893055909778, 1,
0.1815042606812, 2.904547632337, 1,
0.1831869771988, 2.921497923112, 900,
0, 191.3387660837, 4001,
0.1815042606812, 2.938448213887, 1,
0.170012538122, 2.938448213887, 1,
0.170012538122, 2.984415104123, 1,
0.1787202234109, 2.986755962855, 900,
0, -123.0314051779, 4001,
0.1815042606812, 2.995332240554, 1,
0.1815042606812, 3.007398549242, 1,
0.1683594153305, 3.05847326148, 900,
0, 94.59363784294, 4001,
0.2182173166955, 3.075666366524, 1,
0.2271042488079, 3.075666366524, 1,
0.2271042488079, 3.14998589003, 1,
2.22044604925E-016, 3.14998589003, 1
Anonymous
Not applicable
I managed another workaround. It seems to be an automated process to use Profiler rather than Complex Profiles + Wall using complex profile to make a revolved column. Extra lines were conveniently removed.

My final delima is now related to 2d Symbol. I want to have a background fill to mask the foot print of the column. Is the a way to handle that using Project 2 {2}? I know the basic version of this command by heart, but have not used the 2nd version. No exmaples in the GDL manual. Has anyone tried this?
David Collins
Advocate
Seems like you're getting close. Here's a couple of things that might help you along:

1. REVOLVE generating profiles have to be entirely above the x axis. Move your polyline just a hair (0.001) above the x axis and try again.

2. Look into Drag-and-drop GDL autoscripting. This is like magic GDL. Select and drag any ArchiCAD object from the main 2d window into a GDL script window and it will turn into GDL script. Very fast, once you get the hang of it. Drag 2d objects into the 2d GDL script window and 3d objects into the 3d window.

3. PROJECT2 gives you a very quick 2d symbol, but as you've realized, no fill. Try this: once you've finished the 3d script of your object, give it a 2d symbol with Project2. Add a hotspot at the origin. (HOTSPOT2 0,0). Save the object and then place it at the origin of the main ArchiCAD window. (You'll have to reload the libraries) Trace over the Project2 symbol to create a new 2d symbol using fills and polylines. You can also explode the symbol and edit it. In your case, you might just want to create an empty fill with no outlines and use that in conjuncion with Project2. Drag that new 2d symbol into your object's 2d GDL script window and viola!
David Collins

Win10 64bit Intel i7 6700 3.40 Ghz, 32 Gb RAM, GeForce RTX 3070
AC 27.0 (4001 INT FULL)
Anonymous
Not applicable
David wrote:
Seems like you're getting close. Here's a couple of things that might help you along:

1. REVOLVE generating profiles have to be entirely above the x axis. Move your polyline just a hair (0.001) above the x axis and try again.

Great Tip David!

2. Look into Drag-and-drop GDL autoscripting. This is like magic GDL. Select and drag any ArchiCAD object from the main 2d window into a GDL script window and it will turn into GDL script. Very fast, once you get the hang of it. Drag 2d objects into the 2d GDL script window and 3d objects into the 3d window.

Also very cool. I seem to recall now this was possible, but totally forogot about it.

3. PROJECT2 gives you a very quick 2d symbol, but as you've realized, no fill. Try this: once you've finished the 3d script of your object, give it a 2d symbol with Project2. Add a hotspot at the origin. (HOTSPOT2 0,0). Save the object and then place it at the origin of the main ArchiCAD window. (You'll have to reload the libraries) Trace over the Project2 symbol to create a new 2d symbol using fills and polylines. You can also explode the symbol and edit it. In your case, you might just want to create an empty fill with no outlines and use that in conjuncion with Project2. Drag that new 2d symbol into your object's 2d GDL script window and viola!
I see. I guess this would work for a static object. If it was parametric, this may not return the correct symbol right? For example, I am working on a tile ridge cap and I added some paramters to the AC11 library object to rotate it on rake edges of a roof. So in plan it slopes up the roof and rotates 45 degrees around the edge to cover the plywood. In plan this should show the layering tiles correctly and also cover anything underneath it.

I will try this though as an excercise. Thanks for your great help David!
Anonymous
Not applicable
Finally its close to being complete. The only problem now is that the column is missing a side when an elevation is taken from East or West and looks fine in North and South. I am suppose to isssue my drawings this evening and could really use a solution in the next hour or two if anyone is out there.

EDIT: Duh. I can avoid the problem if I change the plan angle to something other than 0. Emergency over. Still a bug though. Any thoughts on how to correct it for future as I am sure others in the office that use it my not know whats going on.

Thanks in advance!
David Collins
Advocate
Daniel wrote:
[I see. I guess this would work for a static object. If it was parametric, this may not return the correct symbol right?
That's right. The beauty of drag and drop autoscripting is that it's not that hard to go into the script and add the parametric variables, which is where all the fun happens in GDL. Typically the 2d symbol follows the same strategy and variables as the 3d script, so its fairly easy to make an autoscripted 2d symbol follow the parametrics of the 3d object.

The other thing about autoscripting is that its a great way to see how GDL works. I worked out the syntax of GDL SEO's just by dropping a simple SEO'd object into the 3d script window. The GDL manual was hopeless.
David Collins

Win10 64bit Intel i7 6700 3.40 Ghz, 32 Gb RAM, GeForce RTX 3070
AC 27.0 (4001 INT FULL)