Skip to content

Conversation

@AntoineGautier
Copy link
Collaborator

@AntoineGautier AntoineGautier commented Jan 29, 2026

Since this includes significant refactoring, I'm targeting the staging branch for a first review.

Description

This addresses #495: see the issue page for the details.

With the changes, replaceable components are now parsed as:

    {
      "modelicaPath": "Buildings.Templates.AirHandlersFans.VAVMultiZone.secOutRel",
      "type": "Buildings.Templates.AirHandlersFans.Components.OutdoorReliefReturnSection.MixedAirWithDamper",
      // No 'value' property if there's no assignment
      "replaceable": true,

where it used to be:

    {
      "modelicaPath": "Buildings.Templates.AirHandlersFans.VAVMultiZone.secOutRel",
      "type": "Buildings.Templates.AirHandlersFans.Components.OutdoorReliefReturnSection.MixedAirWithDamper",
      // 'value' property below storing the type (duplicate from above)
      "value": "Buildings.Templates.AirHandlersFans.Components.OutdoorReliefReturnSection.MixedAirWithDamper",
      "replaceable": true,

Class mods with redeclare are now parsed as:

        "Buildings.Fluid.BaseClasses.PartialThreeWayResistance.res1": {
          "final": false,
          "redeclare": "Buildings.Fluid.FixedResistances.PressureDrop"
        }

where it used to be:

        "Buildings.Fluid.BaseClasses.PartialThreeWayResistance.res1": {
          "expression": {
            "operator": "none",
            "operands": [
              "Buildings.Fluid.FixedResistances.PressureDrop"
            ]
          },
          "final": false,
          "redeclare": true
        }

Testing

End-to-end tests have been performed by creating the SOO document with the following system options.

AHU

  • Separate dampers w/ dp
  • Modulating relief w/o fan
  • No heating coil
  • Freeze stat hardwired to both

Cooling-only box

  • 3 sensors = true

✅ The feature branch produces the same document as the main branch.

✅ Trivial diff in the payload between the two branches:

diff ../payload.json ~/tmp/ctrl-flow-soo/main_4c2307e.json
121a122,127
>   "Buildings.Controls.OBC.CDL.Conversions.BooleanToReal.realTrue-fanSupDra.sigSta.realTrue": [
>     1
>   ],
>   "Buildings.Controls.OBC.CDL.Conversions.BooleanToReal.realFalse-fanSupDra.sigSta.realFalse": [
>     0
>   ],
240a247,249
>   ],
>   "Buildings.Templates.AirHandlersFans.Data.PartialAirHandler.ctl-dat.ctl": [
>     "Buildings.Templates.AirHandlersFans.Components.Data.VAVMultiZoneController"
350,352d358
<   "Buildings.Templates.AirHandlersFans.Data.PartialAirHandler.ctl-dat.ctl": [
<     "Buildings.Templates.AirHandlersFans.Components.Data.VAVMultiZoneController"
<   ],
418a425,427
>   "Buildings.Templates.ZoneEquipment.Data.PartialAirTerminal.ctl-dat.ctl": [
>     "Buildings.Templates.ZoneEquipment.Components.Data.VAVBoxController"
>   ],
461,463d469
<   "Buildings.Templates.ZoneEquipment.Data.PartialAirTerminal.ctl-dat.ctl": [
<     "Buildings.Templates.ZoneEquipment.Components.Data.VAVBoxController"
<   ],

JayHuLBL and others added 30 commits November 19, 2025 14:30
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](digitalbazaar/forge@v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…ode-forge-1.3.2

Bump node-forge from 1.3.1 to 1.3.2 in /client
Bumps [qs](https://github.com/ljharb/qs) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.13.0...v6.14.1)

Updates `express` from 4.21.2 to 4.22.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md)
- [Commits](expressjs/express@4.21.2...v4.22.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
- dependency-name: express
  dependency-version: 4.22.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…ulti-c8afcbbcd8

Bump qs and express in /client
Bumps [qs](https://github.com/ljharb/qs) and [body-parser](https://github.com/expressjs/body-parser). These dependencies needed to be updated together.

Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.13.0...v6.14.1)

Updates `body-parser` from 1.20.3 to 1.20.4
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@1.20.3...1.20.4)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
- dependency-name: body-parser
  dependency-version: 1.20.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…ulti-a0817b5bb4

Bump qs and body-parser in /client
Bumps [qs](https://github.com/ljharb/qs) to 6.14.1 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.


Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.13.0...v6.14.1)

Updates `express` from 4.21.2 to 4.22.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md)
- [Commits](expressjs/express@4.21.2...v4.22.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
- dependency-name: express
  dependency-version: 4.22.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ulti-c8afcbbcd8

Bump qs and express in /server
Bumps [qs](https://github.com/ljharb/qs) and [body-parser](https://github.com/expressjs/body-parser). These dependencies needed to be updated together.

Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.13.0...v6.14.1)

Updates `body-parser` from 1.20.3 to 1.20.4
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@1.20.3...1.20.4)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
- dependency-name: body-parser
  dependency-version: 1.20.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…ulti-a0817b5bb4

Bump qs and body-parser in /server
Bumps [@remix-run/router](https://github.com/remix-run/react-router/tree/HEAD/packages/router) to 1.23.2 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom). These dependencies need to be updated together.


Updates `@remix-run/router` from 1.21.0 to 1.23.2
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/@remix-run/router@1.23.2/packages/router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/@remix-run/router@1.23.2/packages/router)

Updates `react-router-dom` from 6.28.0 to 6.30.3
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.30.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: "@remix-run/router"
  dependency-version: 1.23.2
  dependency-type: indirect
- dependency-name: react-router-dom
  dependency-version: 6.30.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ulti-5c7f151553

Bump @remix-run/router and react-router-dom in /client
Include component name in path for nested modifications
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…odash-4.17.23

Bump lodash from 4.17.21 to 4.17.23 in /client
dependabot bot and others added 12 commits January 22, 2026 17:48
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…sh-4.17.23

Bump lodash from 4.17.21 to 4.17.23 in /cdk
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…odash-4.17.23

Bump lodash from 4.17.21 to 4.17.23 in /server
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…odash-es-4.17.23

Bump lodash-es from 4.17.21 to 4.17.23 in /client
Bump modelica json version & enhance expression evaluation
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.

3 participants