#Requires -RunAsAdministrator <# .SYNOPSIS Deletes Revit cache and temp files for all user profiles on the machine. .DESCRIPTION Targets CollaborationCache, UserDataCache, journal files, and Revit-related temp files. Does NOT touch user preferences or settings. #> $ErrorActionPreference = 'SilentlyContinue' $totalFreed = 0 $deletedItems = 0 function Remove-RevitPath { param( [string]$Path, [string]$Label ) if (-not (Test-Path $Path)) { return 0 } $sizeBefore = (Get-ChildItem $Path -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum $sizeBefore = if ($sizeBefore) { $sizeBefore } else { 0 } Remove-Item $Path -Recurse -Force -ErrorAction SilentlyContinue Write-Host " Removed: $Label ($([math]::Round($sizeBefore / 1MB, 2)) MB)" -ForegroundColor Green return $sizeBefore } function Remove-RevitFiles { param( [string]$Path, [string]$Filter, [string]$Label ) if (-not (Test-Path $Path)) { return 0 } $files = Get-ChildItem $Path -Filter $Filter -Recurse -Force -ErrorAction SilentlyContinue if (-not $files) { return 0 } $size = ($files | Measure-Object -Property Length -Sum).Sum $size = if ($size) { $size } else { 0 } $files | Remove-Item -Force -ErrorAction SilentlyContinue Write-Host " Removed: $Label ($([math]::Round($size / 1MB, 2)) MB, $($files.Count) files)" -ForegroundColor Green return $size } Write-Host "`nRevit Cache Cleaner" -ForegroundColor Cyan Write-Host "===================" -ForegroundColor Cyan $userProfiles = Get-ChildItem 'C:\Users' -Directory -ErrorAction Stop | Where-Object { $_.Name -notin @('Public', 'Default', 'Default User', 'All Users') } foreach ($profile in $userProfiles) { $userName = $profile.Name $localApp = Join-Path $profile.FullName 'AppData\Local' $localTemp = Join-Path $profile.FullName 'AppData\Local\Temp' # Find all Revit version folders (e.g. "Autodesk Revit 2022") $revitLocalBase = Join-Path $localApp 'Autodesk\Revit' $revitVersions = Get-ChildItem $revitLocalBase -Directory -ErrorAction SilentlyContinue if (-not $revitVersions) { continue } Write-Host "`nUser: $userName" -ForegroundColor Yellow foreach ($ver in $revitVersions) { Write-Host " Version: $($ver.Name)" # Worksharing / cloud model cache $totalFreed += Remove-RevitPath (Join-Path $ver.FullName 'CollaborationCache') 'CollaborationCache' # User data cache $totalFreed += Remove-RevitPath (Join-Path $ver.FullName 'UserDataCache') 'UserDataCache' # Crash reports / dump files $totalFreed += Remove-RevitPath (Join-Path $ver.FullName 'CrashReport') 'CrashReports' $totalFreed += Remove-RevitPath (Join-Path $ver.FullName 'RevitCrashFiles') 'RevitCrashFiles' # Journal (log) files — keeps folder, deletes contents $journalsPath = Join-Path $ver.FullName 'Journals' $totalFreed += Remove-RevitFiles $journalsPath '*.txt' 'Journal files' # Loose .tmp files in the version root $totalFreed += Remove-RevitFiles $ver.FullName '*.tmp' '.tmp files' } # Revit-related temp files in %LOCALAPPDATA%\Temp $revitTempPattern = @('Revit_*.tmp', 'acad*.tmp', 'rvt*.tmp', 'Autodesk*.tmp') foreach ($pattern in $revitTempPattern) { $totalFreed += Remove-RevitFiles $localTemp $pattern "Temp\$pattern" } } # Machine-wide Autodesk temp (some installers/components write here) $machineTemp = 'C:\Windows\Temp' $totalFreed += Remove-RevitFiles $machineTemp 'Revit_*.tmp' 'Windows\Temp Revit files' $totalFreed += Remove-RevitFiles $machineTemp 'Autodesk*.tmp' 'Windows\Temp Autodesk files' Write-Host "`n===================" -ForegroundColor Cyan Write-Host "Total freed: $([math]::Round($totalFreed / 1MB, 2)) MB" -ForegroundColor Cyan Write-Host "Done.`n" -ForegroundColor Cyan