Matt Kolberg
    Technical Consultant — INFRA/GIS at SolidCAD  

    AutoCAD has a command contained within the Express Tool named FLATTEN.  It is designed to remove any non-zero elevations from selected objects within a drawing.  It does an excellent job with this, but there is some behavior that may not be obvious to all users.  This command works very well with many objects such as TEXT, LINES, and some BLOCKS.  However, unexpected behavior results when flattening Dynamic and Annotative blocks, even blocks with embedded non-zero-elevation linework.

    Annotative Blocks:  For example, an annotative block with a name of Arrow, is inserted 3 times.  Regardless of the attached annotative scales, the result after the FLATTEN command will be 3 blocks with 3 different names; Arrow-flat-1, Arrow-flat-2, and Arrow-flat-3.  Further, they will no longer be annotative.

    Dynamic Blocks:  After the FLATTEN command, each dynamic block will no longer be dynamic and will become an “unnamed block” with a name similar to “*U63”.

    Blocks:  A typical block will FLATTEN adequately.  A block which contains elements which have non-zero elevations, will also flatten adequately.  Understand that the FLATTEN command will make changes to block definitions in this example to set all elevations to 0.

    So what can be done?  Here are two options.

    • Download and run a LISP command from this discussion group post.
    • Be selective when flattening.  Flatten objects which have no deleterious results afterwards.  The AutoCAD FILTER command can be configured to easily select compatible objects.  The filter can be saved for future use.