Skip to content

Report retrofit impacts#80

Open
prsh5175 wants to merge 375 commits into
developfrom
report_retrofit_impacts
Open

Report retrofit impacts#80
prsh5175 wants to merge 375 commits into
developfrom
report_retrofit_impacts

Conversation

@prsh5175

Copy link
Copy Markdown
Collaborator

Continued from
gh pr checkout 68

David Goldwasser and others added 30 commits June 7, 2024 02:06
initial commit for testing with OpenStudio 3.8.0
initial commit to setup ee gem for OS 3.9
…asures-gem

Will be adding addition ee window measure(s) in addition to this one. Will added ability to add embodied carbon.
Now when measure is updated with `openstudio measure -u` updates to description will get pushed to measure.xml and to readme.md
prsh5175 and others added 20 commits December 30, 2025 11:07
- Add openpyxl, requests, python-dotenv, plotly, pandas
- Fixes ModuleNotFoundError in Python measure tests
- Resolves failing CI check in PR
- Fix weather file parameter in run_energyplus_simulation()
  - Add weather_file parameter to function signature
  - Pass weather file path to both baseline and modified simulations
  - Fixes modified simulation failure due to missing weather file

- Fix embodied carbon extraction
  - Update extract_embodied_carbon() to check subsurfaces and surfaces
  - Support multiple naming conventions (embodied_carbon_kg_co2_eq, etc.)
  - Now correctly extracts 896.63 kgCO2eq from window retrofits

- Improve spider chart visualization
  - Remove bar chart, show only spider plot for cleaner display
  - Move legend to bottom to prevent obstruction
  - Add proper margins (l=120, r=150, t=100, b=100) to prevent text cropping
  - Increase figure size to 900x700 for better readability

- Fix Windows encoding issues
  - Replace Unicode symbols (✓, ✗) with ASCII ([OK], [ERROR])
  - Prevents UnicodeEncodeError on Windows terminals

Resolves issue where modified operational energy and embodied carbon
showed zero due to simulation failures and incorrect data extraction.
- Add *.log pattern to ignore log files like workflow_run.log
- Remove EC3_lookup.cpython-39.pyc from git tracking
- Already had *.pyc pattern but file was previously tracked
- Add apt-get install python3-pip before pip commands
- Fixes 'pip: command not found' error in CI
- Resolves failing job 59174811380
Resolved conflicts by keeping current branch versions.
Excluded .pyc files that should be gitignored.
- Change from 'pip' to 'python3 -m pip' for reliable package installation
- Ensures packages are installed for the correct Python version
- Fixes ImportError for openpyxl and requests in CI tests
@prsh5175 prsh5175 marked this pull request as ready for review February 17, 2026 05:17
…on and RSMeans integration

- Add Inputs/ folder with optimization.xlsx and retrofit_report_template.html
- Add Outputs/ folder with generated retrofit_analysis_report.html and retrofit_measure_report.csv
- Add retrofit material extraction using OSM AdditionalProperties
- Implement RSMeans API batch query for dynamic material cost lookup
- Update measure.py with material cost integration into HTML reports
- Add call_RSmeans.py client library for authenticated API access
- Add add_retrofit_materials.py utility for test model population
- Add retrofit materials to example_model_2_with_AdditionalProperties.osm
- Update test suite with final verification steps
- Implement memory leak fixes with proper resource cleanup
- Verified workflow: 450.50 GJ baseline → 380.25 GJ with retrofit (70.25 GJ savings, 15.6% reduction)
- Annual cost savings: $1,053.75 at $15/GJ energy cost
- Update call_RSmeans.py search_materials_batch() to accept optional save_search_results_path parameter
- Add search_log tracking with material name, search results count, and cost data status
- Save JSON results with aggregated costs, materials list, errors, and search log to Outputs/search_results.json
- Update measure.py pull_rsmeans_cost_from_api() to pass Outputs/search_results.json path to API client
- Add logging confirmation when search results are saved
- Results include all search attempts, API responses, and any errors for debugging and auditing
- Change add_retrofit_materials.py to use simplified, searchable terms: Concrete, Drywall, Insulation
- Updated to match common RSMeans material categories for better API discoverability
- Materials are now added with realistic quantities and units for each material type
- Search results JSON continues to log all API queries and responses for debugging
- Workflow is fully functional; RSMeans search results depend on API sandbox environment and available catalogs
… chart

- Added create_optimization_data.py to generate optimization.xlsx with 3 retrofit scenarios
- Updated measure.py to:
  - Extract unit_cost and total_cost from AdditionalProperties
  - Skip RSMeans API calls when cost data already present
  - Fix optimization() method path from tests_dir to Outputs/
  - Generate interactive Plotly spider chart with 5 comparison factors
- Updated call_RSmeans.py to use production API (gb-mf catalog, 2025-q4 release)
- Updated add_retrofit_materials.py with manual RSMeans cost data (.85-.50/SF)
- Added optimization.xlsx with 3 scenarios: Basic (.5k), Comprehensive (5k), Balanced (3.75k)
- Generated optimization_visualization.html (3.6 MB interactive Plotly chart)
- Updated retrofit_analysis_report.html to embed spider chart via iframe
- Spider chart compares: Initial Cost, Energy Savings, Embodied Carbon, Payback Period, Annual Cost Savings
- Renamed and refactored call_RSmeans.py to call_rsmeans_api.py for clarity
- Made RSMeansAPIClient fully modular for reuse in other OpenStudio measures
- Removed write-back functionality (model remains unmodified)
- Extract retrofit materials directly from AdditionalProperties
- Auto-detect MasterFormat division codes from material type names
- Support for optional pre-computed costs (skip API if cost_present)
- Returns aggregated results with total cost and per-material breakdown
- Can be imported as standalone helper by any OpenStudio measure
- Verified measure still runs successfully with new modular helper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants