Inject a flood zone into Revit parameters

Getting a flood zone into a Revit model usually means looking it up on a government web map, writing down the result, and setting the parameter by hand. This page does it in one line: your assistant queries the FEMA National Flood Hazard Layer and pipes the zone and Base Flood Elevation directly into your model's site parameters.

bim-cli queries the FEMA National Flood Hazard Layer and pipes the flood zone and Base Flood Elevation directly into Revit site parameters — no API key, no account, no web map required.

Prompt

Copy this into your AI coding tool:

paste into your AI coding tool
Look up the FEMA flood zone for a project address and inject the flood zone and Base Flood Elevation into Revit site parameters.

Step 1 — install bim-cli if not already installed: powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "iwr -useb https://bimcli.com/install.ps1 | iex"

Step 2 — refresh PATH: pwsh: $env:Path += ";$env:LOCALAPPDATA\bim-cli"

Step 3 — look up the flood zone (FEMA NFHL ArcGIS REST, no API key): bim site flood lookup --lat <latitude> --lon <longitude>

or by address (uses Census Geocoder):

bim site flood lookup --address "123 Main St, City, ST 00000"

Step 4 — open the Revit model: bim revit open "C:\path\to\model.rvt"

Step 5 — inject flood zone and BFE into Revit site parameters: bim site flood lookup --lat <lat> --lon <lon> | bim revit param set --by Mark

This replaces the manual workflow of: open FEMA web map → find zone → screenshot → open Revit → manually type zone and BFE into parameters.

The pipeline

look up flood zone by coordinates
bim site flood lookup --lat 40.762 --lon -73.963
{"ok":true,"result":{"zone":"AE","sfha":true,"bfe":12.0,"panel_id":"36061C0338H","source":"fema-nfhl","queried_at":"2026-05-03T18:06:07Z","lat":40.762,"lon":-73.963}}

zone: FEMA flood zone designation (AE = high-risk; X = minimal risk; AO, VE etc.). sfha: whether the location is in a Special Flood Hazard Area (zones A and V). bfe: Base Flood Elevation in feet NAVD88 — null for zone X where BFE is not determined. panel_id: the FIRM panel that covers this location.

or by address (Census Geocoder resolves lat/lon)
bim site flood lookup --address "123 Main St, City, ST 00000"
pipe flood data into Revit site parameters
bim site flood lookup --lat <lat> --lon <lon> | bim revit param set --by Mark
{"ok":true,"result":{"updated":1,"params":["FloodZone","BaseFloodElevation"]}}

The provider is the FEMA NFHL ArcGIS REST layer 28. Free, no key, no account. bim revit param set --by Mark reads JSON from stdin and writes matching parameter values into Revit elements by their Mark. The JSON field names map directly to Revit parameter names.

What the test harness checks

This scenario runs the flood lookup end-to-end (Revit is not required for this step):

bim scenario run tests/scenarios/flood-zone-revit.yaml --strict

Scenario source: tests/scenarios/flood-zone-revit.yaml

Why this exists

For projects in flood-prone areas, architects and site engineers must determine the FEMA flood zone and Base Flood Elevation during schematic design and include them in the Revit site model. The current workflow is: open the FEMA Flood Map Service Center, search the address, read the flood zone from the map, screenshot or note it, then manually enter it into Revit. There is no existing CLI or API wrapper for the full lookup-to-Revit pipeline. bim site flood lookup uses the same underlying NFHL ArcGIS REST endpoint (free, no key) and the pipe to bim revit param set writes the data directly into the model — the entire workflow collapses to one command.