> ## Documentation Index
> Fetch the complete documentation index at: https://help.trytuuli.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Estimating Costs from a Revit Material Schedule

> Upload a Revit or BIM material takeoff as a CSV, get AI-matched unit costs per line item, filter by scope preset or workset, and export your cost estimate.

The Cost Matching workflow takes a material schedule exported from Revit (or any compatible BIM tool) as a CSV file and automatically matches each material line to a unit cost from the built-in construction cost database. Results are grouped hierarchically by assembly, filtered by workset or building division, and can be compared across multiple versions of your takeoff — all without manual data entry.

## Preparing your CSV export from Revit

For the best matching results, your CSV should include the following columns. Column names are flexible, but the more context you provide the higher the match confidence.

| Column           | Purpose                                                             |
| ---------------- | ------------------------------------------------------------------- |
| **Family**       | Revit family name — used for grouping and matching                  |
| **Type**         | Variant within the family (e.g., `Standard Modular`)                |
| **Workset**      | Scope classifier (e.g., `Interior`, `Exterior`, `Structure`, `MEP`) |
| **Assembly**     | Logical assembly name for hierarchical grouping                     |
| **Quantity**     | Numeric quantity                                                    |
| **Unit**         | Unit of measure (m², m³, LF, EA)                                    |
| **Manufacturer** | Optional — improves match accuracy                                  |

<Tip>
  Use consistent Workset names across your model. Values like `Interior`, `Exterior`, `Structure`, and `MEP` map directly to the built-in scope presets and make preset filtering accurate.
</Tip>

## Uploading a file

<Steps>
  <Step title="Select a project">
    Choose a project from the sidebar. Cost matching files are stored per project.
  </Step>

  <Step title="Open the upload dialog">
    Click **Upload** on the Cost Matching page. A dialog gives you two choices:

    * **New file** — start a fresh analysis with no version history
    * **New version of an existing file** — attach the upload to an existing file so the version history sidebar tracks the change
  </Step>

  <Step title="Select your city">
    Choose the city or region that should anchor the cost data. Pricing varies by market, so selecting the correct city is important for accurate estimates.
  </Step>

  <Step title="Upload and process">
    Select your CSV file and click **Process Materials**. Processing begins immediately.
  </Step>
</Steps>

## What happens during processing

Processing runs in two sequential phases:

1. **Parsing and cleanup** — your CSV rows are parsed, material names are normalized, and ambiguous entries are classified. A progress bar shows the number of rows being cleaned.
2. **Cost matching** — each cleaned material is matched against the cost database. The system reports the current material name and an overall progress count as it works through your schedule.

Match results carry a confidence indicator:

| Confidence           | Meaning                                                 |
| -------------------- | ------------------------------------------------------- |
| **High** (green)     | 80–100% match — the cost item is a strong fit           |
| **Medium** (yellow)  | 50–79% match — review before accepting                  |
| **Low** (orange)     | 20–49% match — manual review recommended                |
| **Learned** (purple) | Match was refined from a previous run on your workspace |

## Viewing results

### Hierarchical view

By default, results are grouped by assembly. Each group header shows the assembly name, the number of materials in the group, and the group subtotal. Click the expand arrow to see individual materials, their matched cost items, unit prices, quantities, and line totals.

### Table view

Switch to **Table** view using the toggle above the results to see all materials as a flat list. Table view is useful for scanning the full schedule or exporting a specific selection.

<Note>
  The total estimated cost appears at the top of the results panel and updates in real time as you apply filters or exclude items.
</Note>

## Material presets and divisions

The filter panel on the left includes preset scopes that let you instantly narrow the estimate to a recognised construction division. Available presets include:

<CardGroup cols={2}>
  <Card title="Whole Building" icon="building">
    All materials — the default unfiltered view.
  </Card>

  <Card title="Core and Shell" icon="layers">
    Structure, exterior envelope, and base-building systems.
  </Card>

  <Card title="Interior Fit-Out" icon="layout">
    Interior partitions, finishes, furniture, fixtures, and equipment.
  </Card>

  <Card title="Warm Shell" icon="thermometer">
    Core and shell plus tenant MEPF and base finishes.
  </Card>

  <Card title="Cold Shell" icon="wind">
    Structural frame and building envelope only, excluding mechanical fit-out.
  </Card>

  <Card title="Substructure" icon="anchor">
    Foundations and below-grade construction.
  </Card>
</CardGroup>

Additional presets cover MEP trade packages, site and civil work, sustainability items, and more. Select a preset to filter the material list and update the total cost instantly.

## Filtering results

Beyond presets, you can combine filters from the filter panel:

* **Worksets** — limit to one or more Revit worksets (e.g., show only MEP materials)
* **Families** — filter to a specific Revit family name
* **Assemblies** — show a single assembly group
* **Types** — narrow to a specific family type

Active filter counts appear next to each section header. Clear individual filters or reset all filters using the controls at the top of the panel.

## Editing unit costs manually

To override an AI-matched unit cost:

<Steps>
  <Step title="Expand the material">
    Click the row expand arrow in hierarchical view, or find the material in table view.
  </Step>

  <Step title="Open the edit dialog">
    Click the pencil icon next to the unit cost. The cost edit dialog opens.
  </Step>

  <Step title="Enter the new unit cost">
    Type the revised unit cost. The line total and group subtotal update automatically when you save.
  </Step>
</Steps>

<Tip>
  Manual edits are flagged visually so you can distinguish your overrides from AI-matched values when you export or share the estimate.
</Tip>

## Comparison mode

When you have two or more versions of a file, you can compare them side by side:

<Steps>
  <Step title="Open version history">
    Click **History** to open the version history sidebar on the right. Each version card shows the file name, upload date, material count, city, and total cost.
  </Step>

  <Step title="Enable comparison mode">
    Click the **Compare** toggle in the results header. A second column appears alongside the current results.
  </Step>

  <Step title="Select a version to compare">
    Pick the comparison version from the sidebar. The side-by-side view highlights materials that changed cost, were added, or were removed between versions.
  </Step>
</Steps>

## Exporting results

Click **Export** in the results header to download the current view. Two formats are available:

* **CSV** — a flat spreadsheet of all materials, quantities, matched costs, and totals. Respects the active filters so you can export a subset (for example, just the mechanical scope).
* **DOCX** — a formatted cost report document suitable for inclusion in bid packages or client deliverables.

<Note>
  Exports always reflect the currently active filters and any excluded items, so what you see on screen is what you get in the file.
</Note>

## Version history

Every upload creates a new version entry in the history sidebar. You can:

* **Load a past version** to review its results
* **Download the original CSV** from any version card
* **Delete a version** you no longer need

Version history persists for the lifetime of the project and is visible to all team members with access to the workspace.
