AHP-Based Façade Design Decision Support Tool
This interactive tool ranks façade design alternatives using the Analytic Hierarchy Process (AHP), incorporating multiple performance metrics and user-defined weights. It supports real-time ranking, visualization, and consistency checks — powered by Streamlit, Google Sheets, and ahpy.
It a two-part decision-support framework that integrates parametric design, multi-objective optimization, and multi-criteria decision making. The framework employs the NSGA-II evolutionary algorithm with AHP in a browser-based Streamlit application. This setup enables stakeholders to explore trade-offs and prioritize project-specific objectives dynamically. Due to the absence of a single comprehensive dataset that includes both detailed performance metrics and the corresponding design parameters, the tool was implemented in two separate demos.
This is Demo 1 It uses a dataset with 201 alternatives and includes input parameters used in performance simulations, enabling both optimization and sensitivity analysis. However, it is limited to just two performance metrics: Energy Use Intensity (EUI) and daylight illuminance (UDI)
- Why This Exists
- Process Overview
- How It Works
- Repository Layout
- Quick Start
- Detailed Workflow
- Implementation Decisions
- Limitations & Future Work
- References
Early-stage façade design often requires balancing multiple performances. This tool enables:
- Transparent decision-making with AHP
- Real-time sensitivity tuning
- Visualization of trade-offs through parallel coordinate plots and ranking tables
- Integration with Google Sheets for collaborative CSV data updates
📊 CSV Inputs → 🧮 Normalize Data → 🪼 Define Weights → 🔄 AHP Ranking → 🖼️ Visual Output
-
Sliders in the UI allow users to adjust weights for criteria
-
The
ahpy
library builds the AHP comparison tree dynamically -
Results are ranked and visualized as:
- Tables of alternatives
- Image grid
- Parallel coordinate plot
.
├─ AHP_project.py # Streamlit app script
├─ requirements.txt # Python dependencies
├─ images/ # PNGs of façade design alternatives
├─ DSC_CaseStudy2_Output/ # Output images for Pareto/Elitist fronts
├─ JoyceStreet_data.csv # Input dataset used for NSGA-II
├─ pareto_front.csv # Auto-generated Pareto front
├─ elitist_front_2-6.csv # Elitist fronts from optimization
└─ README.md
- Clone the repo
git clone https://github.com/yourusername/yourproject.git
cd yourproject
- Install requirements
pip install -r requirements.txt
- Run the app
streamlit run AHP_project.py
Step | Script/File | Purpose |
---|---|---|
1 | AHP_project.py | UI + ranking logic |
2 | JoyceStreet_data.csv | Provides raw design data for MOO |
3 | pymoo (NSGA-II) | Generates Pareto + elitist fronts |
4 | ahpy | Builds AHP model & scores alternatives |
5 | Streamlit + Plotly | Provides interactive sliders & plots |
Decision | Rationale |
---|---|
Use ahpy for pairwise ranking |
Lightweight, supports full hierarchy |
Use pymoo for Pareto optimization |
Well-supported multi-objective algorithms |
Allow AHP weights via sliders | Easy UX for iterative design trade-offs |
Store fronts in CSV | Allows later use without recomputation |
Visualize with Matplotlib & Plotly | Combines static plots and interactive graphs |
- No user upload of CSVs yet
- NSGA-II is recomputed only if output files are missing
- Fixed number of elitist fronts shown (up to 6)
- No interactive consistency checks for AHP inputs
- Allow custom uploads of front CSVs
- Add comparison with baseline design
- Integrate export as PDF report
- Add filters for design constraints (e.g., max cost or UDI threshold)
ahpy
documentationpymoo
optimization docs- Streamlit Docs
- Saaty, T.L. (1980). The Analytic Hierarchy Process.
👤 Created by Mohammed Hassen, Kiana Layam 🗓️ Spring 2025 | Georgia Tech | ARCH 8833