Editing a pattern definition updates every instance simultaneously because each instance stores a reference to one shared source; inserting a pattern creates an independent copy, so later edits to the original never propagate to it. This distinction between linked instances and detached copies is the single most consequential behavior in any pattern system, from a tiled wallpaper in a design tool to a symbol in a drafting program to a class in a game engine. This explainer covers the mechanism, the numbers that govern it, the traps, and the workflows that keep both behaviors from biting you.
What Actually Happens in Memory
The difference is not cosmetic. A pattern definition lives once in memory, and each instance holds a pointer to that definition plus a transform: position, scale, rotation, mirror state. Edit the definition, and the rendering engine redraws every pointer-bearing instance at its next refresh. There is no copying step and no per-instance update loop. One write, N reads.
The speed comes from indirection. An instance does not contain geometry at all; it contains a reference. When the document opens, the software resolves each reference to the shared definition. A pattern with 500 instances therefore stores 1 definition and 500 small records, perhaps 40 bytes each, instead of 500 duplicated blocks.
An independent copy breaks that reference. The "insert pattern" operation allocates a new definition: the geometry, symbols, or data are duplicated and the pointer is reassigned to the new object. From that moment the two objects have separate identities. Editing the original changes only its own instance list. Editing the copy changes only the copy. They share nothing.
This is the same mechanism as a shared library versus a vendored dependency in software, or a shortcut versus a duplicated file on disk. The high-level rule never varies: editing the source propagates; duplicating breaks the link.
One important refinement is that propagation typically affects instances, not just the definition's display. If the definition contains a rule, such as "tile every 12 inches," editing the interval updates every linked instance's spacing. Detached copies keep the old interval frozen at the moment of insertion.
Quantified Context: How Much Difference This Makes
The savings scale with instance count and definition complexity. A tiled floor with 2,000 instances of a 100 KB pattern stores roughly 100 KB plus 80 KB of instance records, about 180 KB, rather than 200 MB of duplicated geometry. That is over a thousandfold reduction in file size at the 2,000-instance mark. Production files in architectural drafting routinely carry 10,000 to 50,000 instances of a handful of definitions for this reason.
Update cost tells the same story. Editing a shared definition is a single write plus a redraw; editing 10,000 independent copies through an automated script is 10,000 write operations, often thousands of times slower in wall-clock time and far more error-prone if any instance fails midway.
But independence has its own accounting. A 1,000-copy independent pattern at 500 KB per copy consumes about 500 MB and can push a file past practical save and load limits. Conversely, a shared pattern with 1,000 linked instances costs almost nothing — until a change to the definition ripples somewhere unwanted.
The counterintuitive part: independence is the expensive option. Detached copies feel safer because they are isolated, but they multiply storage and audit burden by the number of copies.
| Behavior | Linked instance (shared definition) | Independent copy (detached) |
|---|---|---|
| Edit original definition | All instances update at once | No copy changes |
| Edit one copy | All linked instances change | Only that copy changes |
| File size at 1,000 instances | Roughly one definition plus records | Definition size times 1,000 |
| Update cost | One write, one redraw | One write per copy |
| Risk profile | Unintended global change | Silent drift and divergence |
| Best for | Consistent tiling, repeated symbols | One-off variations, client-specific tweaks |
Edge Cases and Timeline Behavior
Propagation timing matters as much as propagation scope. In most document-based tools, linked instances resolve at open and at edit commit, not continuously. That means an edit made while a second window is open may show stale results until refresh. Some systems cache the resolution and invalidate it only on save, so two collaborators can briefly see different versions of the same pattern.
Nesting creates the nastiest edge case. If pattern B embeds pattern A, editing A updates B's definition, which in turn updates every B instance. A three-level nesting chain means one edit can propagate through thousands of instances across dozens of parents. The reverse is not true: detaching a nested copy severs the chain below it, and further edits to A stop there.
Insertion also captures state at a moment in time. The timeline below shows the typical lifecycle of a linked pattern versus a detached copy through one edit cycle.
| Stage | Linked instance | Independent copy |
|---|---|---|
| 1. Pattern defined | Definition created | Definition created |
| 2. Instance inserted | Pointer to definition recorded | Full duplicate allocated |
| 3. Original edited | All instances marked dirty | No change anywhere |
| 4. Document refresh | Every instance redrawn | Only edited copy redrawn |
| 5. File saved | One definition plus references | Original plus separate copy |
| 6. Copy edited later | Would affect all linked instances | Affects only that copy |
| 7. Detach command run | Instance becomes independent | No-op, already independent |
Note the asymmetry in steps 3 and 6. The linked instance is fast to update but dangerous to edit directly; the copy is safe to edit but drifts silently from its siblings.
Red flag: editing an instance assuming only it changes, when it is actually linked. Red flag: detaching copies and then editing the original, leaving two diverging versions. Red flag: nesting shared patterns three or more levels deep without documenting dependency direction. Red flag: automating edits across many linked instances without a save point. Red flag: assuming the second collaborator's view updated when yours did.
Common Misconceptions
The most persistent misconception is that a linked instance is a live mirror. It is not. It renders from the definition, but the instance record still holds its own transform and any per-instance overrides. Move a linked instance and the definition does not move; the instance's position record changes. The shared part is the pattern itself, not the placement.
A second misconception is that independent copies update when the original does, just "delayed." They never update. There is no synchronization process, no queued job. Once detached, the copy and the original are permanent strangers unless you manually re-link or re-insert.
A third is that copying an instance is the same as inserting an independent copy. It depends on the tool's copy semantics. In many systems, copy-paste duplicates a reference, so both pasted items remain linked and editing one edits all. Only an explicit insert, detach, or paste-special command produces independence. Check the paste behavior before relying on either outcome.
The professional caveat: linked instances are not immune to per-instance edits, and copies are not immune to link regrowth in some systems' undo chains. Undoing a detach can silently restore the link.
Practical Actions and Thresholds
Choose the behavior deliberately rather than accepting defaults. A practical decision rule: if more than about 20 instances need to stay visually consistent and you expect the pattern to evolve, keep them linked. If a copy needs a client-specific variation or must survive an edit to the original, detach it at the moment you make the first divergent change.
Concrete steps:
Identify the shared pattern's definition name before editing; confirm how many instances reference it in the file's pattern or symbol manager. Make a save point before editing a definition with more than roughly 100 linked instances. Use the detach or make-independent command immediately before any per-instance change you want isolated. After batch edits, refresh the view and recheck a distant instance to confirm propagation reached it. Document nesting dependencies in a text note inside the file when three levels deep.
For automation, threshold your scripts: above 500 instances, use batch edit of the shared definition rather than iterating copies, because the per-instance loop scales linearly and can time out.
Red-flag reminders as bullets:
Never detach to "fix" a single instance unless you accept permanent divergence. Never edit a shared definition during a collaborative session without a save point. Never assume copy-paste preserves independence; verify per tool.
Reconciling thresholds: the 20-instance consistency rule and the 100-instance save-point rule serve different jobs. The first governs when to keep links, the second governs caution when editing them. Use both.
Limitations and What This Explainer Cannot Settle
Behavior varies by tool, version, and settings, and the exact copy semantics of any particular program cannot be assumed from general principles. Some systems support partial detach, where geometry is separated but rules remain linked, producing hybrid behavior neither category fully describes. File-size estimates depend heavily on compression, and real-world numbers can differ by an order of magnitude. What generalizes is the core mechanism: references propagate, duplicates do not. Apply that rule and verify the specific tool's copy and detach behavior before trusting it with production work.
[NO HIGH-STAKES DISCLAIMER APPLIES — this is an ordinary technical science explainer.]