Site analysis report from an address

install bim-cli · windows · per-user · no admin
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 bim-cli one US address and get a stack of site-data layers that apply there, plus a PDF report. It gathers public-source results such as flood, zoning, soils and elevation data, so an early site review can start from one address instead of several separate lookups.

This is first-gate feasibility only. Use the report to organize early questions, then confirm important findings with the appropriate professionals and source agencies.

Ask your agent

Copy this prompt into your AI coding tool. Replace the sample address, save the assessment and map to paths you can find, and ask the agent to explain any unavailable layers as well as the results.

paste into your AI coding tool
Turn a US project address into an early site analysis PDF. Explain the flood, zoning and other returned layers, and call out missing data without guessing.

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 - assess the address and save the layer stack: bim site assess --address "<address>" > assess.json

Step 4 - use the latitude and longitude from assess.json to make a flood map: bim site flood map --lat <lat> --lon <lon> --out <absolute path>.png

Step 5 - make a PDF from the assessment and map: bim pdf report --data assess.json --flood-map <png path> --out <absolute path>.pdf

Summarise the flood, zoning and each returned layer. Explain any layers listed in missing; for rate-limited layers, wait retry_after_secs and retry them individually when a retry command is provided. Do not infer data that was not returned.

Run a site assessment

The assessment geocodes the address, identifies its jurisdiction and requests applicable layers. This captured run used a Long Island City address. Its complete output returned 22 layers; the excerpt below shows three and one of the three missing results. The api_url fields were removed from this excerpt for readability.

bim site assess --address "47-20 Center Blvd, Long Island City, NY 11109" > assess.json
{
  "address": "47-20 CENTER BOULEVARD, Long Island City, NY, USA",
  "lat": 40.745923,
  "lon": -73.957772,
  "jurisdiction": {
    "state": "New York",
    "county": "Queens County",
    "municipality": "New York"
  },
  "layers": [
    {
      "layer": "flood",
      "authority": "FEMA",
      "attribution": "FEMA NFHL",
      "coverage": "covered",
      "data": {
        "zone": "AE",
        "sfha": true,
        "bfe": 10,
        "panel_id": "360497"
      }
    },
    {
      "layer": "zoning",
      "authority": "NYC Department of City Planning",
      "coverage": "covered",
      "data": {
        "zone_code": "M3-1",
        "zone_type": "manufacturing",
        "lot": {
          "bbl": "4000210070",
          "lot_area_sqft": 48199,
          "built_far": 9.9,
          "comm_far": 2,
          "bldg_class": "D8",
          "year_built": 2007,
          "num_floors": 31
        }
      }
    },
    {
      "layer": "elevation",
      "authority": "USGS",
      "attribution": "USGS 3DEP",
      "coverage": "covered",
      "data": {
        "elevation_ft": 12.795280222441079,
        "elevation_m": 3.9000014118000412
      }
    }
  ],
  "missing": [
    {
      "layer": "transit",
      "reason": "transit (overpass): rate-limited by overpass-api.de (HTTP 429; retry after 30s)",
      "retriable": true,
      "retry_after_secs": 30,
      "throttle_source": "overpass-api.de"
    }
  ]
}

In this run, the assessment also reported a throttle_hint advising a 30-second wait before retrying the transit layer individually. A missing layer is a visible gap in this response, not a finding that the feature is absent from the property. Public services can be temporarily unavailable or rate-limited; inspect missing and throttle_hint before interpreting the results.

Make a flood map

Use the coordinates returned by bim site assess. The map command writes a PNG; use an absolute output path so it is easy to find.

bim site flood map --lat 40.745923 --lon -73.957772 --out C:\path\to\flood-map.png
{"path":"C:/path/to/flood-map.png"}

Create the PDF

Pass the saved assessment and, optionally, the flood map to the report command. You can also pipe the assessment directly into the report command. Both forms below completed in the captured run.

bim pdf report --data C:\path\to\assess.json --flood-map C:\path\to\flood-map.png --out C:\path\to\site-report.pdf
bim site assess --address "47-20 Center Blvd, Long Island City, NY 11109" | bim pdf report --out C:\path\to\site-report.pdf
{"path":"C:/path/to/site-report.pdf","pages":5}

The JSON page count shown above is copied from the command output; the captured PDF contained four pages when separately inspected. Treat the PDF itself as the deliverable and do not rely on that count.

Zoning only

For a standalone zoning query, use coordinates. The captured result is from NYC Department of City Planning data and includes a manufacturing district, lot details and three partial failures.

bim site zoning lookup --lat 40.7459124 --lon -73.9577628
{"provider":"nyc-dcp","zone_code":"M3-1","zone_type":"manufacturing","lot":{"bbl":"4000210070","lot_area_sqft":48199,"built_far":9.9,"comm_far":2,"bldg_class":"D8","year_built":2007,"num_floors":31},"partial_failures":[{"layer":"voluntary_inclusionary_housing","error_kind":"upstream"},{"layer":"transit_zone","error_kind":"upstream"},{"layer":"historic_districts","error_kind":"upstream"}],"partial_failure_count":3,"rules_urls":["https://www.nyc.gov/assets/planning/download/pdf/zoning/districts-tools/m3-1.pdf"],"source":"nyc-dcp-arcgis","queried_at":"2026-10-24T12:00:43Z","lat":40.7459124,"lon":-73.9577628}

The zoning lookup's address form had a known geocoding issue in the captured version. Use latitude and longitude, or use the geocoded layer from bim site assess --address as shown above.

What the report contains

The captured PDF showed the address, county, state and coordinates in its header, followed by a line naming sources. Its data-layer assessment table listed each layer with a finding and detail; layers that could not be fetched appeared as Not retrieved. The remaining pages included satellite imagery, a street grid, a USGS topographic map and regional context. Your report depends on what applies to the address and what the source services return at run time.

The report labels itself: "First-gate feasibility only. Not a substitute for full Phase I ESA, structural survey, or licensed planning advice." It can help organize an initial review, but it does not replace a site survey, environmental assessment, code review or advice from a licensed professional.

Available layers

The assessment can return soil, coastal, brownfield, flood, Phase I ESA, wetlands, subway, zoning, hurricane-zone, parcel, opportunity-zone, hazard-score, special-district, contamination, elevation, seismic, ASCE, building-history, stormwater-flood, landmark, e-designation and encumbrance layers. Which results appear depends on the address and data coverage. A layer that is missing or not returned should not be read as a negative finding.

The named public sources include FEMA's National Flood Hazard Layer, USGS 3DEP elevation, USDA SSURGO soils, USFWS National Wetlands Inventory, EPA ECHO, FEMA's National Risk Index and HUD Opportunity Zones. New York City results can also include NYC Department of City Planning zoning and MapPLUTO, NYC Landmarks Preservation Commission landmarks, NYC DEP stormwater flood maps, hurricane evacuation zones and ACRIS encumbrances. Local layers are not available everywhere; the assessment output indicates which ones apply to the selected address.

Limits

Address lookup uses the US Census Geocoder and is intended for US addresses. The public source services need a network connection. Coverage varies by layer and place, and a source may rate-limit or return a partial result. Check missing, partial_failures and throttle_hint in the output; retry transient failures after the indicated wait.

The zoning lookup reports coverage for New York City, Suffolk County (Long Island), Palo Alto, San Jose, San Francisco, Los Angeles, Austin, City of Miami, and Miami-Dade County; other locations not yet supported. This is the coverage list from the tool's own hint. The standalone zoning command's address form had a known issue in the captured version, so query with coordinates or take the zoning layer from bim site assess --address.

This is not a substitute for a survey, Phase I ESA, or licensed planning advice. Confirm regulatory and property decisions with the responsible agencies and qualified professionals.

FAQ

Do I need an API key or account?

No account or API key is needed for these commands. The assessment reads public data sources and needs an internet connection to reach them.

Which places have zoning?

The reported coverage is New York City, Suffolk County (Long Island), Palo Alto, San Jose, San Francisco, Los Angeles, Austin, City of Miami, and Miami-Dade County. Other locations are not yet supported by the zoning lookup. Other site layers can still vary independently by location.

What if a layer is missing?

Read its entry in missing, including reason, retry_after_secs and throttle_source. A rate limit means the request was delayed, not that the site has no such feature. Wait for the suggested interval and retry that layer when the output provides an individual command.

Is this a final site decision?

No. The PDF is an early feasibility summary. It does not replace a survey, a Phase I ESA, an official agency determination or advice from a licensed planner.

Read more about the site assessment commands or the FEMA flood zone lookup.

install bim-cli · windows · per-user · no admin
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.