AutoCAD: Insert or Xref? That is the Question
More Than One Way to Skin a…
On second thought, I better not go there since I don’t want to offend any Auto “CAT” lovers. But seriously, the Auto “CAD” program from the beginning has always offered more than one way of doing the same thing. For example, with the latest AutoCAD version, command entries can be entered ranging from typing it in on the Command Line to selecting it from icons on Toolbars, Palettes or the Ribbon. Likewise, AutoCAD comes loaded with built-in commands that may generate similarly looking objects like LINE versus POLYLINE or TEXT versus MTEXT. Relative to the aforementioned examples though the reasons to choose one command versus another may be fairly simple. But when it comes down to choosing the command to INSERT versus XREF a Block, this warrants a deeper discussion.
What’s Up Block
To kick off this discussion since AutoCAD categorizes both an Insert and Xref as a BLOCK, it’s important to go over what makes up a Block in AutoCAD. The following is the definition from the AutoCAD help screen:
“A block is one or more objects combined to create a single object.”
Actually, this description is not 100% accurate or perhaps not 100% complete. A Block actually can be created without a single object in it. For example, you may want to create a drawing with just Layer names assigned with Colors and Linetypes. Or perhaps you may want a drawing to contain just Text style names and or Dimension style settings. In either case there are no objects in this kind of drawing. But such a drawing can still be brought in as a Block and used as a Template to begin a project.
Now a Block at the minimum must contain the following features (see Figure 1):
- At time of creation (Block Definition) and placement (Insert or Xref):
- A Name – up to 255 characters in length with the following thirteen characters not supported: \ / : * ? ” < > | ; , = `
Note: The Microsoft Windows operating system does support the following four characters in a file name: ; , = ` So when a file name contains any one of these four characters at time of Insert or Xref AutoCAD will request for a different name entry using only supported characters.
- A Base or Insertion point – X, Y,Z coordinates which can be a different location from 0,0,0
- A Name – up to 255 characters in length with the following thirteen characters not supported: \ / : * ? ” < > | ; , = `
- At time of placement (Insert or Xref):
- A Scale – uniform or unique for X, Y, Z
- A Rotation angle – 0 to 359 degrees
Other possible features a Block may contain are:
- Units – Option to define a unit setting using the Insunits system variable introduced in AutoCAD 2000
- Explodability – Option to prevent the Block from being exploded introduced in AutoCAD 2006
- Annotative – Option to set various scales for Texts and Dimensions to appear introduced in AutoCAD 2008
What’s a Block Insert
Next, let’s go over what is a Block Insert. Inserting Blocks into a drawing has been a built-in command since AutoCAD was first released back in 1982. The source of Block Inserts can come from Blocks stored only internally in the current drawing database or drawings saved externally. After an external drawing (a.k.a. the source drawing) is inserted into another drawing (a.k.a. the target drawing), then the Block definition now resides inside the target drawing database. There’s no longer any connection to the original source drawing.
Now to share an internally stored Block Insert for use externally to other target drawings you’ll have to execute the WBlock command. On the Write Block window under Source select Block and then from the drop-down list click on the name of the Block to share externally. As long as the Destination File name matches the Block name then the Block is successfully written out as a source drawing for inserting into other target drawings (see Figure 2).
As a caveat, since the source drawing when used as a Block Insert can be made up of other Blocks (a.k.a. nested Blocks), if the target drawing already has any of the matching nested Block names stored internally, these will not change. Instead, the nested Blocks inside the target drawing will remain as they are different from those inside the source drawing. So, it may be a good idea for a Block to contain only basic elements without nested Blocks to avoid this problem.
Initially the process of inserting a Block into the current drawing can only be executed from the Command Line. By entering the “Insert” command you’ll have to respond sequentially to the remaining prompts to complete a Block Insert. Then in 1992 AutoCAD R12 came out accompanied with a lisp function called DDInsert.lsp. The DDInsert command implements a customized graphic user interface (GUI) option for Block insertion. Now all the required responses to inserting a Block can be seen and completed at once using this GUI (see Figure 3).
But it took a few more releases until AutoCAD 2000 came out before the Insert GUI became a built-in AutoCAD command. This new Insert command (a.k.a. ClassicInsert as of AutoCAD 2020) added the additional feature of seeing a preview of the Block prior to insertion (see Figure 4).
This Insert command method continued to be the typical method to insert a Block until many more releases later when AutoCAD 2020 introduced the Blocks Palette. In addition to having the Palette stay floating on the screen, now a graphic thumbnail representation of all the Blocks in the current drawing can be seen. Also, the selected Block can be inserted by dragging & dropping it from the Blocks Palette onto the graphics drawing area (see Figure 5).
So, in summary, the Block Insert offers the following features:
- Embedded – Block definition exists inside the target drawing database.
- Attributes – editable and extractable text can be included introduced in AutoCAD 2.0 in 1984.
- Dynamic – visibility control to display different graphic geometry introduced in AutoCAD 2006.
What’s an Xref Block
Now, let’s go over what is an Xref Block. Support for external reference files or Xrefs did not occur until AutoCAD R11 in 1990. The introduction of the much-needed Xref command eight years after the initial release of AutoCAD was long overdue. This made it possible for drawing files saved outside of the current drawing database to stay where they’re located and at the same time be placed into the current drawing as a reference. Whenever that file (a.k.a. the source drawing) is changed every location where it’s referenced (a.k.a. the target drawing) would automatically reflect the latest and greatest updates.
Since an Xref Block remains located externally from the target drawing database, whenever target drawings are shared outside of your network environment all source drawings will need to be included. To accomplish this AutoCAD provided the ETransmit command. When executed from within the target drawing a list of all source Xref Blocks can be seen in the ETransmit command window. You can also click on the Transmittal Setups button to define the drawing format to use from current to all the previously supported versions. The end result is a compressed set containing both the target and all source Xref Blocks (see Figure 6).
As for the method to execute the Xref command, like the Insert command, AutoCAD initially only offered a Command Line interface. So, when AutoCAD R12 came out with the DDInsert.lsp function but still provided no Xref GUI I decided to use DDInsert.lsp as a template to develop my own DDXref.lsp function. I also used this opportunity to add a Pick function to select an already placed Xref on the screen to perform various Xref Options (see Figure 7).
Then after five more years AutoCAD R14 in 1997 came out with a built-in Xref GUI called the Xref Manager (a.k.a. ClassicXref as of AutoCAD 2008). Though everything was still text based, the Xref Manager offered two ways of viewing all the Xrefs that are contained in the current drawing. The first viewing method is called List View (activated by pressing F3 on the keyboard). This is the default view where Xrefs are listed in column format. List View offers the flexibility of sorting the list based on the column heading. The second viewing method is called Tree View (activated by pressing F4 on the keyboard). In this alternate view only a single Xref can be selected at a time to perform an operation. Tree View visually differentiates top level from nested level Xrefs (see Figure 8).
Finally, after another decade, AutoCAD 2007 introduced the External References Palette. In addition to supporting all the functions Xref Manager offered the External References Palette can remain open and provides a graphics preview of the Xref as the cursor hovers over it (see figure 9).
So in summary, the Xref Block offers the following features:
- utomatic Updates – changes in the source drawing are reflected in the target drawing
- Separate Layers – comes with Layer names prefixed with the name of the Xref allowing the option to separately control Layer status
- Bound – can be converted to an Insert Block using the Xref Bind or Insert option.
XOM App Introduction
As a side note, since there are some operations AutoCAD does not support with managing Xrefs, I recently developed an app to fulfill my wish list. I call this app Xref Object Manager or XOM as the shortcut command to launch the app in AutoCAD (see Figure 10).
For convenience XOM does replicate a couple of operations that are already available on the External References Palette like Attach and Detach (Delete). But for the most part XOM includes a few additional operations that are not currently supported.
One of the added operations XOM offers to manage Xrefs is Copy. The Copy operation makes a duplicate instance of the source file giving the Xref another name. I typically use this operation so I can separately control the Layers prefixed with the Xref name grouping. For example, I can have Floor Plan Xref Copy 1 and Reflected Ceiling Plan Xref Copy 2 both referencing the same source file: Floor Plan Sample.dwg. This way whenever Floor Plan Sample.dwg is updated both Xref Copy 1 & Xref Copy 2 updates as well. Also, with the separate Xref Layer name prefixed groupings, I can have certain Xref Copy 1 Layers Frozen and at the same time leave On and change all Xref Copy 2 Layers to a grey tone using Color 8 (see Figure 11).
A second XOM added operation is the ability to Rename any Xref. Since the External References Palette limits renames to top level Xrefs only, I would have to run a separate Rename command to change nested level Xrefs. Granted, renaming nested Xrefs is only temporary since the next time a Reload occurs the nested level Xref will return to the original name. But there are times I want to be able to use the same GUI to Rename Xrefs regardless of their level (see Figure 12).
A third and fourth XOM additions are RePath and EqPath operations which offer similar features. There are times when I want to preserve the Xref placements in the current drawing but change the source drawing (the path) to another. For example, in the current drawing where an Xref is currently pathed to Design Scheme 1, this can be changed or repathed to Design Scheme 2. But when this operation occurs AutoCAD does not automatically rename Xref to match with the repathed drawing name. XOM’s RePath operation will do both a repath and a rename of the Xref. Likewise, EqPath will automatically rename any Xref to match with the corresponding pathed drawing name (see Figure 13).
The last XOM operation I added is Show. Though an Xref selected on the External References Palette can show up highlighted in the current graphics area, it does not zoom up to the location where the Xref is located. This made me develop the Show operation so that it’ll both highlight and zoom full screen to the first Xref instance found. When the Show operation is completed the graphics screen view will return back to the original location (see Figure 14).
Now that everyone is thoroughly informed about Blocks, Block Inserts and Xref Blocks, it’s time to return to the original question as to when to use a Block Insert versus an Xref Block. Obviously, if you plan on using Attributes or Dynamic Blocks, then a Block Insert is the only option since an Xref Block does not support these features. Likewise, if a Block contains lots of complex objects, is frequently updated and shared to multiple drawings, then an Xref Block would be most appropriate to meet these objectives.
I remember at my previous office I had received a site plan drawing from a lighting consultant. All the lighting symbols placed in the drawing were Xref Blocks. This would work well if the lighting symbols changed frequently. Otherwise, I would have used Block Inserts instead.
Typically, a Block Insert is ideal for simple geometric symbols that are used repeatedly. Symbols like a company’s logo or a parking stripe arrow will most likely not change throughout the life of the project. On the other hand, a Block that’s made up of numerous objects on many Layers, like a set of structural columns and shear walls that need to be referenced on multiple floor plans would be best served as an Xref Block.
Here’s a more specific example of when to use a Block Insert: Typically, the title block may contain the same information throughout the life of a project. The project name, client name & address will most likely remain constant. This is the ideal situation to use the Insert command to place the title block into the entire drawing set. In addition, Attributes can be incorporated to this Block. These Attributes can include items that are unique to each drawing such as Sheet Title, Scale, Page number and etc.
Here’s a more specific example of when to use an Xref Block: You frequently receive updated drawings from team members outside of the office for use as background coordination. In an Architectural office, drawings are typically received from other engineers and externally referenced instead of inserted. This way whenever the engineers reissue updated drawing sets all target locations where the source drawings are referenced are automatically updated without user input.
What is to Come
Since AutoCAD has a history of continued development on enhancing existing as well as adding new commands, who knows what changes will come with future releases. But one thing for certain, AutoCAD will always offer variety and flexibility giving users multiple options to reach the same goal. It is up to the end user to be fully informed of all that AutoCAD offers. Then better educated decisions can be made to help everyone successfully cross the finish line.