Masking with AEC Polygons in Architectural Desktop 2006

Overview ---- Body ---- Conclusion

The Subject

Masking linework is one of those features I have yearned for since AutoCAD 1.2 and over the years Autodesk has introduced a variety of tools to make this possible but none have been as simple, trouble-free and logical as the "Background Mask".  Though "Wipeout" has now been incorporated into AutoCAD's main command list and out of the "unsupported" Express Tools it continues to be a hit-or-miss solution for masking linework.  Some printing devices, for example, print wipeouts as solid black forms and they are often problematic when creating .pdf documents. 

The Background Mask option offered in the Mtext and Dimension Styles dialog boxes has proven to be so successful for me that I been looking for all sorts of ways to use that option as an object in itself.  In Architectural Desktop 2006 I found that my yearning may be over.

After posting this article a couple of readers reported problems with this feature and I finally figured out that I had missed a major defect by not plotting from Model Space.  You see, I just never plot from Model Space so if you are one of those Model Space plotting people then forget about using the Background Mask option because it just makes one heck of a solid black splotch.  For whatever reason,

the black background color most use in Model Space is read as the "background color" for the mask - if you change it to White it works but what's the point of that.

This has been listed as "a known issue" by Autodesk and I just love how this label puts a spin on the more derogatory ones such as "defect", "bug" or "fubar" ;) - thanks to James McIntyre in Australia for being the first to call this to my attention.

The Mask

Among the more subtle changes in ADT 2006, something you may have missed, AecPolygons acquired the ability to "Use Background Mask".

In the illustration to the right I show that I have created a new custom AecPolygon Style by using the "AecPolygonStyle" command.  Though there are numerous settings that you can fiddle around with, the one I will focus on here is the mask improvement.

Converting Polyline shapes into AecPolyons 

Illustrated to the right I show a large commercial floor plan with a reflected ceiling plan Xref'd over the top.  I also show that I have use the Pline command to draw a rectangular shape around an area of the plan that I want to hide because it is not a part of the current project.

After drawing the Polyline, I used the "AecPolygonConvert" command to turn the Polyline shape into an AecPolygon.  On the Properties Palette I show that I have set the converted AecPolygon to the new AecPolygon Style created in the example above.

AecPolygons, Draworder and Edge Tools

Illustrated to the right I show that once I have the custom AecPolygon, I can use it much like a Wipeout Object and control what it Masks by using the "Draworder" command.

By default, the AecPolygon will display a perimeter Edge but you can Hide any and all Edges via the Context menu - as illustrated to the right.  You can also alter the Display Representation Properties to automatically remove or Hide all Edges but you also risk having one heck of a time trying to find one of these things when you can't see the edge - I like it though ;)

Notice that the AecPolygon has tools for working with Vertex Points making it a bit more flexible than Wipeouts.  The place this new feature really shines will be discussed below.

The Next Step

Now for something really cool.  If you have spent any time at all working with MvBlocks and Mask Blocks you know something is missing about both Block types.  Mask Blocks can be used to mask but they don't work on all Objects and they produce a variety of disappointing results on things like Slabs.  You also have to use the Attach option in order to make a Mask Block mask something.  MvBlocks, on the other hand, offer the Interference Block option but that's basically a way to create 3D holes.

Illustrated to the right I show an example of a trick I came up with for some of the MvBlocks being introduced in our Kitchen Cabinets 6 eKit.  In the cooking pot illustration, right, I created an outline of the pot using a Polyline and then converted it into an AecPolygon set to use the Background Mask.  Though you can tinker with the Display Configurations and Representations to make general linework display on top of the AecPolygon within an MvBlock, I found that making a separate Block of the AecPolygon works best.

Within the MvBlock Definition, I show that for the Top View Direction I Added the AecPolygon Block (the mask) first and then I Added the actual Block of the linework I wanted to show in the Top View Direction.  This order is extremely important because it acts like a Draworder effect.

The end result of using an AecPolygon for a Mask within an MvBlock is that you will have an MvBlock that can be used to mask all other linework regardless of type.  If you don't want it to mask, you can use Draworder to send it under other linework.

My Soap Box

The whole masking subject brings all sorts of ideas to mind and I'd like to pass a few on to the programmers at Autodesk.  First, in the light of this article and how useful the Background Mask option obviously is, wouldn't it make sense to create a native AutoCAD Object called Mask.

Since Mtext in Dimensions can be set to use the Background Mask why not do the same for the Dimension Line and Extension Lines.  Even ancient ("old school", if you prefer) drafting text books teach that Extension Lines never cross.

For whatever reason, this brings me to the subject of Hatch Patterns and Gradients.  I never voiced how enormous my disappoint was when I first looked at the Gradient Hatch feature; it was nothing like what I expected and has been of little use to me.  Here's what I had hoped for:  I wanted the Gradient feature to be a Property not a Hatch Pattern so I could apply it to any Object in AutoCAD or ADT.  In this day and age I should be able to create a line that fades from black to white, red to blue or anything like that.

To tie these two desires together, how about this:  I would like to see Background become a Color Property that could be assigned to anything. Then, I would use Lineweight as the control for "Border Offset Factor". Likewise, gradient should be part of the Color system with options for Opacity so a person could create a big fat Polyline, for example, set it to a gradient that starts with Red, fades to Background and changes Opacity along the way.

To make the task of seeing and finding Objects set to use a Background Color that Masks, why not use the same toggle that displays the gay boxes for Fields or something similar with a different tint.

Copyright 2005 ARCHIdigm. All rights reserved.