Skip to content

idfkit

A fast, modern EnergyPlus IDF/epJSON toolkit for Python — with O(1) lookups, automatic reference tracking, and built-in simulation support.

Release Build status Commit activity License

pip install idfkit

O(1) lookups Reference tracking IDF + epJSON Schema validation 3-D geometry Simulation Weather data v8.9 -- v25.2


Quick Example

from idfkit import load_idf, write_idf

# Load an existing IDF file
doc = load_idf("in.idf")

# Query objects with O(1) lookups
zone = doc["Zone"]["Office"]
print(zone.x_origin, zone.y_origin)

# Modify a field
zone.x_origin = 10.0

# See what references the zone
for obj in doc.get_referencing("Office"):
    print(obj.obj_type, obj.name)

# Write back to IDF (or epJSON)
write_idf(doc, "out.idf")

Run Simulations

from idfkit.simulation import simulate

result = simulate(doc, "weather.epw", design_day=True)

# Query results
ts = result.sql.get_timeseries(
    variable_name="Zone Mean Air Temperature",
    key_value="Office",
)
print(f"Max temp: {max(ts.values):.1f}")

Find Weather Stations

from idfkit.weather import StationIndex, geocode

index = StationIndex.load()
results = index.nearest(*geocode("Chicago, IL"))
print(results[0].station.display_name)

Explore the Docs

  • Get Started


    Installation, quick start guide, and interactive tutorial.

    Get Started

  • Concepts


    Architecture decisions, caching strategy, and design principles.

    Concepts

  • Simulation


    Run EnergyPlus, parse results, batch processing, and caching.

    Simulation Guide

  • Weather


    Station search, downloads, design days, and geocoding.

    Weather Guide

  • Examples


    Parametric studies, sizing workflows, and cloud simulations.

    Examples

  • API Reference


    Complete API documentation for all modules.

    API Reference

More Resources

Page Description
Core Tutorial Interactive notebook covering basic, advanced, and expert usage
Migrating from eppy Side-by-side comparison of eppy and idfkit APIs
Benchmarks Performance comparison against eppy and other tools
Troubleshooting Common errors and solutions