Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
561 commits
Select commit Hold shift + click to select a range
8971cfb
docs: PR2F-2 closeout - merged as 7161d9f8
SAM-BIM-AI Sep 28, 2026
bbd533c
feat(parto): PR3C per-dwelling active cooling in Mixed Design
michaldengusiak Sep 28, 2026
4da598b
docs: PR2F-3 deployed (SAM_Deploy#57 merged as 3d531508); record PR c…
SAM-BIM-AI Sep 28, 2026
73165df
docs(parto): PR3C record, licensed real-UI acceptance evidence
michaldengusiak Sep 28, 2026
fa33cc4
Merge remote-tracking branch 'origin/sow/2026-Q3' into feature/parto-…
michaldengusiak Sep 28, 2026
2b58ac3
docs: PROJECT_PROGRESS back to the base branch's (owner convention - …
michaldengusiak Sep 28, 2026
6b49c8c
docs(agents): PROJECT_PROGRESS.md is a post-merge closeout, never on …
michaldengusiak Sep 28, 2026
453ca94
Merge pull request #134 from SAM-BIM/feature/parto-mixed-cooling-pr3c…
michaldengusiak Sep 28, 2026
a7b7bc9
UX: Space report batch and Print RDS progress follow the Part O progr…
SAM-BIM-AI Sep 28, 2026
52217c3
docs: PR3C closeout - SAM_UI#134 merged as 453ca942
michaldengusiak Sep 28, 2026
02569a2
Evidence harness for the progress-dialog pattern; cancelled bar ends …
SAM-BIM-AI Sep 28, 2026
8972043
Merge remote-tracking branch 'origin/sow/2026-Q3' into feature/progre…
SAM-BIM-AI Sep 28, 2026
95b3384
UX: render batch progress on the timer (Part O cadence); pattern doc,…
SAM-BIM-AI Sep 28, 2026
0da90c8
Print RDS: keep the old window's threading and window behaviour, shar…
SAM-BIM-AI Sep 28, 2026
596a8a1
Merge pull request #135 from SAM-BIM/feature/progress-dialog-pattern-…
SAM-BIM-AI Sep 28, 2026
fc6e086
docs: progress-dialog pattern closeout - SAM_UI#135 merged as 596a8a13
SAM-BIM-AI Sep 28, 2026
cb6b6c8
test(parto): PR4 large-project acceptance - 5,000-space mixed cooled …
michaldengusiak Sep 28, 2026
0248a65
Merge remote-tracking branch 'origin/sow/2026-Q3' into feature/parto-…
michaldengusiak Sep 28, 2026
5b19588
Reporting hardening: accurate DocumentContext wording, fail-fast outp…
SAM-BIM-AI Sep 28, 2026
8f1b7ee
Merge pull request #136 from SAM-BIM/feature/reporting-hardening-m1-m…
SAM-BIM-AI Sep 28, 2026
0580078
docs: reporting-hardening M1/M2 closeout - SAM_UI#136 merged as 8f1b7ee5
SAM-BIM-AI Sep 28, 2026
4a9c53e
Merge remote-tracking branch 'origin/sow/2026-Q3' into feature/parto-…
michaldengusiak Sep 28, 2026
33d1b3a
docs(parto): PR4 record - x30 cooled and x10 uncooled licensed runs P…
michaldengusiak Sep 28, 2026
aa85e39
docs(parto): PR4 evidence run logs (as .txt - *.log is ignored); full…
michaldengusiak Sep 28, 2026
d6f098d
Merge pull request #137 from SAM-BIM/feature/parto-mixed-pr4-2026-09-28
michaldengusiak Sep 28, 2026
0c7b5ec
docs: PR4 closeout - SAM_UI#137 merged as d6f098d2
michaldengusiak Sep 28, 2026
6d44ec9
docs: PR4 deployed (SAM_Deploy#58 merged as c74122b3)
michaldengusiak Sep 28, 2026
56e95cb
fix(parto): require a full-year TSD for the Part O TM59 assessment
SAM-BIM-AI Sep 29, 2026
a0f2f57
Merge pull request #139 from SAM-BIM/fix/parto-tm59-require-full-year…
SAM-BIM-AI Sep 29, 2026
79e7a52
docs(progress): closeout for SAM_UI#139 Part O TM59 full-year TSD guard
SAM-BIM-AI Sep 29, 2026
44fd8bb
fix(parto): TM59 summary counts supplementary >28 C rows apart from c…
SAM-BIM-AI Sep 29, 2026
0d3ddc1
fix(parto): Iteration 3 reconciles rooms both cases report as supplem…
SAM-BIM-AI Sep 29, 2026
c8f0bce
feat(parto): name the Iteration 3 action and the missing Iteration 2 …
SAM-BIM-AI Sep 29, 2026
9a2ba6e
fix(parto): name the unassessed case's real classification in the one…
SAM-BIM-AI Sep 29, 2026
59e075f
test(parto): pin that the Iteration 3 input stage names the run's own…
SAM-BIM-AI Sep 29, 2026
1a7c87f
Merge pull request #140 from SAM-BIM/fix/parto-it3-information-only-r…
SAM-BIM-AI Sep 29, 2026
5ac496f
Merge sow/2026-Q3 into fix/parto-tm59-summary-categories-2026-09-29
SAM-BIM-AI Sep 29, 2026
6bd5fe7
Merge sow/2026-Q3 into feature/parto-it3-journey-wording-2026-09-29
SAM-BIM-AI Sep 29, 2026
aa873a2
Merge pull request #141 from SAM-BIM/fix/parto-tm59-summary-categorie…
SAM-BIM-AI Sep 29, 2026
a49925a
Merge sow/2026-Q3 into feature/parto-it3-journey-wording-2026-09-29
SAM-BIM-AI Sep 29, 2026
eee9308
Merge pull request #142 from SAM-BIM/feature/parto-it3-journey-wordin…
SAM-BIM-AI Sep 29, 2026
a200052
docs(progress): closeout for SAM_UI#140-#142 Iteration 3 validation (…
SAM-BIM-AI Sep 29, 2026
0ec37bc
feat(parto): truthful Part O progress stages (creating systems / runn…
SAM-BIM-AI Sep 29, 2026
c6af0e5
Merge pull request #143 from SAM-BIM/feature/parto-progress-stages-20…
SAM-BIM-AI Sep 29, 2026
4f981d8
docs(progress): closeout for SAM_UI#143 Part O progress stages (c6af0…
SAM-BIM-AI Sep 29, 2026
3b2c525
feat(parto): safe Iteration 3 retry without re-running TAS (same sess…
SAM-BIM-AI Sep 29, 2026
e64a383
Merge pull request #144 from SAM-BIM/feature/parto-safe-resume-retry-…
michaldengusiak Sep 29, 2026
f16976a
docs(progress): closeout for SAM_UI#144 Part O Iteration 3 safe retry…
SAM-BIM-AI Sep 29, 2026
62d16cd
wip(parto): presentation polish - NV review columns, It3 reopen info-…
michaldengusiak Sep 29, 2026
cbd0eef
feat(parto): presentation polish - It3 case-aware Review action, dela…
michaldengusiak Sep 29, 2026
c3df784
fix(parto): 1b review Copy All drops the empty equipment table headin…
michaldengusiak Sep 29, 2026
d46ca3a
Merge pull request #145 from SAM-BIM/feature/parto-presentation-polis…
michaldengusiak Sep 29, 2026
d4bf4eb
docs(progress): closeout for SAM_UI#145 + SAM#168 Part O presentation…
michaldengusiak Sep 29, 2026
855db98
fix(parto): Iteration 3 case report window/copy carry the saved prove…
michaldengusiak Sep 30, 2026
a36f12b
Merge pull request #146 from SAM-BIM/fix/it3-bridge-report-provenance…
michaldengusiak Sep 30, 2026
788e647
docs(progress): closeout for SAM_UI#146 Iteration 3 case-report prove…
michaldengusiak Sep 30, 2026
642125e
feat(parto): per-case output folders beneath the chosen Part O root
michaldengusiak Sep 30, 2026
fe6ddd2
fix(parto): Iteration 3 1a-vs-2 qualifier; recognise SAM case folders…
michaldengusiak Sep 30, 2026
bedfb94
docs(parto): final native acceptance gate for the output folders - PASS
michaldengusiak Sep 30, 2026
4971a3f
Merge pull request #147 from SAM-BIM/feature/parto-output-folders-202…
michaldengusiak Sep 30, 2026
7619c41
docs(progress): closeout for SAM_UI#147 Part O per-case output folder…
michaldengusiak Sep 30, 2026
7eb1fe4
fix(parto): TM59 header hierarchy, no Mixed Design sidecar on a refus…
michaldengusiak Sep 30, 2026
0fd3f9a
test(parto): prepared-model link tests require non-trust, not surviva…
michaldengusiak Sep 30, 2026
f92ae5d
Merge pull request #148 from SAM-BIM/fix/parto-acceptance-followups-2…
michaldengusiak Sep 30, 2026
bbc3944
docs(progress): closeout for SAM_UI#148 Part O acceptance follow-ups …
michaldengusiak Sep 30, 2026
7cf57f7
feat(parto): Results > Part O > Remove Results... - clean Mixed Desig…
michaldengusiak Sep 30, 2026
7a46466
Merge pull request #149 from SAM-BIM/feature/parto-remove-results-202…
michaldengusiak Sep 30, 2026
92534d6
docs(progress): closeout for SAM_UI#149 Part O Remove Results (7a464660)
michaldengusiak Sep 30, 2026
c1cf322
docs(parto): record the approved Part O model-state architecture
michaldengusiak Sep 30, 2026
bd75763
feat(parto): PR-4 - the design model is never replaced or changed by …
michaldengusiak Sep 30, 2026
537a910
feat(parto): PR-4 - hand-picked per-dwelling products persist as desi…
michaldengusiak Sep 30, 2026
72e42b2
docs(parto): PR-4 record links SAM-BIM/SAM#170
michaldengusiak Sep 30, 2026
8c13960
docs(parto): PR-4 record - SAM#170 merged (f4c317e0), revalidated aga…
michaldengusiak Sep 30, 2026
d721f1a
Merge pull request #150 from SAM-BIM/feature/parto-design-model-prote…
michaldengusiak Sep 30, 2026
a3ae5df
docs(progress): closeout for SAM_UI#150 Part O PR-4 design-model prot…
michaldengusiak Sep 30, 2026
3eea329
test(parto): PR-1 pin - Iteration 3 system scope vs a frozen copy of …
michaldengusiak Sep 30, 2026
786f1ed
feat(parto): PR-1 - Iteration 3 and Mixed share SAM's Systems scope; …
michaldengusiak Sep 30, 2026
782c7b6
test(parto): PR-1 - remove the temporary Iteration 3 pin oracle
michaldengusiak Sep 30, 2026
0655e6e
fix(parto): PR-1 - keep Systems-scope notes apart from the run's warn…
michaldengusiak Sep 30, 2026
02c8b72
docs(parto): PR-1 record and headless real-model scope evidence
michaldengusiak Sep 30, 2026
4e85dd6
docs(parto): PR-1 record links SAM-BIM/SAM_UI#151
michaldengusiak Sep 30, 2026
d60bbce
docs(parto): PR-1 record - SAM#171 merged (4ecea97a), revalidated aga…
michaldengusiak Sep 30, 2026
5cc590f
Merge pull request #151 from SAM-BIM/feature/parto-systems-scope-2026…
michaldengusiak Sep 30, 2026
91ceeaf
docs(progress): closeout for SAM_UI#151 Part O PR-1 Systems scope (5c…
michaldengusiak Sep 30, 2026
2166eba
docs(evidence): redact local machine paths from public evidence
michaldengusiak Sep 30, 2026
cdddff3
Merge pull request #152 from SAM-BIM/docs/redact-parto-pr1-evidence-p…
michaldengusiak Sep 30, 2026
90dff25
docs(progress): closeout for SAM_UI#152 redact local paths from publi…
michaldengusiak Sep 30, 2026
3ba83a4
feat(parto): PR-3 state SAM's Systems scope to SAM_Systems (Mixed + I…
michaldengusiak Sep 30, 2026
856281a
docs(parto): PR-3 record links SAM_Systems#34 and SAM_UI#153
michaldengusiak Sep 30, 2026
1442b9b
refactor(parto): PR-3 keep public Materialise/MaterialiseMixed signat…
michaldengusiak Sep 30, 2026
5ad0e47
Merge pull request #153 from SAM-BIM/feature/parto-pr3-systems-scope-…
michaldengusiak Sep 30, 2026
d9e30ca
docs(progress): closeout for SAM_UI#153 Part O PR-3 Systems scope (5a…
michaldengusiak Sep 30, 2026
5beb0d9
docs(parto): licensed real-UI Mixed Design acceptance on the cleaned …
michaldengusiak Sep 30, 2026
c7dc84c
feat(parto): PR-5 stamp every Part O case with what it was derived fr…
michaldengusiak Sep 30, 2026
521a1ca
docs(parto): PR-5 record links the open PRs
michaldengusiak Sep 30, 2026
44455c1
feat(parto): PR-5 review - no absolute path persisted, fingerprint in…
michaldengusiak Oct 1, 2026
a65825d
Merge pull request #155 from SAM-BIM/feature/parto-pr5-baseline-refer…
michaldengusiak Oct 1, 2026
1b5c51a
docs(progress): closeout for SAM_UI#155 Part O PR-5 baseline referenc…
michaldengusiak Oct 1, 2026
12ffe4a
Merge pull request #154 from SAM-BIM/docs/parto-mixed-licensed-accept…
michaldengusiak Oct 1, 2026
ee25a5d
docs(progress): closeout for SAM_UI#154 licensed Mixed acceptance evi…
michaldengusiak Oct 1, 2026
0dbf57e
feat(parto): PR-6 Systems in this assessment - SAM's scope shown in M…
michaldengusiak Oct 1, 2026
84e7ad9
Merge pull request #156 from SAM-BIM/feature/parto-pr6-systems-in-ass…
michaldengusiak Oct 1, 2026
bdcc2a5
docs(progress): closeout for SAM_UI#156 Part O PR-6 Systems in this a…
michaldengusiak Oct 1, 2026
c665f5d
docs(parto): final real-app acceptance before presentation - output f…
michaldengusiak Oct 1, 2026
95b283a
docs(evidence): ACCEPTANCE.md wording - no product-code changes; Mixe…
michaldengusiak Oct 1, 2026
2c0798b
Merge pull request #157 from SAM-BIM/docs/parto-final-acceptance-2026…
michaldengusiak Oct 1, 2026
6d54da2
fix(parto): sidecars name project files relative to themselves (Save …
michaldengusiak Oct 1, 2026
bd911a5
docs(parto): TPD "Loading TSD data" stall investigation + Systems-in-…
michaldengusiak Oct 1, 2026
22d47f7
fix(parto): review - compare resolved places, make sidecar locator re…
michaldengusiak Oct 1, 2026
ab713d2
Merge pull request #159 from SAM-BIM/docs/parto-tpd-stall-investigati…
michaldengusiak Oct 1, 2026
ecbfdb2
docs(progress): closeout for SAM_UI#159 TPD stall investigation + Sys…
michaldengusiak Oct 1, 2026
e99662d
Merge pull request #158 from SAM-BIM/fix/parto-sidecar-portability-20…
michaldengusiak Oct 1, 2026
7c17eab
docs(progress): closeout for SAM_UI#158 Part O sidecar portability (e…
michaldengusiak Oct 1, 2026
19da4e8
fix(uvalue): name the real reason a U-value calculation fails (PR1b)
SAM-BIM-AI Oct 1, 2026
35d5e35
docs(uvalue): PR1b record - SAM_Tas#78 merged (4b5e1c18)
SAM-BIM-AI Oct 1, 2026
8e4f417
Merge pull request #160 from SAM-BIM/fix/uvalue-calculator-messages-2…
SAM-BIM-AI Oct 1, 2026
cdaf1b2
docs(progress): closeout for SAM_UI#160 U-value PR1 (8e4f417)
SAM-BIM-AI Oct 1, 2026
a62c79e
fix(wpf): SearchWindow can be confirmed - OK, double-click and Enter
SAM-BIM-AI Oct 1, 2026
af21c6e
docs(searchwindow): PR record base SHA and #160 status
SAM-BIM-AI Oct 1, 2026
f44b6f7
Merge pull request #161 from SAM-BIM/fix/searchwindow-ok-confirm-2026…
SAM-BIM-AI Oct 1, 2026
ff68f3f
docs(progress): closeout for SAM_UI#161 SearchWindow confirm (f44b6f7)
SAM-BIM-AI Oct 1, 2026
5a578a6
docs(uvalue): PR2 brief (engine PR2a + window PR2b)
SAM-BIM-AI Oct 1, 2026
3ce0a9f
feat(uvalue): Set U-value engine - evaluator seam, view-model, Modify…
SAM-BIM-AI Oct 1, 2026
2e4c01c
docs(uvalue): PR2a record, timing spike and real-Tas engine probe evi…
SAM-BIM-AI Oct 1, 2026
9ef5bd5
Merge pull request #162 from SAM-BIM/feature/uvalue-pr2a-engine-2026-…
SAM-BIM-AI Oct 1, 2026
a023d9d
docs(progress): closeout for SAM_UI#162 U-value PR2a engine (9ef5bd5)
SAM-BIM-AI Oct 1, 2026
2f79822
feat(uvalue): Set U-value window, entry points, scoped check and repo…
SAM-BIM-AI Oct 1, 2026
bcdf24f
fix(uvalue): acceptance findings - unreachable text, timing line, pic…
SAM-BIM-AI Oct 1, 2026
f5c89fc
docs(uvalue): PR2b record and real-app acceptance evidence
SAM-BIM-AI Oct 1, 2026
338c697
Merge pull request #163 from SAM-BIM/feature/uvalue-pr2b-window-2026-…
SAM-BIM-AI Oct 1, 2026
ca3ef9c
docs(progress): closeout for SAM_UI#163 U-value PR2b window (338c697)
SAM-BIM-AI Oct 1, 2026
fb23d59
chore: remove internal agent/progress files and evidence artifacts fr…
michaldengusiak Oct 1, 2026
641b646
Merge origin/sow/2026-Q3 into upstream cleanup (keep internal files r…
michaldengusiak Oct 1, 2026
4f3bdd0
docs: remove agent prompt files and drop dangling references to remov…
michaldengusiak Oct 1, 2026
d7368c6
feat(glazing): Set glazing engine, window, entry points and importer …
SAM-BIM-AI Oct 1, 2026
33c79f0
test(glazing): Set glazing view-model, SetGlazing, reader/cache, repo…
SAM-BIM-AI Oct 1, 2026
b07a3ea
fix(glazing): findings from the first real-app pass
SAM-BIM-AI Oct 1, 2026
edb5932
docs(glazing): U-value PR3 record
SAM-BIM-AI Oct 1, 2026
f09520d
docs(glazing): record PR3 deviations from the plan
SAM-BIM-AI Oct 1, 2026
13dff64
fix(glazing): scoped check now covers the host-panel rules ModelCheck…
SAM-BIM-AI Oct 1, 2026
8a3175e
docs(glazing): PR3 closing pass - 3D right-click, ModelCheck before/a…
SAM-BIM-AI Oct 1, 2026
fadcefa
Merge pull request #164 from SAM-BIM/feature/uvalue-pr3-glazing-2026-…
SAM-BIM-AI Oct 1, 2026
b49ad56
docs(thermal): greenfield review of thermal performance editing; repl…
SAM-BIM-AI Oct 1, 2026
31b8745
feat(thermal): Stage A-lite - scope in the main area, one scope model…
SAM-BIM-AI Oct 1, 2026
18554a2
Merge pull request #165 from SAM-BIM/docs/thermal-performance-review-…
SAM-BIM-AI Oct 2, 2026
e2cd7d1
Merge pull request #166 from SAM-BIM/feature/thermal-stage-a-lite-202…
SAM-BIM-AI Oct 2, 2026
2727a2c
spike(thermal): B0 docking feasibility - read-only Thermal Performanc…
SAM-BIM-AI Oct 1, 2026
ea39b81
feat(thermal): Stage B - read-only Thermal Performance panel (selecti…
SAM-BIM-AI Oct 1, 2026
3e6508e
docs(thermal): Stage B record - rebased suite 1867/1867, aperture-row…
SAM-BIM-AI Oct 2, 2026
a6e4475
Merge pull request #167 from SAM-BIM/feature/thermal-stage-b-readonly…
SAM-BIM-AI Oct 2, 2026
6445e7a
feat(thermal): hybrid host for the Thermal Performance panel - docked…
SAM-BIM-AI Oct 2, 2026
95b0239
Merge pull request #168 from SAM-BIM/feature/thermal-host-hybrid-2026…
SAM-BIM-AI Oct 2, 2026
944cf48
feat(thermal): Stage C - edit in the Thermal Performance panel (Therm…
SAM-BIM-AI Oct 2, 2026
3c6d410
fix(thermal): panel rows reachable by UI Automation and Tab; Stage C …
SAM-BIM-AI Oct 2, 2026
15ff756
Merge pull request #169 from SAM-BIM/feature/thermal-stage-c-2026-10-02
SAM-BIM-AI Oct 2, 2026
bed9310
fix(thermal): selected panels are available as "Only the M selected" …
SAM-BIM-AI Oct 2, 2026
9f82a11
Merge pull request #170 from SAM-BIM/fix/thermal-selected-scope-2026-…
SAM-BIM-AI Oct 2, 2026
49ce1e4
feat(thermal): "Colour by U-value" - view-only parameter colouring of…
SAM-BIM-AI Oct 2, 2026
b15cf03
Merge pull request #171 from SAM-BIM/feature/thermal-parameter-colour…
SAM-BIM-AI Oct 2, 2026
0746411
feat(thermal): D0 - "Colour by" selector for stored thermal propertie…
SAM-BIM-AI Oct 2, 2026
99d4e0d
Merge pull request #172 from SAM-BIM/feature/thermal-colour-selector-…
SAM-BIM-AI Oct 2, 2026
f49965d
feat(thermal): D1 - existing construction alternatives next to the ge…
SAM-BIM-AI Oct 2, 2026
92e574f
feat(thermal): per-Apply CONSTRUCTION CHANGE report for an existing c…
SAM-BIM-AI Oct 2, 2026
fe74898
Merge pull request #173 from SAM-BIM/feature/thermal-d1-alternatives-…
SAM-BIM-AI Oct 2, 2026
1a3e8ba
feat(thermal): D2 - "Add source..." for opaque constructions and glaz…
SAM-BIM-AI Oct 2, 2026
a03940b
Merge pull request #174 from SAM-BIM/feature/thermal-d2-sources-2026-…
SAM-BIM-AI Oct 2, 2026
f5e7253
feat(thermal): E0-1 - Glazing System Builder domain foundation (draft…
SAM-BIM-AI Oct 2, 2026
ab8ed75
Merge pull request #175 from SAM-BIM/feature/thermal-e0-1-builder-dom…
SAM-BIM-AI Oct 2, 2026
7eb0fde
feat(thermal): E0-2 - "My glazing systems" as Change... candidates, r…
SAM-BIM-AI Oct 2, 2026
d358c48
Merge pull request #176 from SAM-BIM/feature/thermal-e0-2-user-candid…
SAM-BIM-AI Oct 2, 2026
8f43df3
feat(thermal): E0-3 - Glazing System Builder UI (Create new..., pane …
SAM-BIM-AI Oct 2, 2026
a622d8f
Merge pull request #177 from SAM-BIM/feature/thermal-e0-3-builder-ui-…
SAM-BIM-AI Oct 2, 2026
3310f90
docs(thermal): E1 - consolidation / legacy parity review; nothing pro…
SAM-BIM-AI Oct 2, 2026
e73e5db
test(thermal): E1 - make the parity guard tests capability-focused (n…
SAM-BIM-AI Oct 2, 2026
33e148b
Merge pull request #178 from SAM-BIM/feature/thermal-e1-consolidation…
SAM-BIM-AI Oct 2, 2026
06462a7
feat(thermal): F1 - glazing Change... gains g / light filters, sort o…
SAM-BIM-AI Oct 2, 2026
a7378ae
docs(thermal): F1 - Stage F record: final parity decision, what moved…
SAM-BIM-AI Oct 2, 2026
99a7516
Merge pull request #179 from SAM-BIM/feature/thermal-f1-candidate-fil…
SAM-BIM-AI Oct 2, 2026
e0e54c6
feat(thermal): F2 - right-click Set U-value... / Set glazing... open …
SAM-BIM-AI Oct 2, 2026
9cbd20a
docs(thermal): F2 - Stage F record complete: redirects, final accepta…
SAM-BIM-AI Oct 2, 2026
4eaddaf
Merge pull request #180 from SAM-BIM/feature/thermal-f2-redirect-clos…
SAM-BIM-AI Oct 2, 2026
a8ec034
fix(thermal): opaque alternatives never offer glazing or a zero/inval…
SAM-BIM-AI Oct 3, 2026
c544e4b
Merge pull request #181 from SAM-BIM/fix/thermal-opaque-alternatives-…
SAM-BIM-AI Oct 3, 2026
89ce37f
docs(thermal): record the NCM v6.1e gap-data finding (Follow-up 2) - …
SAM-BIM-AI Oct 3, 2026
75f8174
Merge pull request #182 from SAM-BIM/docs/thermal-ncm-v61e-gap-data-2…
SAM-BIM-AI Oct 3, 2026
76523fa
fix(thermal): intermittent Builder test failures - run the save-with-…
SAM-BIM-AI Oct 3, 2026
4100a1e
Merge pull request #183 from SAM-BIM/fix/thermal-builder-test-threadi…
SAM-BIM-AI Oct 3, 2026
db64543
feat(user-library): shared persistence engine + glazing Rename / Remo…
SAM-BIM-AI Oct 3, 2026
c1dce85
feat(user-library): "My library" manager window + glazing Rename / Re…
SAM-BIM-AI Oct 3, 2026
29059c2
Merge pull request #184 from SAM-BIM/feature/user-library-engine-2026…
SAM-BIM-AI Oct 4, 2026
e726b6a
fix(user-library): a right-click on a glazing candidate no longer cho…
SAM-BIM-AI Oct 4, 2026
bdef4eb
feat(user-library): Builder 2 - edit a saved glazing system with roun…
SAM-BIM-AI Oct 3, 2026
69802fb
docs(user-library): state the approved archive-first Replace contract…
SAM-BIM-AI Oct 3, 2026
513ec6e
Merge pull request #185 from SAM-BIM/feature/user-library-manager-202…
SAM-BIM-AI Oct 4, 2026
bba5bec
fix(user-library): the Builder's issue list follows the check it show…
SAM-BIM-AI Oct 4, 2026
7160fa2
Merge pull request #186 from SAM-BIM/feature/user-library-builder-edi…
SAM-BIM-AI Oct 4, 2026
b1a5977
feat(user-library): opaque "My constructions" library (PR4)
SAM-BIM-AI Oct 4, 2026
9a1779d
fix(user-library): a saved construction keeps no provenance of the on…
SAM-BIM-AI Oct 4, 2026
710d8a5
Merge pull request #187 from SAM-BIM/feature/user-constructions-2026-…
SAM-BIM-AI Oct 4, 2026
57dee46
Make Part O cooling control room explicit
michaldengusiak Oct 4, 2026
0dee73d
Record PR1 integration gate status
michaldengusiak Oct 4, 2026
bea1256
Merge pull request #188 from SAM-BIM/codex/part-o-cooling-control-room
michaldengusiak Oct 4, 2026
aba850f
feat(user-library): richer frame authoring in the Glazing System Buil…
SAM-BIM-AI Oct 4, 2026
744bd16
Record merged Part O PR1 state
michaldengusiak Oct 4, 2026
636ac1b
Merge pull request #189 from SAM-BIM/feature/user-library-frame-autho…
SAM-BIM-AI Oct 4, 2026
67f316a
fix(user-library): final UI refinement of My library and Save to My c…
SAM-BIM-AI Oct 4, 2026
a16ff93
Merge pull request #190 from SAM-BIM/feature/user-library-ui-acceptan…
SAM-BIM-AI Oct 4, 2026
0e9f3a6
docs: add User Libraries and Builder user guide
SAM-BIM-AI Oct 4, 2026
04a48d2
Record Part O run weather and cooling diagnostics
michaldengusiak Oct 4, 2026
890e558
Merge pull request #191 from SAM-BIM/docs/user-libraries-builder-user…
SAM-BIM-AI Oct 4, 2026
a551d32
Merge pull request #192 from SAM-BIM/codex/part-o-pr2-diagnostics
michaldengusiak Oct 4, 2026
8d3deab
Record merged Part O PR2 state
michaldengusiak Oct 4, 2026
42325cc
Record native Part O Iteration 3 acceptance defect
michaldengusiak Oct 5, 2026
ed9fd72
Bind saved dwelling cooling rooms in Iteration 3 guidance
michaldengusiak Oct 5, 2026
b2f17d9
Merge pull request #193 from SAM-BIM/codex/part-o-iteration3-room-bin…
michaldengusiak Oct 5, 2026
e4824c5
Record native Iteration 3 acceptance result
michaldengusiak Oct 5, 2026
c4aef30
Guard Part O output evidence against new run collisions
michaldengusiak Oct 5, 2026
a831b5c
Keep collision refusals out of occupied Iteration 3 folders
michaldengusiak Oct 5, 2026
efe5659
Merge pull request #194 from SAM-BIM/codex/part-o-output-evidence-guard
michaldengusiak Oct 5, 2026
b716ba4
Record merged Part O output safeguard acceptance
michaldengusiak Oct 5, 2026
3be3f8f
test: cover modified weather and dwelling stat-room Iteration 3 review
michaldengusiak Oct 5, 2026
27a378e
Merge pull request #195 from SAM-BIM/codex/part-o-alt-weather-journey…
michaldengusiak Oct 5, 2026
7cc5787
docs: record merged Iteration 3 journey coverage
michaldengusiak Oct 5, 2026
d8be160
docs: add Part O Prepare and Run user guide
michaldengusiak Oct 5, 2026
2e2289b
docs: record guide PR status
michaldengusiak Oct 5, 2026
ffd3c39
Merge pull request #196 from SAM-BIM/codex/part-o-prepare-run-user-guide
michaldengusiak Oct 5, 2026
a434330
docs: record Part O guide merge
michaldengusiak Oct 5, 2026
7e7bf10
docs: restructure user libraries and builder guide
SAM-BIM-AI Oct 5, 2026
4f00369
docs: add key terms, entry route and source table to user libraries g…
SAM-BIM-AI Oct 5, 2026
e494d1e
Merge pull request #197 from SAM-BIM/docs/user-libraries-builder-guid…
SAM-BIM-AI Oct 5, 2026
bdb50f2
docs: add Part O Wiki sync script and publication record
michaldengusiak Oct 5, 2026
e50b804
Rewrite Part O guide around engineering workflow
michaldengusiak Oct 5, 2026
70d1f0e
Polish Part O guide before review
michaldengusiak Oct 5, 2026
147c8ec
Record Part O guide PR checkpoint
michaldengusiak Oct 5, 2026
fc22199
Correct Mixed Design catalogue example
michaldengusiak Oct 5, 2026
354c8e9
Record Part O review correction status
michaldengusiak Oct 5, 2026
eeaea79
test(floor plan): clustered-anchor label regression through the real …
SAM-BIM-AI Oct 5, 2026
9b9aa2e
Clarify missing TM59 internal conditions in guide
michaldengusiak Oct 5, 2026
278791a
Record final Part O review fixes
michaldengusiak Oct 5, 2026
3d7758d
Merge pull request #198 from SAM-BIM/codex/part-o-engineer-guide
michaldengusiak Oct 5, 2026
46ded6f
Record Part O guide merge and Wiki publication
michaldengusiak Oct 5, 2026
58d4fab
Merge remote-tracking branch 'origin/sow/2026-Q3' into test/solver2d-…
SAM-BIM-AI Oct 5, 2026
6689063
Merge pull request #200 from SAM-BIM/test/solver2d-clustered-anchors-e2e
SAM-BIM-AI Oct 5, 2026
3a89aa1
docs: record #58 Solver2D closeout (SAM#177, #200)
SAM-BIM-AI Oct 5, 2026
759d528
test: enrol PartOIteration3RoomBindingTests in the WPF collection
SAM-BIM-AI Oct 5, 2026
0f7b662
Merge pull request #201 from SAM-BIM/fix/part-o-iteration3-wpf-collec…
SAM-BIM-AI Oct 5, 2026
c4b2220
docs: record WPF collection fix closeout (#201)
SAM-BIM-AI Oct 5, 2026
c8a932f
docs: record Thermal B0 docking spike branch resolved (superseded by …
SAM-BIM-AI Oct 5, 2026
bd70455
chore: remove internal PROJECT_PROGRESS.md from the upstream-facing b…
michaldengusiak Oct 5, 2026
f6fab16
docs: remove internal AI/process provenance wording
Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 24 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,16 @@ jobs:
# Keep current repo LAST. Do not duplicate SAM_UI earlier in the list.
$buildOrder = @(
'SAM'
'SAM_Mollier'
'SAM_Systems'
'SAM_Windows'
'SAM_Mollier'
'SAM_gbXML'
'SAM_SolarCalculator'
# Must precede SAM_Tas: SAM_Tas\benchmark\SAM.Analytical.Tas.Benchmark references
# SAM_Validation\build\SAM.Analytical.Benchmark.dll by HintPath, and without it it fails
# CS0234. Same slot as BuildAlls_v4.csproj uses locally. Needs only SAM and SAM_Mollier,
# both already above.
'SAM_Validation'
'SAM_Tas'
'SAM_Excel'
'SAM_GEM'
Expand All @@ -123,7 +128,18 @@ jobs:
# Current sow branch: base_ref on PR events, ref_name on push events.
$sowRef = if ($baseRef -match '^sow/') { $baseRef } elseif ($refName -match '^sow/') { $refName } else { '' }
if ($sowRef -and $sowRef -ne $headRef) { $candidates += $sowRef }
$candidates += 'sow/2026-Q2'
# Canonical quarter branch (strip suffixes like -update-optimization): e.g. sow/2026-Q3.
# On push events base_ref is empty and ref_name may be a feature branch off a sow branch,
# so without this the dep clone falls back to master and misses in-quarter API changes.
$canonical = ''
foreach ($cref in @($headRef, $baseRef, $refName)) {
if ($cref -match 'sow/(\d{4})-Q(\d)') { $canonical = "sow/$($Matches[1])-Q$($Matches[2])"; break }
}
if ($canonical -and $candidates -notcontains $canonical) { $candidates += $canonical }
# Hard fallbacks to the active quarter branches (in priority order).
foreach ($fb in @('sow/2026-Q3', 'sow/2026-Q2')) {
if ($candidates -notcontains $fb) { $candidates += $fb }
}
# Use the auth-token form so private deps (e.g. SAM_Solver) don't prompt
$url = if ($token) { "https://$token@github.com/$org/$r.git" } else { "https://github.com/$org/$r.git" }
$cloned = $false
Expand Down Expand Up @@ -170,11 +186,16 @@ jobs:
# Keep current repo LAST. SAM_Solver must be built before SAM_UI.
$buildOrder = @(
'SAM'
'SAM_Mollier'
'SAM_Systems'
'SAM_Windows'
'SAM_Mollier'
'SAM_gbXML'
'SAM_SolarCalculator'
# Must precede SAM_Tas: SAM_Tas\benchmark\SAM.Analytical.Tas.Benchmark references
# SAM_Validation\build\SAM.Analytical.Benchmark.dll by HintPath, and without it it fails
# CS0234. Same slot as BuildAlls_v4.csproj uses locally. Needs only SAM and SAM_Mollier,
# both already above.
'SAM_Validation'
'SAM_Tas'
'SAM_Excel'
'SAM_GEM'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<SelfContained>true</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<Configurations>Debug;Release;net48-windows</Configurations>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>SAM.ico</ApplicationIcon>
Expand Down
6 changes: 2 additions & 4 deletions Application/SAM Analytical/SAM Analytical.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<SelfContained>true</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<Configurations>Debug;Release;net48-windows</Configurations>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>SAM.ico</ApplicationIcon>
Expand Down Expand Up @@ -50,11 +50,9 @@
<Reference Include="SAM.Core">
<HintPath>..\..\..\SAM\build\SAM.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="SAM.Geometry">
<HintPath>..\..\..\SAM\build\SAM.Geometry.dll</HintPath>
</Reference>
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\SAM.png" />
Expand Down Expand Up @@ -153,7 +151,7 @@
<PackageReference Include="HelixToolkit.Wpf">
<Version>2.27.0</Version>
</PackageReference>
<PackageReference Include="HoneybeeSchema" Version="1.5901.5" />
<PackageReference Include="HoneybeeSchema" Version="$(HoneybeeSchemaVersion)" />
<PackageReference Include="NetOfficeFw.Excel">
<Version>1.9.7</Version>
</PackageReference>
Expand Down
4 changes: 1 addition & 3 deletions Application/SAM Geometry/SAM Geometry.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<SelfContained>true</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<Configurations>Debug;Release;net48-windows</Configurations>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<OutputPath>..\..\build\</OutputPath>
Expand All @@ -24,8 +24,6 @@
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\WPF\SAM.Geometry.UI.WPF\SAM.Geometry.UI.WPF.csproj" />
Expand Down
4 changes: 1 addition & 3 deletions Application/SAM Weather/SAM Weather.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<SelfContained>true</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<Configurations>Debug;Release;net48-windows</Configurations>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>SAM.ico</ApplicationIcon>
Expand All @@ -22,8 +22,6 @@
<Reference Include="SAM.Weather">
<HintPath>..\..\..\SAM\build\SAM.Weather.dll</HintPath>
</Reference>
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\WPF\SAM.Weather.UI.WPF\SAM.Weather.UI.WPF.csproj" />
Expand Down
9 changes: 9 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@
<Deterministic>true</Deterministic>
</PropertyGroup>

<!--
Centralised HoneybeeSchema version. Must stay in lock-step with SAM_LadybugTools
(currently 2.6.0): SAM_UI calls into SAM.Analytical.LadybugTools, which is compiled
against this version, so a mismatch causes runtime TypeLoad errors.
-->
<PropertyGroup>
<HoneybeeSchemaVersion>2.6.0</HoneybeeSchemaVersion>
</PropertyGroup>

<!--
Projects where SDK assembly-attribute generation is disabled (legacy AssemblyInfo.cs
with GenerateAssemblyInfo=false) OR projects where the SDK doesn't auto-generate
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
using Grasshopper.Kernel;
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors

using Grasshopper.Kernel;
using SAM.Analytical.Grasshopper;
using SAM.Analytical.UI.Grasshopper.Properties;
using SAM.Core.Grasshopper;
Expand Down Expand Up @@ -31,7 +34,7 @@ public class SAMAnalyticalPrintAHU : GH_SAMVariableOutputParameterComponent
/// </summary>
public SAMAnalyticalPrintAHU()
: base("SAMAnalytical.PrintAHU", "SAMAnalytical.PrintAHU",
"Print Room Data Sheets",
"Exports Air Handling Unit schedules to an Excel workbook using a predefined template",
"SAM", "UI")
{
}
Expand Down Expand Up @@ -68,7 +71,7 @@ protected override GH_SAMParam[] Outputs
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooAnalyticalModelParam() { Name = "analytcialModel", NickName = "analytcialModel", Description = "SAM Analytical Model", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "successful", NickName = "successful", Description = "Correctly imported?", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "successful", NickName = "successful", Description = "Returns True if the component ran without errors", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
return result.ToArray();
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
using Grasshopper.Kernel;
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors

using Grasshopper.Kernel;
using SAM.Analytical.Grasshopper;
using SAM.Analytical.UI.Grasshopper.Properties;
using SAM.Core.Grasshopper;
Expand Down Expand Up @@ -68,7 +71,7 @@ protected override GH_SAMParam[] Outputs
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooAnalyticalModelParam() { Name = "analyticalModel", NickName = "analyticalModel", Description = "SAM Analytical Model", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "successful", NickName = "successful", Description = "Correctly imported?", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "successful", NickName = "successful", Description = "Returns True if the component ran without errors", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
return result.ToArray();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Configurations>Debug;Release;net48-windows</Configurations>
<Configurations>Debug;Release</Configurations>
<OutputPath>..\..\build\</OutputPath>
</PropertyGroup>
<PropertyGroup>
Expand Down Expand Up @@ -58,8 +58,6 @@
<Reference Include="SAM.Geometry.Grasshopper.Mollier">
<HintPath>..\..\..\SAM_Mollier\build\SAM.Geometry.Grasshopper.Mollier.dll</HintPath>
</Reference>
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Grasshopper">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class SAMAnalyticalMultitaskerWorkflow : GH_SAMVariableOutputParameterCom
/// </summary>
public SAMAnalyticalMultitaskerWorkflow()
: base("SAMAnalytical.MultitaskerWorkflow", "SAMAnalytical.MultitaskerWorkflow",
"MultitaskerWorkflow",
"Runs the full TAS thermal simulation workflow (export, sizing, simulation) for multiple analytical models in batch",
"SAM WIP", "Tas")
{
}
Expand All @@ -56,16 +56,16 @@ protected override GH_SAMParam[] Inputs
get
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooAnalyticalModelParam { Name = "_analyticalModels", NickName = "_analyticalModels", Description = "AnalyticalModels", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_String() { Name = "_directory", NickName = "_directory", Description = "Directory", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooAnalyticalModelParam { Name = "_analyticalModels", NickName = "_analyticalModels", Description = "List of SAM Analytical Models to process through the TAS workflow", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_String() { Name = "_directory", NickName = "_directory", Description = "Root output directory for TBD, TSD and results files", Access = GH_ParamAccess.item }, ParamVisibility.Binding));

result.Add(new GH_SAMParam(new Weather.Grasshopper.GooWeatherDataParam() { Name = "weatherData_", NickName = "weatherData_", Description = "SAM WeatherData", Access = GH_ParamAccess.item, Optional = true }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooAnalyticalObjectParam() { Name = "coolingDesignDays_", NickName = "coolingDesignDays_", Description = "The SAM Analytical Design Days for Cooling", Access = GH_ParamAccess.list, Optional = true }, ParamVisibility.Voluntary));
result.Add(new GH_SAMParam(new GooAnalyticalObjectParam() { Name = "heatingDesignDays_", NickName = "heatingDesignDays_", Description = "The SAM Analytical Design Days for Heating", Access = GH_ParamAccess.list, Optional = true }, ParamVisibility.Voluntary));

global::Grasshopper.Kernel.Parameters.Param_Boolean @boolean = null;

boolean = new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "_addIZAMs_", NickName = "_addIZAMs_", Description = "Add IZAMs", Access = GH_ParamAccess.item };
boolean = new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "_addIZAMs_", NickName = "_addIZAMs_", Description = "If True, adds internal zone air mass (IZAM) elements to the TAS model", Access = GH_ParamAccess.item };
@boolean.SetPersistentData(true);
result.Add(new GH_SAMParam(boolean, ParamVisibility.Voluntary));

Expand Down Expand Up @@ -125,7 +125,7 @@ protected override GH_SAMParam[] Outputs
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_String() { Name = "CaseDescriptions", NickName = "CaseDescriptions", Description = "CaseDescriptions", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_String() { Name = "Directories", NickName = "Directories", Description = "Directories", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "successful", NickName = "successful", Description = "successful", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Boolean() { Name = "successful", NickName = "successful", Description = "Returns True if the workflow completed without being cancelled", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
return [.. result];
}
}
Expand Down Expand Up @@ -349,9 +349,17 @@ protected override void SolveInstance(IGH_DataAccess dataAccess)
}
}

Dictionary<string, AnalyticalModel> dictionary = Modify.RunWorkflow(analyticalModels, workflowSettings, directory, parallel, maxDegreeOfParallelism);
// The cancellable overload, not the compatibility one: that discards the cancelled flag, and a
// cancelled batch would then be indistinguishable from a complete one here - the count warning
// below is not enough, since a partial batch that happens to be short for an unrelated reason
// reads the same. Successful must not be true for a run the user stopped.
Dictionary<string, AnalyticalModel> dictionary = Modify.RunWorkflow(analyticalModels, workflowSettings, directory, System.Threading.CancellationToken.None, out bool cancelled, parallel, maxDegreeOfParallelism);

if (analyticalModels.Count != dictionary.Count)
if (cancelled)
{
AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Workflow cancelled. The models listed below are the ones that finished; partially written .tbd/.tsd files may remain in the output directory.");
}
else if (analyticalModels.Count != (dictionary == null ? 0 : dictionary.Count))
{
AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Some of the models could not be calculated.");
}
Expand All @@ -370,7 +378,7 @@ protected override void SolveInstance(IGH_DataAccess dataAccess)

if (index_successful != -1)
{
dataAccess.SetData(index_successful, true);
dataAccess.SetData(index_successful, !cancelled);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Configurations>Debug;Release;net48-windows</Configurations>
<Configurations>Debug;Release</Configurations>
<OutputPath>..\..\build\</OutputPath>
</PropertyGroup>
<PropertyGroup>
Expand Down Expand Up @@ -65,8 +65,6 @@
<Reference Include="SAM.Weather.Grasshopper">
<HintPath>..\..\..\SAM\build\SAM.Weather.Grasshopper.dll</HintPath>
</Reference>
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Grasshopper">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
using Grasshopper.Kernel;
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors

using Grasshopper.Kernel;
using System;
using System.Collections.Generic;
using System.Drawing;
Expand Down Expand Up @@ -39,7 +42,7 @@ protected override GH_SAMParam[] Inputs
param_Number = new global::Grasshopper.Kernel.Parameters.Param_Number() { Name = "_dryBulbTemperature", NickName = "_dryBulbTemperature", Description = "Dry Bulb Temperature [°C]", Access = GH_ParamAccess.item };
result.Add(new GH_SAMParam(param_Number, ParamVisibility.Binding));

param_Number = new global::Grasshopper.Kernel.Parameters.Param_Number() { Name = "_efficiency_", NickName = "_efficiency_", Description = "Efficiency recomended [0.75-1]", Access = GH_ParamAccess.item, Optional = true };
param_Number = new global::Grasshopper.Kernel.Parameters.Param_Number() { Name = "_efficiency_", NickName = "_efficiency_", Description = "Efficiency recommended [0.75-1]", Access = GH_ParamAccess.item, Optional = true };
param_Number.SetPersistentData(1.0);
result.Add(new GH_SAMParam(param_Number, ParamVisibility.Binding));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
using Grasshopper.Kernel;
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors

using Grasshopper.Kernel;
using System;
using System.Collections.Generic;
using System.Drawing;
Expand Down Expand Up @@ -33,7 +36,7 @@ protected override GH_SAMParam[] Inputs
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooMollierPointParam() { Name = "_start", NickName = "_start", Description = "Start Mollier Point for MollierProcess", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Number() { Name = "_enthalpyDifference", NickName = "_enthalpyDifference", Description = "Enthalpy Difference [kJ]", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_Number() { Name = "_enthalpyDifference", NickName = "_enthalpyDifference", Description = "Enthalpy Difference [kJ/kg]", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
global::Grasshopper.Kernel.Parameters.Param_Colour param_Colour = null;
param_Colour = new global::Grasshopper.Kernel.Parameters.Param_Colour() { Name = "_color_", NickName = "_color_", Description = "Colour RGB", Access = GH_ParamAccess.item, Optional = true };
result.Add(new GH_SAMParam(param_Colour, ParamVisibility.Voluntary));
Expand Down
Loading
Loading