Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
1db3cb9
Mollier → HVAC systems bridge (Abstract 2): SAM.Analytical.Systems.Mo…
michaldengusiak Jun 28, 2026
62c9a41
docs: mark bridge work complete; SAM_Tas leg is the remaining deliver…
michaldengusiak Jun 28, 2026
2b08572
docs: plan schematic preview for the Mollier → Systems bridge
michaldengusiak Jun 29, 2026
54e08b1
docs: make SystemHumidifier abstract; map humidification subtypes to …
michaldengusiak Jun 29, 2026
d0d072f
feat(Mollier bridge): previewable schematic conversion + abstract Sys…
claude Jun 29, 2026
a3d84cd
fix: resolve ISystem ambiguity (build) + address review feedback
claude Jun 29, 2026
719781a
feat(Mollier bridge): produce display-native (viewable) SystemEnergyC…
claude Jun 29, 2026
0e6864a
fix(display converter): seed plant room before first Connect (NRE)
claude Jun 29, 2026
8e8104c
Update SystemPlantRoom.cs
michaldengusiak Jun 29, 2026
375e109
feat(Mollier bridge): seed energy centre from a plant-room template
claude Jun 29, 2026
2291948
feat(Mollier bridge): offset merged air side clear of template plant
claude Jun 29, 2026
3466e2c
docs: mark air-side layout offset as implemented
claude Jun 29, 2026
a78f603
feat(Mollier bridge): cap outside-air boundaries with fresh/exhaust j…
claude Jun 29, 2026
31e29d7
docs: record outside-air junction capping
claude Jun 29, 2026
6cdeb4e
test(TwinWheelExample): assert outside-air junctions are added and wired
claude Jun 29, 2026
f09d742
refactor(Mollier bridge): supply + extract on one AirSystem
claude Jul 1, 2026
287b94a
feat(Mollier bridge): room-side Space + Damper wrapped in DisplayAirS…
claude Jul 1, 2026
cf0f40b
docs: record single air system + room-side group
claude Jul 1, 2026
6d75fdd
docs: add mollier processes to systems implementation plan
SAM-BIM-AI Jul 10, 2026
e91ed09
fix: implement IGH_SAMComponent.MinCompatibleVersion/ObsoleteSeverity…
michaldengusiak Jul 13, 2026
49a423d
fix: Week 1 - fix 2 P0 bugs in Systems GH components (#10)
SAM-BIM-AI Jul 13, 2026
c76fdfd
feat(mollier-bridge): diagnostics contract, corrected psychrometrics,…
SAM-BIM-AI Jul 17, 2026
d7303c2
refactor: use corrected Mollier fan-process factory (#13)
SAM-BIM-AI Jul 17, 2026
c6a441d
Add the SystemEnergyCentre capability index and its conformance test
michaldengusiak Aug 8, 2026
e99f311
Refuse a malformed capability index, and prove no template is opened
michaldengusiak Aug 8, 2026
895a86d
Make Application an eligibility constraint, and execute the suite in CI
michaldengusiak Aug 8, 2026
bff125f
Close the eligibility holes a review found in step 5c
michaldengusiak Aug 8, 2026
24ed46a
fix missing reference
michaldengusiak Aug 14, 2026
4446bb8
Validate every catalogue entry before the application filter
michaldengusiak Aug 17, 2026
43d90ca
Add AI agent instructions and project progress tracking
michaldengusiak Aug 18, 2026
618fc74
Merge remote-tracking branch 'origin/sow/2026-Q3' into feature/partf-…
michaldengusiak Aug 18, 2026
208379d
Merge pull request #14 from SAM-BIM/feature/partf-terminal-transfer-c…
SAM-BIM-AI Aug 21, 2026
8aea0b9
feat(systems): add ventilation unit manufacturer catalogue
SAM-BIM-AI Aug 28, 2026
2905962
chore(systems): add the missing SPDX header to AnalyticalSystemSettin…
SAM-BIM-AI Aug 28, 2026
491c190
fix(systems): resolve the shipped VentilationUnit leaf for a legacy p…
SAM-BIM-AI Aug 29, 2026
32fff61
Merge pull request #15 from SAM-BIM/feature/parto-iteration2-ventilat…
SAM-BIM-AI Aug 29, 2026
be6a132
fix(systems): address two late Codex P2 findings on the ventilation u…
michaldengusiak Aug 31, 2026
30d9049
docs: record the late-P2 catalogue-hardening follow-up stage in PROJE…
michaldengusiak Aug 31, 2026
e444982
Merge pull request #16 from SAM-BIM/fix/parto-catalogue-late-p2-harde…
michaldengusiak Aug 31, 2026
003568e
feat(systems): expose the ventilation-unit catalogue through Grasshopper
michaldengusiak Aug 31, 2026
a57e797
Merge pull request #17 from SAM-BIM/feature/parto-iteration2-gh-venti…
michaldengusiak Aug 31, 2026
e80148b
fix: map Nuaire ventilation unit maximum airflow
michaldengusiak Sep 1, 2026
b3e9f70
docs: drop the stale Nuaire unselectable example
michaldengusiak Sep 1, 2026
fd31423
docs: retire the resolved-capacity step from Iteration 3
michaldengusiak Sep 1, 2026
fea5055
Merge pull request #18 from SAM-BIM/fix/nuaire-ventilation-unit-capacity
michaldengusiak Sep 1, 2026
0426f73
feat(systems): the catalogue holds a second real product - Nuaire XBO…
michaldengusiak Sep 7, 2026
e2cecaf
docs: record native Iteration 2 acceptance PASS for the XBC15 closeout
michaldengusiak Sep 7, 2026
61cedcf
Merge pull request #19 from SAM-BIM/feature/parto-catalogue-xbc15
michaldengusiak Sep 7, 2026
9e1cd06
docs: record the XBC15 closeout merge and post-merge verification
michaldengusiak Sep 7, 2026
75bc8aa
feat(parto): deterministic mechanical ventilation materialisation
SAM-BIM-AI Sep 9, 2026
89cf139
Merge pull request #20 from SAM-BIM/part-o/iteration3-systems-materia…
SAM-BIM-AI Sep 9, 2026
c0a7076
test(systems): pin that the template's plant and design conditions ar…
michaldengusiak Sep 11, 2026
007a58d
Merge pull request #21 from SAM-BIM/partO/iteration3-template-plant-c…
michaldengusiak Sep 11, 2026
54ead04
fix(templates): state a non-zero DHW circuit design delta-T on 8 ship…
michaldengusiak Sep 11, 2026
a0395dc
Merge pull request #22 from SAM-BIM/partO/dhw-circuit-group-design-te…
michaldengusiak Sep 12, 2026
3772fc3
feat(analytical.systems): PR5A - per-unit manufacturer-aware ventilat…
michaldengusiak Sep 12, 2026
5213ba9
Merge pull request #23 from SAM-BIM/feature/parto-pr5a-unit-settings
michaldengusiak Sep 12, 2026
c36ba11
feat(parto): PR5B - same-AirSystem recirculation cooling branch from …
SAM-BIM-AI Sep 15, 2026
f6523d5
docs(parto): PR5B progress entry
SAM-BIM-AI Sep 15, 2026
05ca0c1
Merge pull request #24 from SAM-BIM/feature/parto-pr5b-recirculation-…
SAM-BIM-AI Sep 15, 2026
914f929
feat(parto): manufacturer guidance catalogue entry, resolved strategy…
SAM-BIM-AI Sep 18, 2026
a294f29
docs(parto): record the licensed native-seam probe behind the guidanc…
SAM-BIM-AI Sep 18, 2026
134ea2d
build: remove dead .NET Framework app.config leftovers
michaldengusiak Sep 22, 2026
f010a74
Merge pull request #26 from SAM-BIM/build/remove-netfx-appconfig-left…
michaldengusiak Sep 22, 2026
f5cd72a
docs: record merged .NET Framework app.config cleanup in PROJECT_PROG…
michaldengusiak Sep 22, 2026
0e89114
Merge pull request #27 from SAM-BIM/build/netfx-cleanup-closeout
michaldengusiak Sep 22, 2026
edcfd55
feat(parto): Nuaire entry - intake-offset cooling rule, no 16 C floor…
michaldengusiak Sep 24, 2026
b82d743
feat(parto): materialise the selected product to manufacturer guidanc…
michaldengusiak Sep 24, 2026
d0af46d
feat(parto): resolve a selected product's manufacturer-guidance setti…
michaldengusiak Sep 24, 2026
c723d0a
docs: record SAM#123 manufacturer-guidance implementation and 2026-09…
michaldengusiak Sep 24, 2026
522ceb9
docs: record final integration review of the SAM#123 manufacturer-gui…
michaldengusiak Sep 24, 2026
6c04260
Merge pull request #25 from SAM-BIM/feature/parto-nuaire-manufacturer…
michaldengusiak Sep 24, 2026
94ae74e
docs: record merged SAM#123 manufacturer-guidance work in PROJECT_PRO…
michaldengusiak Sep 24, 2026
df5dd33
Merge pull request #28 from SAM-BIM/docs/parto-nuaire-guidance-closeout
michaldengusiak Sep 24, 2026
fe8da59
feat(parto): Nuaire entry follows the 24 Sep 2026 reply
michaldengusiak Sep 24, 2026
1475404
docs(parto): the product table no longer carries a DX capacity bound
michaldengusiak Sep 24, 2026
151da7f
docs(parto): record the Nuaire reply work in PROJECT_PROGRESS
michaldengusiak Sep 24, 2026
00de17b
docs(parto): demote the superseded branch record; PRs are open, not m…
michaldengusiak Sep 24, 2026
c88c9b3
Merge pull request #29 from SAM-BIM/feature/parto-nuaire-reply-2026-0…
michaldengusiak Sep 24, 2026
e4cfb82
docs: record the merged Nuaire reply work in PROJECT_PROGRESS
michaldengusiak Sep 24, 2026
2213373
Merge pull request #30 from SAM-BIM/docs/parto-nuaire-reply-merged
michaldengusiak Sep 24, 2026
61daebd
feat(parto): cooled and uncooled units in one materialisation (PR3B-2)
michaldengusiak Sep 27, 2026
56fcb8a
docs: correct PR3B-2 test count
michaldengusiak Sep 27, 2026
005c4fe
Merge pull request #31 from SAM-BIM/feature/parto-mixed-cooling-pr3b2…
michaldengusiak Sep 28, 2026
fbef48f
docs(agents): PROJECT_PROGRESS.md is a post-merge closeout, never on …
michaldengusiak Sep 28, 2026
79c02f5
fix(parto): draw the guidance DX coil between the exchanger and the s…
SAM-BIM-AI Sep 29, 2026
948542d
Merge pull request #33 from SAM-BIM/fix/parto-guidance-dx-layout-2026…
SAM-BIM-AI Sep 29, 2026
aadb1b1
docs(progress): closeout for SAM_Systems#33 guidance DX coil layout (…
SAM-BIM-AI Sep 29, 2026
cf9a52d
feat(parto): PR-3 MechanicalVentilation honours a stated ventilation …
michaldengusiak Sep 30, 2026
e14e729
docs(parto): PR-3 record links SAM_Systems#34 and SAM_UI#153
michaldengusiak Sep 30, 2026
1893e71
Merge pull request #34 from SAM-BIM/feature/parto-pr3-systems-scope-2…
michaldengusiak Sep 30, 2026
09063b4
docs(progress): closeout for SAM_Systems#34 Part O PR-3 system scope …
michaldengusiak Sep 30, 2026
cddc7f5
chore: remove internal agent/progress files and evidence artifacts fr…
michaldengusiak Oct 1, 2026
4e15b05
docs: remove session handover note for upstream
michaldengusiak Oct 1, 2026
550c6c8
Make Part O cooling control room explicit
michaldengusiak Oct 4, 2026
63fac81
Record PR1 integration gate status
michaldengusiak Oct 4, 2026
301d0fa
Merge pull request #35 from SAM-BIM/codex/part-o-cooling-control-room
michaldengusiak Oct 4, 2026
5cd9ee1
Record merged Part O PR1 state
michaldengusiak Oct 4, 2026
7d4d972
chore: remove internal PROJECT_PROGRESS.md from the upstream-facing b…
michaldengusiak Oct 5, 2026
4fe7d8a
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ jobs:
# Keep the current repo LAST.
$buildOrder = @(
'SAM'
'SAM_Mollier'
$repo
)

Expand Down Expand Up @@ -140,6 +141,7 @@ jobs:
# Same build order as above (keep repo LAST)
$buildOrder = @(
'SAM'
'SAM_Mollier'
$repo
)

Expand All @@ -160,7 +162,43 @@ jobs:
& msbuild $sln /t:Rebuild @common
}

- name: Test SAM.Analytical.Systems.Tests
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'

# The capability/template conformance suite must EXECUTE in CI, not merely compile. It is the
# only thing that checks CapabilityIndex.JSON against the shipped SystemEnergyCentre templates -
# that every template is accounted for, that a heat-recovery claim matches an exchanger in the
# file, and that no template models a summer bypass. A drifted index is otherwise invisible
# until it silently selects the wrong system for a dwelling.
#
# Targeted rather than a solution-wide `dotnet test`: this repo's other test project is already
# covered by its own history, and the conformance suite reads the repository's own resources
# from source, so it must run from the checkout rather than from a build output.
$project = Join-Path '${{ env.REPO_NAME }}' 'SAM.Analytical.Systems.Tests\SAM.Analytical.Systems.Tests.csproj'
if (-not (Test-Path $project)) { throw "Conformance test project not found: $project" }

# --no-build would need a matching Release layout; the solution Rebuild above already produced
# the dependencies this references, so a plain build here is cheap and avoids a config mismatch.
# /p:SAMVersion MATTERS. Three SAM_Systems projects write to the same build\ folder the artifact
# step publishes, so a test build without it recompiles them at the 1.0.0.0 local-dev fallback
# and silently overwrites the CI-stamped DLLs - shipping version-inconsistent assemblies.
& dotnet test $project -c Release "-p:SAMVersion=${{ steps.ver.outputs.samversion }}" --logger 'trx;LogFileName=SAM.Analytical.Systems.Tests.trx' --results-directory 'TestResults'
if ($LASTEXITCODE -ne 0) { throw "SAM.Analytical.Systems.Tests failed." }

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ env.REPO_NAME }}-test-results
path: TestResults/*.trx
if-no-files-found: warn

- name: Upload build folders (optional)
# always(): a failing test must not also cost the build artifacts, which are what you need to
# diagnose it.
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ env.REPO_NAME }}-build-folders
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ bld/
[Oo]bj/
[Ll]og/
[Bb]uild/
build_tests/

# Visual Studio 2015/2017 cache/options directory
.vs/
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.Systems.Properties;
using SAM.Core.Grasshopper;
using SAM.Core.Grasshopper.Systems;
Expand Down Expand Up @@ -32,7 +35,11 @@ public class SAMAnalyticalSystemAddSystemEnergyCentre : GH_SAMVariableOutputPara
/// </summary>
public SAMAnalyticalSystemAddSystemEnergyCentre()
: base("SAMAnalytical.AddSystemEnergyCentre", "SAMAnalytical.AddSystemEnergyCentre",
"Adds SystemEnergyCentre",
"Attaches a SystemEnergyCentre to a SAM AnalyticalModel.\n" +
"\n" +
"The energy centre (the building's air systems and plantrooms) is stored on the analytical\n" +
"model so it travels with the model through later steps and into simulation. The updated\n" +
"analytical model is returned together with the energy centre that was attached.",
"SAM", "Systems")
{
}
Expand All @@ -45,8 +52,8 @@ protected override GH_SAMParam[] Inputs
get
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooAnalyticalModelParam() { Name = "_analyticalModel", NickName = "_analyticalModel", Description = "SAM AnalyticalModel", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemEnergyCentreParam() { Name = "_systemEnergyCentre_", NickName = "systemEnergyCentre", Description = "SAM SystemEnergyCentre", Optional = true, Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooAnalyticalModelParam() { Name = "_analyticalModel", NickName = "_analyticalModel", Description = "The SAM AnalyticalModel to attach the energy centre to. A copy is returned with the energy centre stored on it.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemEnergyCentreParam() { Name = "_systemEnergyCentre_", NickName = "systemEnergyCentre", Description = "The SAM SystemEnergyCentre (air systems + plantrooms) to store on the analytical model.\n\nOptional: if omitted, any energy centre already present on the model is kept.", Optional = true, Access = GH_ParamAccess.item }, ParamVisibility.Binding));
return result.ToArray();
}
}
Expand All @@ -59,8 +66,8 @@ protected override GH_SAMParam[] Outputs
get
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooAnalyticalModelParam() { Name = "analyticalModel", NickName = "analyticalModel", Description = "SAM AnalyticalModel", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemEnergyCentreParam() { Name = "systemEnergyCentre", NickName = "systemEnergyCentre", Description = "SAM SystemEnergyCentre", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooAnalyticalModelParam() { Name = "analyticalModel", NickName = "analyticalModel", Description = "The SAM AnalyticalModel with the SystemEnergyCentre stored on it.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemEnergyCentreParam() { Name = "systemEnergyCentre", NickName = "systemEnergyCentre", Description = "The SystemEnergyCentre that was attached to the analytical model.", 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 SAM.Analytical.Grasshopper.Systems.Properties;
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors

using SAM.Analytical.Grasshopper.Systems.Properties;
using SAM.Analytical.Systems;
using SAM.Core.Grasshopper;
using System;
Expand Down Expand Up @@ -27,7 +30,10 @@ public class SAMAnalyticalSystemComponentType : GH_SAMEnumComponent<AnalyticalSy
/// </summary>
public SAMAnalyticalSystemComponentType()
: base("SAM.AnalyticalSystemComponentType", "SAM.AnalyticalSystemComponentType",
"AnalyticalSystemComponentType",
"Selects an analytical air-handling component type (e.g. cooling coil, heating coil, fan,\n" +
"exchanger, humidifier) from a drop-down list.\n" +
"\n" +
"Use it to drive type-dependent logic or to filter/identify components by type.",
"SAM", "Systems")
{
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ public class SAMAnalyticalSystemConnectedSensor : GH_SAMVariableOutputParameterC
/// </summary>
public SAMAnalyticalSystemConnectedSensor()
: base("SAMAnalytical.ConnectedSensor", "SAMAnalytical.ConnectedSensor",
"Gets Connected SystemSensor",
"Finds the SystemSensor that a given system controller reads from, within a plantroom.\n" +
"\n" +
"A controller references a sensor by id; this component resolves that reference and returns the\n" +
"actual SystemSensor object from the plantroom so it can be inspected or rewired.",
"SAM", "Systems")
{
}
Expand All @@ -48,8 +51,8 @@ protected override GH_SAMParam[] Inputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "SystemPlantRoom", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "_systemController", NickName = "_systemController", Description = "System Controller", Access = GH_ParamAccess.item}, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "The SAM SystemPlantRoom that contains the controller and its sensor.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "_systemController", NickName = "_systemController", Description = "The system controller whose referenced sensor should be resolved.", Access = GH_ParamAccess.item}, ParamVisibility.Binding));

return [.. result];
}
Expand All @@ -63,7 +66,7 @@ protected override GH_SAMParam[] Outputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "systemSensor", NickName = "systemSensor", Description = "System Sensor", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "systemSensor", NickName = "systemSensor", Description = "The SystemSensor referenced by the controller (the sensor it reads its measured value from).", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
return [.. result];
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ public class SAMAnalyticalSystemConnectedSystemComponents : GH_SAMVariableOutput
/// </summary>
public SAMAnalyticalSystemConnectedSystemComponents()
: base("SAMAnalytical.ConnectedSystemComponents", "SAMAnalytical.ConnectedSystemComponents",
"Gets Connected System Components",
"Gets the components directly connected to a given component along a system.\n" +
"\n" +
"Starting from one component, this returns its immediate neighbours on the chosen system (e.g. an\n" +
"AirSystem) - those one step upstream (In), one step downstream (Out), or both when no direction\n" +
"is given. Use it to walk the connectivity of a plantroom one hop at a time.",
"SAM", "Systems")
{
}
Expand All @@ -48,10 +52,10 @@ protected override GH_SAMParam[] Inputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "SystemPlantRoom", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new Core.Grasshopper.Systems.GooSystemParam() { Name = "_system", NickName = "_system", Description = "System", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemComponentParam() { Name = "_systemComponent", NickName = "_systemComponent", Description = "System Component", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_String() { Name = "direction_", NickName = "direction_", Description = "Flow Direction", Access = GH_ParamAccess.item, Optional = true }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "The SAM SystemPlantRoom whose connectivity is queried.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new Core.Grasshopper.Systems.GooSystemParam() { Name = "_system", NickName = "_system", Description = "The system whose connections to follow (e.g. an AirSystem or LiquidSystem). A component can belong to several systems; this selects which network to traverse.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemComponentParam() { Name = "_systemComponent", NickName = "_systemComponent", Description = "The component to find the neighbours of.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new global::Grasshopper.Kernel.Parameters.Param_String() { Name = "direction_", NickName = "direction_", Description = "Flow direction to search: \"In\" (upstream) or \"Out\" (downstream).\n\nOptional: leave empty to return neighbours in both directions.", Access = GH_ParamAccess.item, Optional = true }, ParamVisibility.Binding));

return [.. result];
}
Expand All @@ -65,7 +69,7 @@ protected override GH_SAMParam[] Outputs
get
{
List<GH_SAMParam> result = new List<GH_SAMParam>();
result.Add(new GH_SAMParam(new GooSystemComponentParam() { Name = "systemComponents", NickName = "systemComponents", Description = "System Components", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemComponentParam() { Name = "systemComponents", NickName = "systemComponents", Description = "The components directly connected to the input component along the chosen system and direction(s).", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
return [.. result];
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,10 @@ public class SAMAnalyticalSystemConnectedSystemGroups : GH_SAMVariableOutputPara
/// </summary>
public SAMAnalyticalSystemConnectedSystemGroups()
: base("SAMAnalytical.ConnectedSystemGroups", "SAMAnalytical.ConnectedSystemGroups",
"Gets Connected System Components",
"Gets the system groups that a given component belongs to within a plantroom.\n" +
"\n" +
"System groups are logical groupings of components (e.g. an air-handling unit). This returns every\n" +
"group related to the supplied component.",
"SAM", "Systems")
{
}
Expand All @@ -47,8 +50,8 @@ protected override GH_SAMParam[] Inputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "SystemPlantRoom", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemComponentParam() { Name = "_systemComponent", NickName = "_systemComponent", Description = "System Component", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "The SAM SystemPlantRoom that holds the component and its groups.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemComponentParam() { Name = "_systemComponent", NickName = "_systemComponent", Description = "The component whose owning system groups should be returned.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));

return [.. result];
}
Expand All @@ -62,7 +65,7 @@ protected override GH_SAMParam[] Outputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "systemGroups", NickName = "systemGroups", Description = "System Groups", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "systemGroups", NickName = "systemGroups", Description = "The system groups the component belongs to.", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
return [.. result];
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,10 @@ public class SAMAnalyticalSystemConnectedSystemObjects : GH_SAMVariableOutputPar
/// </summary>
public SAMAnalyticalSystemConnectedSystemObjects()
: base("SAMAnalytical.ConnectedSystemObjects", "SAMAnalytical.ConnectedSystemObjects",
"Gets Connected System Components",
"Gets every system object related to a given object within a plantroom.\n" +
"\n" +
"Returns all objects (components, connections, systems, sensors, groups, etc.) that the supplied\n" +
"object is related to - a general-purpose way to discover what an object touches in the plantroom.",
"SAM", "Systems")
{
}
Expand All @@ -47,8 +50,8 @@ protected override GH_SAMParam[] Inputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "SystemPlantRoom", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "_systemObject", NickName = "_systemObject", Description = "System Object", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemPlantRoomParam() { Name = "_systemPlantRoom", NickName = "_systemPlantRoom", Description = "The SAM SystemPlantRoom whose relationships are queried.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "_systemObject", NickName = "_systemObject", Description = "The system object whose related objects should be returned.", Access = GH_ParamAccess.item }, ParamVisibility.Binding));

return [.. result];
}
Expand All @@ -62,7 +65,7 @@ protected override GH_SAMParam[] Outputs
get
{
List<GH_SAMParam> result = [];
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "systemObjects", NickName = "systemObjects", Description = "System Objects", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
result.Add(new GH_SAMParam(new GooSystemObjectParam() { Name = "systemObjects", NickName = "systemObjects", Description = "All system objects related to the supplied object.", Access = GH_ParamAccess.list }, ParamVisibility.Binding));
return [.. result];
}
}
Expand Down
Loading
Loading