powershell.exe -NoProfile -ExecutionPolicy Bypass -Command 'iwr -useb https://bimcli.com/install.ps1 -OutFile $env:TEMP\bim-install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\bim-install.ps1'
Give your agent a New York City street address. It looks up the lot and its zoning, works out the largest building the district allows, fits a massing that uses the permitted floor area, checks it against the rules, and builds the study in Revit with the neighbourhood around it. You get an 8-sheet PDF, stamped as a feasibility study, with the data attached.
This is an early zoning envelope study, not a design and not a zoning determination. The example below is one real run on bim 0.34.0 with Claude Code and Revit 2026.
bim pdfv open --view grid.Copy this prompt into your AI coding tool. The site and zoning steps run anywhere bim does; the model and sheets need Revit open on the same PC.
Make a zoning envelope and massing feasibility study for <NYC street address>.Step 1 - install bim-cli if it is not already installed: powershell.exe -NoProfile -ExecutionPolicy Bypass -Command 'iwr -useb https://bimcli.com/install.ps1 -OutFile $env:TEMP\bim-install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\bim-install.ps1'
Step 2 - refresh PATH: pwsh: $env:Path += ";$env:LOCALAPPDATA\bim-cli"
Step 3 - look up the site and save each result: bim site parcel.lookup --address "<address>" --geometry then, with the lot's lat/lon: bim site zoning.lookup, flood.lookup, elevation.lookup --timeout 30s, e-designation.lookup, hurricane-zone.lookup, stormwater-flood.lookup and seismic.lookup, and bim site satellite.map --outline --out satellite.png
Step 4 - from the district's bulk rules in the NYC Zoning Resolution, work out the maximum zoning envelope for the lot and a massing that uses the permitted floor area. If the lot is in a FEMA flood zone, raise the first floor to the design flood elevation. Write the rules you applied as a ruleset, check the massing with bim rules check, and cite the section for every number.
Step 5 - in Revit, use bim revit exec to build the envelope tiers (transparent), the massing storey by storey and the neighbouring buildings from NYC Open Data footprints. Add sun and shadow, view, elevation and section studies, lay out the sheets, then bim revit export-sheets.
Step 6 - stamp the PDF "FEASIBILITY - NOT FOR CONSTRUCTION", attach the data with bim pdf package and open the result in the grid view of bim pdfv open.
Say what you assumed (street widths, shoreline, waterfront status) and what a professional still has to check. Do not present this as a zoning determination.
bim gives the agent the parts: public site data, a rules checker, Revit and the PDF tools. There is no single feasibility command. The zoning arithmetic and the Revit scripts are the agent's own work, written for the district and the lot in front of it, so read its numbers and citations the way you would read a junior colleague's.
The parcel lookup returns the lot, its tax block and lot number and, with --geometry, the lot polygon. Every other lookup takes the lot's latitude and longitude.
bim site parcel.lookup --address "3616 Surf Avenue, Brooklyn, NY" --geometry
bim site zoning.lookup --lat 40.5727 --lon -74.0018
bim site flood.lookup --lat 40.5727 --lon -74.0018
bim site elevation.lookup --lat 40.5727 --lon -74.0018 --timeout 30s
bim site e-designation.lookup --lat 40.5727 --lon -74.0018
bim site hurricane-zone.lookup --lat 40.5727 --lon -74.0018
bim site stormwater-flood.lookup --lat 40.5727 --lon -74.0018
bim site seismic.lookup --lat 40.5727 --lon -74.0018
bim site satellite.map --lat 40.5727 --lon -74.0018 --outline --out satellite.png
For 3616 Surf Avenue the lookups returned district R7-3 with a C2-4 overlay, a 27,588 sf lot, FEMA zone AE with a base flood elevation of 10 ft, and ground at about 9.1 ft (USGS). The elevation service can be slow, hence the longer timeout. The FEMA flood zone lookup and the site analysis report explain these layers in more detail.
From the district's bulk rules the agent works out the largest building the zoning allows (the envelope) and a massing that fits inside it. In the example the lot sits on a waterfront block, so the heights, tiers and tower limits come from ZR 62-343 rather than the ordinary district tables. The envelope rises in tiers to 375 ft. The massing is a 21-storey tower on a base, 137,938 sf, which is a floor area ratio of 5.00, the district maximum. The first floor is raised to the design flood elevation of 12 ft (base flood elevation plus 2 ft).
The agent writes the rules it applied as a ruleset, with a citation for each, and checks the massing against it:
bim rules check --facts facts.lp --ruleset zr-ruleset
{"message": "Compliant: no violations, and every rule had the inputs it needed."}
The same massing with its first floor at grade fails one rule, the lowest-floor requirement in Appendix G of the NYC Building Code:
bim rules check --facts facts-atgrade.lp --ruleset zr-ruleset
{"message": "1 violation(s). Also 0 at-risk, 0 pre-existing, 0 provisional pass(es) and 0 input(s) not supplied."}
bim revit exec runs C# against the open Revit model, one script per step, with its inputs passed as JSON (--args-json @file.json). In the example the agent built the envelope tiers as transparent solids, the massing storey by storey, and 273 neighbouring buildings from NYC Open Data footprints, then the sun and shadow studies, the view analysis, the urban elevations and the site sections. The example sheets use a bim-cli title block; ask the agent to use your office's sheet template instead.
bim revit exec --file envelope.cs --args-json @envelope.json
bim revit exec --file floor.cs --args-json @storeys-4-7.json
bim revit export-sheets --sheets G-001,Z-101,F-101,A-001,A-101,A-301,A-302,A-303 --output pdf --timeout 300
Revit exports the sheets sorted by number, so the agent puts the cover first again with bim pdf page.collect. Running Revit from a terminal is covered in headless Revit; exporting and splitting sheet sets in Revit PDF export. To write the flood zone into a model's parameters instead, see flood zone into Revit.
bim pdf page.collect pdf/export-sheets.pdf --pages 7,8,6,1,2,3,4,5 --out sheets.pdf
bim pdf stamp.add --file sheets.pdf --text "FEASIBILITY - NOT FOR CONSTRUCTION" --out stamped.pdf
bim pdf package --file stamped.pdf --metadata scheme.json --metadata envelope.json --metadata rules-check.json --out 3616-surf-ave-feasibility.pdf
bim pdfv open --file 3616-surf-ave-feasibility.pdf --view grid
bim pdf package attaches the massing, the envelope and the rules result to the PDF, so whoever receives it can read the numbers as data, not only as drawings. The grid view of bim pdfv open tiles every page so you can check the whole set at a glance.
With bim's Google driver signed in, the agent can upload the package, add a row to a tracking sheet and leave an email draft for you to read and send yourself:
bim google drive upload --input 3616-surf-ave-feasibility.pdf --parent <folder id>
bim google sheets append --spreadsheet <sheet id> --sheet Sites < row.json
bim google gmail drafts create --to <client address> --subject "3616 Surf Avenue - feasibility" --body-file note.txt
The draft is not sent.
bim google login first.For a quicker first look at a US address, start with the site analysis report or the flood zone lookup.
Site Analysis Report from an Address
FEMA Flood Zone Lookup by Address
FEMA Flood Zone into Revit Parameters from the CLI
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command 'iwr -useb https://bimcli.com/install.ps1 -OutFile $env:TEMP\bim-install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\bim-install.ps1'
Then ask your assistant to run bim describe --json. See what the installer does.