This repository contains a Python (ArcPy) script that audits georeferencing metadata for BIM files stored in a folder structure.
The script recursively scans Revit (.rvt) and IFC (.ifc) files, extracts recorded spatial reference (CRS) information and exterior model extents, evaluates georeferencing readiness, and generates a timestamped, human‑readable text report.
The output is intended to support BIM intake validation, BIM‑to‑GIS workflows, and vendor quality assurance prior to integrating BIM data into GIS environments such as ArcGIS Pro.
For each BIM file, the report includes:
- File name
- BIM data type (Revit / IFC)
- Georeferencing status (Georeferenced vs. Un‑Georeferenced)
- Recorded spatial reference (CRS)
- EPSG Code
- Version of the File
- ExteriorShell model extents (X, Y, Z)
- A summary section highlighting un‑georeferenced models
- A timestamp and disclaimer clarifying data responsibility
- Display Unit System
- Length Display Unit
- Model Length Unit
Important
The report reflects only the spatial reference and extent information recorded in the BIM file.
Vendors are responsible for ensuring that georeferenced data is correct for the project location.
- ArcGIS Pro (3.6 recommended)
- Python 3.x (installed with ArcGIS Pro)
- ArcPy (comes with ArcGIS Pro)
- Read access to the folder containing BIM files (
.rvt,.ifc)
No third‑party Python packages are required.
- ✅ Recursively scans a workspace folder for:
- Autodesk Revit files (
.rvt) - IFC files (
.ifc)
- Autodesk Revit files (
- ✅ Reports per BIM file:
- CRS name
- EPSG code (when available)
- Spatial extent:
- XMin
- YMin
- XMax
- YMax
- Georeferencing status
- IFC length unit (IFC only)
- ✅ Output options:
- Console report
- Optional text (
.txt) report
- ✅ Separate reports:
- FULL BIM Report (all files)
- UN‑GEOREFERENCED ONLY Report
- ✅ Designed for ArcGIS Pro Notebook execution
- ✅ Vendor‑neutral and standards‑focused
| File Type | Supported | Notes |
|---|---|---|
.rvt |
✅ | CRS & spatial extent only |
.ifc |
✅ | CRS, extent, length unit extracted |
| Other | ❌ | Ignored |
- Open an ArcGIS Pro Python environment or ArcGIS Pro Notebook
- Update the
workspacevariable in the script to point to your BIM folder - Run the script
- When prompted, choose whether to save the report to a text file
A timestamped .txt report will be generated in the workspace folder by default.
The script can be added to a custom toolbox in ArcGIS Pro and configured to accept:
- Input folder
- Output report path
This option is recommended for repeated use or distribution to non‑developers.
- BIM georeferencing QA checks
- BIM delivery validation from vendors
- Pre‑processing checks before BIM‑to‑GIS integration
- Identifying BIM files missing CRS or exterior geometry
- Supporting infrastructure and AEC GIS workflows
This script can generate two separate text files:
Includes all detected BIM files.
Default:
BIM_Report_.txt
Includes only files flagged as UN‑GEOREFERENCED.
Default:
BIM_UnGeoreferenced_Report_.txt
The un‑georeferenced report is offered only if applicable files exist.
- Default output filename:
BIM_Report_.txt - The user may:
- Accept the default location
- Specify a custom path
- The script will:
- Attempt to create directories if missing
- Warn the user if file permissions prevent saving
- Length units are extracted only for IFC files
- Detection is based on parsing readable IFC text
- Typical reported values:
METERSMILLIMETERSFEET
- For Revit models:
Length Unit: N/A
The report only displays the spatial reference and extent information recorded in the BIM file.
It does not validate whether the georeferenced data aligns correctly with the intended real‑world project location.
Ensuring correct georeferencing remains the responsibility of the data provider or vendor.
This tool performs metadata‑level validation only.
- It does not verify real‑world spatial accuracy
- CRS values may exist but be incorrectly assigned
- Spatial extents may fall outside valid CRS bounds
- IFC parsing depends on accessible text content
This script must not be used as a substitute for professional surveying or engineering review.