Global Mapper User Guide
Global Mapper (GM) is a powerful tool for managing and replacing elements across your Revit project in bulk. Instead of manually swapping families, types, materials, or styles one by one, Global Mapper lets you plan and execute these changes all at once.
What is Global Mapper?
Think of Global Mapper as a "find and replace" tool for your Revit project, but much smarter. It can:
- Replace families and types - Swap out one family or type for another across your entire project
- Find duplicates - Identify similar elements that might be duplicates (like "Wall Type 1" and "Wall Type 1 Copy")
- Manage materials - Replace one material with another wherever it's used
- Handle line and object styles - Swap styling consistently throughout your project
- Work with shared parameters - Add or map shared parameters to families and categories
The tool uses similarity matching to suggest the best replacement candidates, making bulk changes faster and less error-prone.
When to Use Global Mapper
Global Mapper is ideal for these common scenarios:
| Scenario | How GM Helps |
|---|---|
| Project cleanup | Find and consolidate duplicate families, materials, and styles |
| Standards migration | Replace legacy families/types with company-standard versions |
| Template updates | Apply new material or style standards across the project |
| Family consolidation | Merge similar families into one, reducing project bloat |
| Shared parameter rollout | Add shared parameters to multiple families at once |
| Pre-handoff cleanup | Standardize elements before project delivery |
Quick Start
Get started with Global Mapper in 5 steps:
Step 1: Open Global Mapper
Click the Global Mapper button on the DBTools ribbon in Revit.
[Screenshot: GM button location on ribbon]
Step 2: Select Your Category
In the Families tab, use the category dropdown to select what type of elements you want to work with (Doors, Windows, Walls, etc.).
[Screenshot: Category dropdown]
Step 3: Find Elements to Replace
Browse the list of families in your project. Each row shows:
- The family name (source)
- The number of instances in your project
- A dropdown to select what to replace it with (target)
[Screenshot: Family list with source and target]
Step 4: Select Targets
Click the dropdown in the Target column to see replacement options. Options are sorted by similarity - the best matches appear at the top with higher percentages.
Step 5: Review and Commit Changes
- Check the Apply checkbox for each mapping you want to make
- Click Review Plan
- GM opens Commit Review and shows the plan before any model edits
- Review plan sections and status:
- Bottom status bar shows
RulesandFamilies(single-line, pinned to the window bottom) - Failed Operations is summarized per mapping rule;
Source/Targetdisplay names (not element IDs) - Operation Results section lists each operation row with status (
Pending,Succeeded,Failed,Skipped), stable operation id, stage, and timing - Domain Summary section shows per-stage succeeded/failed/skipped counts, affected references, and family/timing context
- Commit execution continues across failures; failed operations are recorded while remaining operations still run
- Right-click report tables for
Copy Selected/Copy All - Non-relevant sections are hidden so only applicable expanders appear
- Bottom status bar shows
- Click Apply to execute the plan (changes are applied immediately)
- After apply completes, Commit Review stays open and shows results:
- Click Rollback to roll back all applied changes (transaction-group rollback)
- Click Accept + Continue to accept changes (assimilate) and return to GM
- Click Accept + Close GM to accept changes (assimilate) and close GM
- If nothing was applied and failures were detected, Commit Review switches to Retry Apply + Close
- During commit, the overlay Cancel button requests cancellation immediately
- Closing Commit Review with the window X:
- During apply: triggers cancellation + graceful cleanup before the window closes
- After apply (pending accept/rollback): prompts you to Accept + Continue, Accept + Close GM, or Rollback
- Banner feedback:
- Success shows a green summary banner (
Applied,Failed,Skipped) - Failure shows a red banner starting with
Commit failed. - On failure, Commit Review stays open so you can inspect errors before deciding to retry/continue/close
- Accept + Continue refreshes mapped data in-place (families/usage) and restores expanded row-details context
- Success shows a green summary banner (
Source:
src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:4595
Source:src/Tools/Common/GM/Shell/Services/CommitReviewWindowService.cs:68
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:267
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:548
Source:src/Tools/Common/GM/Shell/Views/CommitReviewWindow.xaml.cs:44
Source:src/Tools/Common/GM/Shell/Views/CommitReviewWindow.xaml:111
Source:src/Tools/Common/GM/Shell/Services/CommitReviewWindowService.cs:61
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:274
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:327
Source:src/Tools/Common/GM/Shell/Views/CommitReviewWindow.xaml.cs:60
Source:src/Tools/Common/GM/Shell/Views/CommitReviewWindow.xaml:318
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.UsageAndFamilies.cs:236
The Global Mapper Window
When you open Global Mapper, you'll see a window with several main areas:
[Screenshot: GM main window with labeled areas]
Header Controls
Located at the top of the window, these controls affect all tabs:
| Control | What It Does |
|---|---|
| Search box | Filter the list by name - type to find specific elements |
| Threshold slider | Adjust how similar items need to be for auto-selection (0-100%) |
| Sort mode | Toggle between "Similarity" (best matches first) or "Alphabetical" |
| Filters | Show/hide items based on criteria like "Applied only" or "Hide unused". Some filters are tab-aware: "Applied Only" hides on Duplicates; "Hide Unscanned" shows only on Families and Shared Parameters |
Bottom Status + Empty-State Feedback
- The bottom-left status line is split into two live segments:
Global: Families/Usage/Shared Parameters readinessActive: the currently selected tab's visible state
- GM empty states are load-aware:
- During first load, grids show explicit
Loading...messaging - After load completes, zero-result states show contextual
No ...messaging and guidance
- During first load, grids show explicit
- Empty-state copy/contrast is theme-aligned for dark UI readability.
Source:
src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:867
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:4619
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1469
Main Tabs
Global Mapper organizes your work into six tabs:
- Duplicates - Find and resolve potential duplicate elements
- Families - Map families and types to replacements
- Line Styles - Replace line styles
- Object Styles - Replace object styles
- Materials - Replace materials
- Shared Parameters - Manage shared parameter assignments
Tab Guide
Duplicates Tab
The Duplicates tab automatically finds elements that might be duplicates based on name and property similarity.
[Screenshot: Duplicates tab]
How to use it:
- Open the Duplicates tab; scanning runs automatically
- Use Category to scope family duplicate rows (it stays synced with the shell-wide category state)
- Use Kind to filter duplicate sources (
All,Families,Materials,Line Styles,Object Styles,Shared Params) - Use the tree filter bar (
All/Open/Resolved/Excluded/Conflicts) to focus on groups by status - Review tree rows by source component and pick a Keep Target per source row — tree nodes show aggregate resolved counts (e.g., "Families (133) · 45 resolved")
- Toggle Apply only for rows you want commit-ready now
- Optional: uncheck Save for one-time mappings (used for this commit run only)
- Optional (families): right-click a source row and choose Edit Type Mapping... to control source-type to keep-type mappings
- Use the inspector pane (right) for candidate details and actions: toggle Inspector Pane in the top bar
- In the inspector, use the Accept split button (primary action persists selection; dropdown Accept Once for session-only mapping)
- Expand the Metadata section in the inspector to see Source ID and Instance Count
- Click Accept Applied to stage only rows that are
Apply=trueand valid/ready - Shared Parameter duplicate rows can drive Shared Parameters authoring selections (Map From + Apply) for commit
Understanding the columns:
| Column | Description |
|---|---|
| Apply | Session-only commit intent flag (defaults off and is never restored from persisted state) |
| Source | The element that will be replaced, plus metadata (Kind, Suggestions, Highest Score) shown inline |
| Keep Target | Explicit source → keep decision (single target per source, constrained to same domain/category bucket) |
| Save | Persist keep selection across sessions (off = one-time mapping for current run only) |
| Status | Review state (Ready, Accepted, Mapped, or blank) |
Readiness rules:
ReadyrequiresApply=true, non-self keep target, non-excluded row, and no validation/conflict flags.- Choosing self as Keep Target marks the row as keeper and forces
Apply=false(no-op rows cannot commit). - Accept Applied uses readiness (
member.IsReady) rather than rawApply=true. The "Applied Only" filter is hidden on the Duplicates tab (the tree filter bar supersedes it). - Keep targets, one-time save choice, and exclusions persist by row key;
Applynever persists.
Exclusion badges (Saved, Session, Saved (Overridden)) include a tooltip timestamp when ExcludedAt is available.
Conflict guardrails:
- Blocking conflicts (commit-active) prevent Review Plan.
- Advisory conflicts (restored-saved, not currently applied) still surface in the conflict flyout.
- The bottom-right conflict button appears whenever blocking or advisory conflicts exist.
- If one duplicate source is accidentally accepted to multiple targets, GM raises a duplicate multi-target conflict and provides one-click cleanup actions.
- Choosing Keep Manual for a duplicate-vs-manual conflict clears the duplicate source row's keep/apply state, so the same duplicate conflict does not immediately reappear.
Source:
src/Tools/Common/GM/Shell/ViewModels/DuplicatesModels.cs:59Source:src/Tools/Common/GM/Shell/ViewModels/DuplicatesPaneViewModel.cs:373Source:src/Tools/Common/GM/Shell/ViewModels/DuplicatesPaneViewModel.cs:538Source:src/Tools/Common/GM/Shell/ViewModels/DuplicatesPaneViewModel.cs:1915Source:src/Tools/Common/GM/Shell/ViewModels/MappingPaneViewModel.cs:44Source:src/Tools/Common/GM/Shell/Services/MappingConflictService.cs:65Source:src/Tools/Common/GM/Shell/Services/PlanBuildingService.cs:350
Families Tab
The Families tab is where you map families and their types to replacement targets.
[Screenshot: Families tab]
Main list columns:
| Column | Description |
|---|---|
| Expand (+) | Click to see details (types, materials, parameters) |
| Quantity | Number of instances of this family in the project |
| Apply | Check to include this mapping when applying changes |
| Source | The family name |
| Target | Dropdown to select the replacement family |
Working with families:
- Select a category from the dropdown at the top
- Find your source family in the list (use search to filter)
- Choose a target from the dropdown - options show similarity scores in color:
- Green = High similarity (good match)
- Orange = Medium similarity
- Red = Low similarity
- Check Apply to include this mapping
Expanding family details:
Click the + button to see:
- Types - Individual types within the family, with their own target mappings
- Type creation flow - Use each type row's Create checkbox plus New Type Name field (there is no separate header-level New Type button)
- Object Styles - Styles used by this family
- Materials - Materials used by this family
- Parameters - Parameter name mappings (with example values). Rows are split by scope:
(Instance)and(Type). - Conflicts (Parameters) - If GM detects a parameter conflict (duplicate target parameter or required type-write policy), the family row and/or parameter rows show a red
!badge with a tooltip; resolve conflicts before Review Plan - Empty/disabled tabs - Object Styles and Materials tabs remain visible but are disabled when empty; Parameters shows an empty/disabled message when scanning is unavailable or no mappable names are found.
- Nested target dropdown parity - Types/Object Styles/Materials/Parameters follow the same global Sort mode + Threshold behavior as the parent Target dropdown, including colored similarity text and score suffixes in Similarity mode
- Target dropdown wheel behavior - When a target dropdown list is open, mouse-wheel scrolling stays in that list (it does not scroll the background grid)
- Parent target propagation - When the parent family Target changes while expanded, nested dropdowns repopulate automatically; rows you manually changed stay as-is
- Consistent usage tab hydration - Expanded rows auto-refresh Object Styles/Materials once usage data is loaded, including rows restored from saved UI state
- Deep-scan object-style augmentation rows - If you explicitly deep scan a family (typically only needed when it has zero instances), DS-discovered style refs can also appear in expanded Object Styles details (badged
DS) - Deep-scan badge - Families use a single
DSbadge for deep-scanned rows; partial deep-scan warnings appear in the badge tooltip - Restored targets (DS) - If a saved mapping restores a target that is not currently in the dropdown options, GM injects it and marks it
DSin the dropdown list item with a tooltip - Usage-linked Apply badge -
OS,MAT, orOS+MATindicates the family Apply state is linked from Object Styles/Materials tabs - Nested linkage badges - In expanded family row-details, Object Styles/Materials grids show
LKbadges (OS/MAT) on the exact nested rows currently driving linkage - Usage-link guardrail -
OS/MATlinked Apply marks impact on the family row, but family-owned operations (type swaps, parameter maps, create-type) only run when that family row is explicitly user-owned - Instance cycler + zoom - Prev/next and zoom automatically navigate to the sampled instance even if it is in a different view
[Screenshot: Expanded family row]
Source:
src/Tools/Common/GM/Shell/ViewModels/FamiliesPaneViewModel.cs:315
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.UsageAndFamilies.cs:385
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:1403
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.MappingInitAndInfrastructure.cs:323
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:110
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1812
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1615
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml.cs:23
Source:src/Tools/Common/GM/Features/Previews/ViewOpsService.cs:54
Source:src/DBTools.Themes/Behaviors/MouseWheelForwarder.cs:53
Source:src/Tools/Common/GM/Shell/Services/PlanBuildingService.cs:86
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:2191
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.MappingInitAndInfrastructure.cs:338
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.MappingInitAndInfrastructure.cs:817Source:src/Tools/Common/GM/Shell/ViewModels/FamiliesPaneViewModel.cs:539Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1467Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1859Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:2012Source:src/Tools/Common/GM/Shell/ViewModels/FamiliesPaneViewModel.cs:781
Line Styles Tab
Map line styles to different line styles across your project.
[Screenshot: Line Styles tab]
Columns:
| Column | Description |
|---|---|
| Apply | Check to include this mapping |
| Source | The current line style |
| Target | The replacement line style |
| Preview | Visual preview of the style |
Tips:
- Line styles affect annotation elements, detail lines, and similar graphics
- Preview swatches help you visually compare source and target
Object Styles Tab
Map Detail Items object styles (subcategory graphics) to different styles.
[Screenshot: Object Styles tab]
How it works:
Object styles in this tab are limited to Detail Items subcategories (non-line styles). Use this tab to:
- Standardize graphics settings across Detail Items subcategories
- Replace custom object styles with standard ones
- Clean up unnecessary style variations
Additional features:
- Families Using This Style - Select a style to see which families reference it
- Preview pane - Shows the visual appearance of selected styles
- Checking Apply auto-links the corresponding families in the Families tab
- Unchecking Apply removes that style link; family Apply remains only if manually checked or linked by another source
- Lock badges are informational (origin-only). To override a duplicate-seeded mapping, edit the target directly.
- Commit opens each affected family document, ensures the mapped target style exists in that family (create if missing), syncs core style appearance from the host target, rewrites source-style references, then reloads the family into the project
- Unsupported style mappings (outside Line Styles or Detail Items Object Styles scope) are ignored before commit and shown as warnings
Materials Tab
Replace materials throughout your project.
[Screenshot: Materials tab]
Columns:
| Column | Description |
|---|---|
| Apply | Check to include this mapping |
| Source | The material to replace |
| Target | The replacement material |
| Color Preview | Visual swatch showing the material color |
| Families Count | Number of families using this material |
Working with materials:
- Find the material you want to replace
- Select a target material from the dropdown
- The color preview helps you verify you're selecting the right material
- Check Apply and apply your changes
- Families affected by this material mapping are linked in Families tab (badge:
MATorOS+MAT) - Commit updates both host-document material parameters and family-document material parameters in affected families; if target material is missing in a family doc, GM creates it and syncs core properties before rewriting references, then reloads the family
- In "Families Using This Material", the Apply indicator reflects active mapping linkage state (not just currently visible Families-tab rows), so linked families remain marked even when filtered out of the Families list
- Lock badges are informational (origin-only). To override a duplicate-seeded mapping, edit the target directly.
- Unsupported material mappings (source/target not resolvable in the host document) are ignored before commit and shown as warnings
Source:
src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:908
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1615
Source:src/Tools/Common/GM/Features/Mapping/Writers/StyleChangeService.cs:203
Source:src/Tools/Common/GM/Features/Mapping/Writers/MaterialChangeServiceWriter.cs:209Source:src/Tools/Common/GM/Shell/Services/PlanBuildingService.cs:231
Note: Material changes affect both appearance and any associated physical/thermal properties.
Shared Parameters Tab
Add shared parameters to families and categories, or map existing parameters to shared parameters.
[Screenshot: Shared Parameters tab]
Layout:
The tab has two panels:
- Left panel - A category → family → type tree (curated categories) with instance sampling
- Right panel - SP authoring cards for the selected type (Apply, Host-level vs Embed-in-family, Map From / Formula)
How to use it:
- Select an SP Group from the dropdown
- In the tree, expand a curated category (Doors, Mechanical Equipment, Walls, Windows)
- Category labels include counts like
Mechanical Equipment (12) - Empty categories show
(0)and are dimmed
- Category labels include counts like
- Expand a family and select a type to see:
- Existing parameters and sampled values
- Shared parameters from the selected group that you can add / map
- Check Apply for each shared parameter you want to add
- Choose the binding mode:
- Host-level - Parameter added to the category (project parameter)
- Embed-in-family - Parameter added inside the family document
- Plan validation checks that each selected type is still aligned with its owning family/category context before commit; mismatched or stale selections are rejected with explicit errors before apply
Loading behavior:
- On the first visit to the tab, GM lazily loads shared parameter groups and prewarms the curated categories (you may briefly see the loading overlay once).
- After the initial load, expanding/collapsing nodes (including double-click) never triggers the progress overlay.
Instance Navigator:
When expanded, you can cycle through instances to see different parameter values:
- Use the left/right arrows to navigate between instances
- Click Zoom to Instance to jump to the instance even when it is not in the currently active view
- The instance navigator appears centered between the SP Group dropdown and the SP Authoring pane when a type is selected and instances are sampled
Source:
src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.MappingInitAndInfrastructure.cs:755
Source:src/Tools/Common/GM/Shell/ViewModels/SharedParametersPaneViewModel.cs:246
Source:src/Tools/Common/GM/Shell/ViewModels/SharedParametersPaneViewModel.cs:1672
Source:src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:3296
Source:src/Tools/Common/GM/Shell/Services/PlanBuildingService.cs:489
Step-by-Step Workflows
Workflow 1: Consolidating Duplicate Families
Goal: Find and merge duplicate families to reduce project bloat.
- Open Global Mapper
- Go to the Duplicates tab
- Wait for the automatic scan to complete (see the status bar)
- Review the Families group
- For each source row:
- Select the keep target in Keep Target
- Use the right details panel for candidate rationale when needed
- Ensure Apply is checked
- Click Accept Applied
- Click Review Plan
- Review Commit Review
- Click Apply, then choose Accept + Continue (or Accept + Close GM). Use Rollback if you want to discard the apply session.
Tips:
- Start with high-similarity matches (90%+) which are almost certainly duplicates
- Lower the threshold to find more potential duplicates
- Use Accept Applied to batch accept your staged rows
Workflow 2: Replacing a Family with a New Standard
Goal: Replace an old family with a new company-standard family throughout the project.
- Open Global Mapper
- Go to the Families tab
- Select the appropriate Category (e.g., Doors)
- Find your old family in the list
- Click the Target dropdown
- Select your new standard family
- Click + to expand and verify type mappings:
- Map each old type to the corresponding new type
- Use
for types you don't want to transfer
- Check Apply on the family row
- Click Review Plan
- Review Commit Review and verify instance counts
- Click Apply, then choose Accept + Continue (or Accept + Close GM). Use Rollback if you want to discard the apply session.
Workflow 3: Adding Shared Parameters to Families
Goal: Add a shared parameter to multiple families at once.
- Open Global Mapper
- Go to the Shared Parameters tab
- In the left panel, select the parameter group containing your parameter
- In the right panel, select the Category (e.g., Mechanical Equipment)
- Expand the families you want to add the parameter to
- In the shared parameters section, check Apply for your parameter
- Choose the binding mode:
- Host-level for a project parameter (easier, affects category)
- Embed-in-family to add it directly to the family (requires family edit)
- Optionally, use Map From to copy values from an existing parameter
- Click Review Plan
- Review, click Apply, then choose Accept + Continue (or Accept + Close GM). Use Rollback if you want to discard the apply session.
Workflow 4: Standardizing Materials
Goal: Replace multiple similar materials with a single standard material.
- Open Global Mapper
- Go to the Materials tab
- Use the Search box to find materials by name
- For each material you want to replace:
- Select the standard material in the Target dropdown
- Check Apply
- Alternatively, use the Duplicates tab to find similar materials automatically
- Click Review Plan
- Review Commit Review to see affected elements
- Click Apply, then choose Accept + Continue (or Accept + Close GM). Use Rollback if you want to discard the apply session.
Settings and Options
Similarity Threshold
The threshold slider (0-100%) controls automatic target selection:
| Threshold | Effect |
|---|---|
| High (80-100%) | Only very similar items are auto-selected; fewer suggestions |
| Medium (50-79%) | Balanced - good matches suggested with some flexibility |
| Low (0-49%) | More suggestions shown; useful for finding loose matches |
Note: Manual selections are never changed by threshold adjustments.
This applies to both top-level rows and expanded-row nested dropdowns.
On the Duplicates tab, threshold controls which keep-target candidates appear for each source row.
Opening a dropdown and closing it without choosing a different option does not count as a manual selection.
Rows that were not manually changed continue to auto-select the highest-scoring target above threshold.
If no option qualifies, GM keeps a blank programmatic default (no auto-assigned target); <Do Not Map> remains an explicit user choice in the expanded Types dropdown.
Source:
src/Tools/Common/GM/Shell/ViewModels/FamiliesPaneViewModel.cs:1094
Source:src/Tools/Common/GM/Shell/ViewModels/FamiliesPaneViewModel.cs:1126
Sort Mode
| Mode | Description |
|---|---|
| Similarity | Best matches shown first, with color-coded similarity scores |
| Alphabetical | Items sorted A-Z; no similarity scoring displayed |
Filters
| Filter | What It Does |
|---|---|
| Hide Unused | Hide elements with zero instances in the project |
| Hide Unscanned | Hide families that haven't been deep-scanned |
| Applied Only | Show applied rows, including externally-originated and usage-linked family rows |
Deep Scan
Some family information (like embedded parameters and nested families) requires a deep scan - a more thorough analysis that opens the family document. Deep scan is always user-initiated (GM does not auto-scan families when you expand a row).
When you need deep scan:
- Unlocking expanded details for families with zero instances ("Scan required")
- Getting embedded-definition details (for example nested family graphs) when they are not available from a placed instance
Note: For families with instances, expanded-row Object Styles and Materials are populated by walking a single placed instance, so deep scan is usually not necessary for styles/materials.
How to deep scan:
- Find a family row showing "Scan required" or missing details
- Click the Scan Family button in the expanded details
- Wait for the scan to complete (may take a few seconds)
- Details will populate once the scan finishes
Note: Deep scan results are cached globally, so you typically only need to scan each family once (unless the family changes). GM also attempts to hydrate deep-scan results from cache on startup for eligible families with 0 instances (strict restore; no banner on failure). Use Clear Deep Scan Cache to force a re-scan.
Important: Clicking Scan Family always performs a fresh deep scan and overwrites any existing cache entry.
Bulk scan shortcut (Families tab):
- Use the top-bar Deep Scan Unscanned icon to scan all unscanned families with 0 instances in the current category (confirm dialog + progress overlay).
Cache restore note: If GM cannot restore cached deep-scan results in the current document (strict restore; for example missing/ambiguous styles or materials), it will log a warning and keep the family unscanned until you deep scan it.
Source:
src/Tools/Common/GM/Shell/Services/DeepScanOrchestrationService.cs:128
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.MappingInitAndInfrastructure.cs:1144
Tips and Tricks
Power User Tips
Use keyboard shortcuts
Ctrl+F- Focus the search boxEnter- Apply current selectionEscape- Cancel and close dialogs
Work in batches
- Check multiple rows, then apply all at once
- Use Accept Applied in Duplicates for quick processing
Preview before applying
- Commit Review shows planned changes and post-apply outcomes
- Use Close if something looks wrong (no model edits run until you click Apply)
Save your progress
- Mapping preferences are saved per-project
- Reopen GM to see your previous selections
Start with duplicates
- Duplicate detection runs automatically and helps identify obvious consolidations
- Accepted duplicates automatically lock related rows
Best Practices
- Back up first - Even with Commit Review and Revit Undo, always save your project before bulk changes
- Start small - Test with a few mappings before processing hundreds
- Verify visually - After applying, spot-check some instances in views
- Use filters - "Applied Only" filter helps review what you're about to change
- Check quantities - The instance count shows how many elements will be affected
Troubleshooting
Common Issues
| Problem | Possible Cause | Solution |
|---|---|---|
| No families appear | Wrong category selected | Select a different category from the dropdown |
| Target dropdown is empty | No other families in category | Load additional families into the project |
| "Scan required" message | Family needs deep scan | Click "Scan Family" to analyze the family |
| Review Plan button is disabled | No mappings selected | Check Apply/Map on at least one row |
| Changes didn't take effect | Apply was canceled or rolled back | Reopen Commit Review and click Apply again |
| Apply appears stuck near 90% | A long-running Revit API call is still in progress | Click Cancel once and wait for the in-flight call to return; if it does not recover, capture the latest DBTools log and report it |
| Cancel button seemed unresponsive | An apply step is still finishing on the Revit call queue | Keep the overlay open; cancellation is queued and cleanup runs as soon as the active Revit call returns |
| Some instances weren't replaced | Type mapping incomplete | Expand the family and verify all type mappings |
| "Locked by Families tab" | Nested mapping set elsewhere | Change the mapping in the Families tab instead |
Source:
src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:286
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:548
Error Messages
| Message | What It Means | What to Do |
|---|---|---|
| "Invalid mapping" | Source and target are the same | Select a different target |
| "Target not available" | Target family/type was deleted | Reload the family or choose a different target |
| "Deep scan failed" | Family document couldn't be opened | Check if the family file is accessible |
| "Conflict detected" | Multiple sources map to the same target | Resolve in the conflict panel |
If Global Mapper Won't Open
- Ensure a Revit document is open and active
- Check that DBTools is properly loaded (look for the ribbon tab)
- Restart Revit and try again
- Check the Revit journal file for error details
Frequently Asked Questions
General Questions
Q: Can I undo changes made by Global Mapper?
A: Yes, in two ways:
- Before applying, just Close Commit Review (no changes are made until you click Apply)
- After applying (before accepting), Commit Review offers Rollback which rolls back the pending transaction group (discarding all apply changes from that session)
- After accepting, you can use Revit's standard Undo command
- GM applies operations through Revit transactions and wraps an accepted apply in a single undo group, so one accepted apply generally corresponds to one Undo entry.
Source:
src/DBTools.Core/Revit/Transactions/CallGateTransactionGroupService.cs:1
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:1
Q: Will this affect linked files?
A: No, Global Mapper only modifies elements in the current document, not linked files.
Q: How long does applying changes take?
A: It depends on the number of elements being modified. A few dozen changes are nearly instant; thousands may take several minutes. A progress overlay shows the current status.
Q: What happens if I close Commit Review with the X button during commit?
A:
- During apply: GM treats it like an explicit cancel request. It requests cancellation, runs cleanup, then closes the window.
- After apply (pending accept/rollback): Commit Review prompts you to Accept + Continue, Accept + Close GM, or Rollback before closing.
Source:
src/Tools/Common/GM/Shell/Views/CommitReviewWindow.xaml.cs:44
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:267
Q: Why can Commit Review show Failed: 1 while multiple families failed in Failed Operations?
A: Failed in the rules summary is the number of failed mapping rules. A single mapping rule can run across many families. Use the Families status line (Planned / Attempted / Failed) and the Failed Operations summary row (which aggregates per-family failures) to understand fan-out.
Source:
src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:770
Source:src/Tools/Common/GM/Shell/ViewModels/CommitReviewViewModel.cs:1013
Source:src/Tools/Common/GM/Features/Mapping/Writers/StyleChangeService.cs:489
Q: Are my mapping preferences saved?
A: Yes. Successful mappings and UI state are saved per-project and restored on reopen. On reopen, saved mapping targets are restored as suggestions, but Apply is left off by default so nothing is pre-enabled for commit. You can clear saved data from GM using:
- Clear Saved Mappings (mapping selections)
- Clear Saved UI State (tab/search/filter/scroll state)
- Clear Deep Scan Cache (deep-scan data and DS badges)
- Clear Saved Mappings writes an empty mapping snapshot immediately, so cleared mappings do not come back from stale saved files on reopen.
- If GM cannot write saved mappings to disk, it logs the failure and shows an error banner (your mapping preferences may not persist for the next session).
- Saved style mappings are restored only when source and target still exist in the same style scope (Line Styles or Object Styles). Stale cross-scope style mappings are ignored.
- Style usage rows are normalized to canonical projection style IDs, so Object Styles family-usage counts stay tied to the real style after reopen/refresh.
- Usage rows are constrained to the active tab universes (Materials, Line Styles, Detail Items Object Styles) so stale/out-of-scope IDs do not appear as extra rows.
Source:
src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:3118
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:3322Source:src/Tools/Common/GM/Shell/Services/UiStatePersistenceService.cs:86Source:src/Tools/Common/GM/Shell/ViewModels/UsagePaneViewModel.cs:676Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.MappingInitAndInfrastructure.cs:487Source:src/Tools/Common/GM/Shell/ViewModels/UsagePaneViewModel.cs:298Source:src/Tools/Common/GM/Shell/Services/PlanBuildingService.cs:148
Families Questions
Q: What happens to parameters when I replace a family?
A: GM transfers parameter values only when you explicitly configure mappings in the expanded Parameters grid. Parameter mappings are name-based, scoped ((Instance) vs (Type)), and executed during type replacements.
If a type-scope mapping would write into a target type that already has instances, GM blocks commit until you choose a policy:
- Keep target type values (skip type-scope copies)
- Overwrite target type values (allow type-scope copies)
Source:
src/Tools/Common/GM/Shell/ViewModels/FamiliesPaneViewModel.cs:781Source:src/Tools/Common/GM/Features/Mapping/Writers/TypeChangeService.cs:451Source:src/Tools/Common/GM/Shell/Services/MappingConflictService.cs:635
Q: Can I replace a family with one from a different category?
A: No, you can only replace families within the same category. This is a Revit limitation.
Q: What if the target family doesn't have all the types I need?
A: You can create new types directly in Global Mapper. In the expanded type mapping section, enable the row-level Create checkbox and enter a value in New Type Name.
Source:
src/Tools/Common/GM/Shell/Views/GmShellWindow.xaml:1812
Source:src/Tools/Common/GM/Shell/ViewModels/ShellViewModel.CoreAndCommands.cs:1182
Materials Questions
Q: Will replacing a material change its appearance in renders?
A: Yes, the replacement material's appearance will be used everywhere the original material was applied.
Q: Can I preview materials before replacing?
A: Yes, the color preview swatch shows each material's appearance. Select a row to see more details in the preview pane.
Shared Parameters Questions
Q: What's the difference between Host-level and Embed-in-family?
A:
- Host-level creates a project parameter bound to a category. Easier to set up, but the parameter lives in the project, not the family.
- Embed-in-family adds the parameter directly to the family definition. Requires editing the family, but the parameter travels with the family to other projects.
Q: Can I map an existing parameter to a shared parameter?
A: Yes, use the "Map From" dropdown to select an existing parameter. Values will be copied from that parameter to the new shared parameter.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+F |
Focus search box |
Enter |
Confirm current action |
Escape |
Cancel/close dialog |
Tab |
Move between tabs |
Space |
Toggle Apply checkbox (when row selected) |
Getting Help
If you encounter issues not covered in this guide:
- Check the DBTools log files for detailed error information
- Contact your BIM Manager or IT support
- Visit the DBTools support resources
Summary
Global Mapper streamlines bulk element management in Revit by providing:
- Intelligent matching - Similarity scoring suggests the best replacements
- Comprehensive coverage - Families, types, materials, styles, and parameters
- Safe workflow - Review outcomes before finalizing, with full rollback support
- Time savings - Replace hundreds of elements in minutes instead of hours
Start with the Duplicates tab to find quick wins, then use the Families tab for targeted replacements. Remember to review Commit Review before committing.