Reveal options: automatic or scripted

When it comes to wall openings, reveal is always a question: is the automatic reveal option enough, provided by ARCHICAD, or is a GDL-scripted reveal needed instead?
To help you decide whether you need more than the default reveal function, let’s take a look at the details.


Whenever a new door/window object is created under the right subtypes (most under Wall Opening will do), the default settings dialog comes with the All Parameters list, and the built-in Reveal options page:

There is a fix named optional parameter to control the visibility and functioning of the Reveal and its parameters: ac_wido_hide_options.
If you do not need the built-in reveal, create an integer parameter with this name in your object (if the subtype doesn’t already contain it), and set its value to 2. This will hide the Reveal page and disable any automatically provided reveal function from your object.

The built-in reveal function comes with the direct acces to global variables (red) and another fix named parameter (green):

  • WIDO_HEAD_DEPTH: the upper size of the reveal
  • WIDO_THRES_DEPTH: the bottom size of the reveal
  • WIDO_RIGHT_JAMB: the right-side size of the reveal
  • WIDO_LEFT_JAMB: the left-side size of the reveal
  • ac_wido_sill: the generic sill depth, calculated always from the face of the wall. If it’s added to the object’s parameter list, values and ranges can be assigned to it. The value in the purple rectangle is calculated from it, regarding the set basepoint for the calculated reveal dimension (wall face-wall core).

If you set these values on the Reveal page, the door/window object automatically displays the reveals in 2D and 3D. The built-in reveal doesn’t support profiled walls with partial structure display.
However, in 2D the wall lines are missing. To make them visible, use the AC_WallContours fix named integer parameter with any of the following options (default is 0, no lines):

  • 1: draw all lines of the wallhole
  • 2: draw only the siding lines of the wallhole
  • 3: draw only the lines on the faces of the wall


Note: if the script contains any wallpart-redraw related commands (WALLLINE2, WALLARC2, etc.), or any custom wall cuts (WALLNICHE, WALLHOLE, WALLHOLE2 etc.) the build-in reveal option automatically disables in the corresponding model space.

GDL scripted reveal

Example opening object with simple reveal can be downloaded here.

If the standard rectangular reveal described above is not enough, or you want to take care of it yourself, scripting your own custom wallcuts and wallparts is the way to go.
There are special related commands to deal with the cuts in 3D and representing them in 2D:

The WALLHOLE2 command creates a cover polygon, omitting the wall part underneath. This polygon has no contour options, so the wall contours have to be created separately with WALLLINE2 and WALLARC2 commands.

To extend the wallparts into the cover poly, use the WALLBLOCK2: the cover polygon of WALLHOLE2 has no effect on wall-parts redrawn with this function.
Note: scripted wall-parts are highlighted with the wall, not the containing opening.

Interesting thing about wallniche: the cut has a direction. See the example object and the following figure:

Example in 3D:

! ================================================================================
! Input parameters:
! revealWidthLeft (Length): the dimension of the left reveal
! revealWidthRight (Length): the dimension of the right reveal
! revealWidthBottom (Length): the dimension of the bottom reveal
! revealWidthTop (Length): the dimension of the top reveal
! ================================================================================

! --------------------------------------------------------------------------------
! Counteract FLIP function, keep reveal on the original side of the wall
! --------------------------------------------------------------------------------
	mulz -1

! --------------------------------------------------------------------------------
! Reveal is made of 2 cuts
! --------------------------------------------------------------------------------

! First cut: the smaller hole facing reveal side
wallniche 4, 1, 1+2,
		0, 0, 1, 1,
		-A/2 + revealWidthLeft,	revealWidthBottom,	31,
		-A/2 + revealWidthLeft,	B - revealWidthTop,	31,
		A/2 - revealWidthRight,	B - revealWidthTop,	31,
		A/2 - revealWidthRight,	revealWidthBottom,	31

! Second cut: the greater hole facing the opposite side.
wallniche 4, 1, 1+2,
		0,	0, -1, 1,
		-A/2,	0,	31,
		-A/2,	B,	31,
		A/2,	B,	31,
		A/2,	0,	31

del 1

This is a simple rectangular reveal cut example, but using the extended function of the commands, it’s possible to create custom shaped reveals for your doors and windows.