> ## Content Index
> Fetch the complete content index at: https://topographer-com.ghost.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# Can Revit Import XYZ Files? A Practical Answer
- URL: https://topographer-com.ghost.io/can-revit-import-xyz-files-a-practical-answer/
- Published: 2026-08-09T07:48:08.000Z
- Updated: 2026-08-30T23:04:32.000Z
- Author: Aki Olafsson

Yes. Since Revit 2024, Revit imports a plain XYZ point file directly into an editable Toposolid, with no Dynamo, no plugin and no Civil 3D. The command is **Massing & Site > Toposolid > Create from Import > Create from Points File**, and it reads a comma-delimited CSV of X, Y, Z values.

The catch is not the import command. It is everything that has to be right in the file before you run it: column order, delimiter, units, point count and where the coordinates sit relative to Revit's origin. Get those wrong and the terrain arrives mirrored, stretched, hundreds of kilometres away, or quietly truncated to a fraction of your points.

This is the practical version: what Revit actually accepts, how to prepare the file, and how to check the result.

## What Revit accepts

The Toposolid points importer reads:

- **CSV points files** (comma-delimited text, one point per row)
- DWG, DXF and DGN files that contain 3D points

A file with a `.xyz` extension is usually just comma or space delimited text. Revit's import dialog filters for `.csv`, so **rename `your-file.xyz` to `your-file.csv`**. This is safe because both are plain text; you are not converting anything, you are only letting the file browser show it. If the `.xyz` file is space delimited rather than comma delimited, do a find and replace of spaces for commas first.

Revit will **not** turn a `.rcp` / `.rcs` point cloud into editable terrain. Point clouds are a visual reference only. If all you have is a scan, you need to extract a ground surface from it first, outside Revit.

## Prepare the file before you import

Five things break a Toposolid import, roughly in order of how often they cause silent problems.

**1\. Column order.** Revit expects `X, Y, Z`. Survey files often ship as Northing, Easting, Elevation, which is `Y, X, Z`. Import that unchanged and your site is mirrored across the diagonal. Reorder the columns in a spreadsheet before you import.

**2\. Delimiter versus decimal separator.** Keep a period as the decimal separator and a comma as the field delimiter. In Nordic and other European locales a comma is the decimal separator (`51,234` means 51.234), which collides with a comma delimiter and produces nonsense. Fix the decimals to periods, or switch the delimiter to a semicolon and know that you did.

**3\. Units.** Revit asks for units on import. A file in metres imported as feet lands about 3.28 times too large; feet imported as metres lands compressed. Answer the prompt deliberately, and check whether US survey feet or international feet are in play on a US state plane grid.

**4\. Point count.** Revit 2024 and 2025 automatically downsample any point-file import to **10,000 points**. If your CSV has 40,000 points, Revit keeps a subset and you do not choose which. Regenerate the data at a wider spacing so you control what survives. Revit 2026 lets you raise the ceiling with a `Revit.ini` edit, but performance still degrades past roughly 15,000 to 20,000 points, so denser is not free.

**5\. Distance from Revit's origin.** Revit's model plane extends about 10 miles (16 km) from the internal origin. National grid, state plane and UTM coordinates put every point hundreds of kilometres out. You will see the "geometry has extents greater than 20 miles" warning, and precision degrades well before that. Subtract a fixed offset from every X and Y (the first point rounded to a whole metre is an easy choice), record the offset in the project survey information, and apply the same offset to every other coordinated file.

A clean file looks like this:

```
X,Y,Z
365412.320,7042118.900,84.350
365413.500,7042118.850,84.120

```

A header row is fine. Revit's import lets you skip the first row.

## Step by step

1. Prepare the CSV: `X, Y, Z` order, comma delimited, period decimals, coordinates offset near origin, point count below your target.
2. In Revit, open a site or plan view. Set and pin the project base point and survey point.
3. Go to **Massing & Site > Toposolid**, open the split button, and choose **Create from Import > Create from Points File**.
4. Select the CSV. Answer the units prompt.
5. Revit creates the Toposolid. Open a 3D view and check it landed near origin, the right way round, at a sensible elevation.
6. Set the **Elevation Base** parameter to Project or Level deliberately. If points land at odd heights, this is usually why.
7. Assign the Toposolid to the Existing phase and pin it. Any grading goes on a copy in a later phase via a Graded Region, so the cut and fill schedule works.

## Toposolid, not Toposurface

Before Revit 2024, terrain was a Toposurface: a triangulated skin. From Revit 2024 the terrain element is the Toposolid, which behaves more like a floor, with a type, a thickness and sub-divisions. Toposurface creation was hidden in 2024 and removed in 2025.

Two related tools also changed. **Building Pads were removed** (Revit 2025). To sit a building into the terrain, use the **Excavate** tool or a **Graded Region** on the Toposolid, not a pad.

## When Dynamo is worth it

The native command covers almost every project. Reach for a Dynamo graph only when you need to:

- repeat the same import across many sites with the same offset and unit conventions
- get past the 10,000 point downsample when you genuinely cannot regenerate at a lower density
- do something the ribbon does not expose, such as pre-filtering points to a polygon or exporting Toposolid points back to CSV

Be aware that the Toposolid Dynamo API has changed between Revit versions and is still uneven. A graph written for 2024 may not run on 2026 without work, so version-check and pin it to the project.

## Verify before you design

A Toposolid that looks plausible in a 3D view can still be wrong.

- Place a few **spot elevations** on identifiable points (road centreline, kerb, building corner) and compare them against the source CSV.
- Cut a **section** through the building footprint, the access route and the site edges, and look for triangulation crossing features it should respect.
- Compare a specific **easting and northing** against a known survey control point, not just the overall shape.
- Check the **perimeter**, where interpolation artefacts usually live.

Then name the element properly (Existing Terrain, source, capture date, spacing) so anyone opening the model later knows what it is.

## FAQ

**Does Revit have a native command to import a CSV into terrain?** Yes, since Revit 2024: **Massing & Site > Toposolid > Create from Import > Create from Points File**. It reads a comma-delimited `X, Y, Z` CSV and asks for units. No Dynamo, Civil 3D or plugin required.

**Can Revit read a file with a `.xyz` extension?** Rename it to `.csv` first so the import dialog shows it. If it is space delimited, replace the spaces with commas. The data does not change.

**Why did only some of my points come through?** Revit 2024 and 2025 downsample point-file imports to 10,000 points. Regenerate at a wider spacing so you choose which points you keep, or raise the limit via `Revit.ini` on Revit 2026.

**My terrain landed hundreds of kilometres away. What now?** Subtract a fixed offset from every X and Y in the CSV, document the offset, and apply the same offset to the surveyor's DWG and the civil model. Do not delete the link to real-world coordinates, just record the transformation.

**Do I still need Toposurface?** No, for new work. Toposolid replaced it. Existing Toposurfaces still open, and there is a Generate Toposolid option on the Modify ribbon to convert one.

### **Generate Revit-ready XYZ data from a map**

  
Topo-grapher turns a drawn site boundary into a clean, georeferenced `X, Y, Z` CSV at the point spacing you choose, ready for Create from Points File. Select your site on a map and download lightweight, editable data that drops straight into a Toposolid, sourced from [authoritative elevation datasets.](https://topo-grapher.com/elevation-data-coverage.html?ref=topographer-com.ghost.io) It removes the tile hunting and the coordinate conversion; the offset and unit discipline above still belongs inside every Revit project.

  
[See the Revit topography workflow →](https://topo-grapher.com/topography-for-revit.html?ref=topographer-com.ghost.io)