PMM Bridge is a web-based CSV import tool that sits between your SketchUp model and Buildertrend. It takes data exported from SketchUp, reformats it to match Buildertrend's import templates, and — after a Purchase Order is confirmed — reconciles the approved PO data back into your SketchUp model to keep everything in sync.
| Tab | Direction | What it does |
|---|---|---|
| 🎨 Selections Import | SU → BT | Formats your SketchUp component data for Buildertrend's Selections sheet — Title, Category, Location, Allowance, Deadline, Instructions |
| 📋 Estimate Import | SU → BT | Formats your SketchUp component data for Buildertrend's Estimate — Title, Cost Code, Cost Type, Quantity, Unit Price, Amount, and optional Allowance flagging |
| 🔄 BT PO → SketchUp | BT → SU | After a BT estimate is approved and converted to a Purchase Order, reconciles the confirmed PO data back into your SketchUp model attributes. BT always wins on conflicts. |
Every component in SketchUp gets a unique pmm_id stamped into its attributes by the PMM Bridge Exporter plugin the first time it's exported. This ID survives every round trip between SketchUp and Buildertrend and is the key that lets PMM Bridge know which BT line item corresponds to which model element.
pmm_id is generated automatically — never edit or delete it manually. Without it, the BT PO → SketchUp sync cannot match records.trilogydesignintelligence.github.io/PMM-Bridge in ChromeEvery mode starts with loading a source CSV. You have two options:
Google Drive — click the Google Drive button, sign in with your Google account, and select your CSV from Drive. Shared drives and workspace files are both accessible.
Local file — click Browse Local File (or drag and drop) to load a CSV from your computer.
All three modes follow the same pipeline shown at the top of the page:
| Step | What happens |
|---|---|
| 1 · Load File | Load your source CSV from Drive or locally |
| 2 · Map Columns | Tell PMM Bridge which CSV column corresponds to each Buildertrend field. PMM Bridge auto-detects common column names. |
| 3 · Options | Set grouping, unit labels, amount calculation, filename, and any mode-specific settings |
| 4 · Download | Review the output preview and download your formatted CSV |
Use this mode when you want to populate Buildertrend's Selections sheet with items from your SketchUp model — typically finish selections, material allowances, and client-choice items.
| Field | Required | Notes |
|---|---|---|
| Title | ✓ Required | Selection item name |
| Category | ✓ Required | e.g. Flooring, Plumbing Fixtures, Appliances |
| Location | Optional | Room or area, e.g. Primary Suite, Kitchen |
| Allowance | Optional | Dollar amount budgeted for this selection |
| Deadline | Optional | Date by which client must decide. Can set a default for all rows. |
| Instructions | Optional | Public-facing notes visible to the client in BT |
| Selections Notes | Optional | Internal notes — not visible to client |
| Cost Code | Optional | BT cost code for accounting |
Download your formatted CSV from PMM Bridge
In Buildertrend, go to Selections → Import
Upload the CSV and use BT's column mapping wizard to match fields
Review and confirm
Use this mode to format your SketchUp component data for Buildertrend's Estimate import wizard. This is typically your first step when setting up a new project in BT from a SketchUp model.
| Field | Required | Notes |
|---|---|---|
| Title | ✓ Required | Line item name |
| Cost Code | ✓ Required | BT cost code / accounting category |
| Cost Type | Optional | Labor, Material, Sub, Equipment, Other |
| Group | Optional | Phase or trade grouping |
| Description | Optional | Detailed description of the line item |
| Quantity | ✓ Required | Numeric quantity |
| Unit | Optional | EA, LF, SF, LS — defaults to EA if not mapped |
| Unit Price | ✓ Required | Cost per unit |
| Amount | Optional | Can be calculated automatically (Qty × Unit Price) |
| Vendor / Sub | Optional | Assigned vendor or subcontractor |
| Internal Notes | Optional | Not visible to client |
| Mark As | Optional | Set to "Allowance" to route items to the Selections sheet |
The Allowance Flagging section in the Options panel lets you automatically mark certain rows as Allowance in the output. When BT imports these, it routes them to the Selections sheet instead of the standard estimate line items.
Enable Allowance Flagging in the Options panel
Choose which source column to check (e.g. type or category)
Enter the value to match (e.g. selection or allowance) — leave blank to flag all rows
Matching rows will show ● Allowance in the output preview and the Mark As column in the downloaded CSV
After a Buildertrend estimate is approved by the client and converted into a confirmed Purchase Order, use PMM Sync to reconcile the PO data back into your SketchUp model. This keeps your model attributes in sync with what was actually ordered — quantities, pricing, vendor assignments, and cost codes.
pmm_id columnClick the BT PO → SketchUp Model · PMM Sync tab — a Back button appears to return to the main modes
Load your SketchUp Export CSV using Google Drive or Browse Local (top left zone)
Load your Buildertrend PO Export CSV using Google Drive or Browse Local (top right zone)
Map the BT column mapping fields — especially the PMM ID (match key) which is required. PMM Bridge will auto-detect common column names.
Click Reconcile & Diff
Before reconciling, PMM Bridge validates every field and shows you a coverage report:
| Status | Meaning |
|---|---|
| ✓ Will sync | Field exists in both files and is correctly mapped — will update SketchUp |
| ⚠ Unmapped | Field exists in SU export but no BT column is mapped to it — will be skipped. A 💡 means a likely match was detected — scroll up and map it. |
| ✕ Bad column | Mapped to a BT column that doesn't exist in the loaded file — check the column name |
| ℹ BT only | Mapped but the field isn't in your SU export — won't write back |
After reconciling, you'll see a summary with four stat boxes and a diff table showing exactly what changed:
pmm_id not found in the BT export (component may have been removed or renamed in BT)Use the tabs to filter the view: All / Changed / Unmatched / Unchanged. Changed rows show the old SU value struck through and the new BT value in gold.
Open your SketchUp model
Go to Plugins → PMM Bridge — Import from BT
Select the Reconciled CSV downloaded from PMM Bridge
The importer matches each row by pmm_id and writes the updated values back into the component's dynamic_attributes dictionary
A summary dialog shows how many components were updated and saves a timestamped change log CSV alongside the source file
Here's how PMM Bridge fits into the complete PMM Tools project lifecycle:
Build your SketchUp model. Use your template plugin to add type, cost_code, category, and other PMM attributes to each component.
Run Plugins → PMM Bridge — Export to CSV. This stamps a pmm_id on each component and exports one CSV per component type (selections, estimate, PO).
Save the export CSVs to your PMM in the Sky Google Sheet folder.
Open PMM Bridge → Selections Import. Load your selections CSV from Drive, map columns, download the BT-formatted CSV.
Import the Selections CSV into Buildertrend's Selections sheet.
Open PMM Bridge → Estimate Import. Load your estimate CSV from Drive, map columns, download the BT-formatted CSV.
Import the Estimate CSV into Buildertrend's Estimate module.
In Buildertrend, work through your estimate. When the client approves, BT converts the estimate to a Purchase Order.
Export the confirmed PO from Buildertrend as a CSV.
Open PMM Bridge → BT PO → SketchUp Model · PMM Sync.
Load your original SU export + the BT PO export. Map fields, reconcile, review the change report.
Download the Reconciled CSV and Change Log.
In SketchUp: Plugins → PMM Bridge — Import from BT → select the Reconciled CSV. Model attributes update automatically.
trilogydesignintelligence.github.io — the Drive picker won't work from a local file:// URLtitle, cost_code, quantity, etc.) most fields will pre-fill automaticallypmm_id column — if not, export fresh using the PMM Bridge Exporter pluginpmm_id valuesHighMeadow_Selections_R1