From 180df4e5642a073faf10efa9fd1d963c5f4bb6ef Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Thu, 20 Mar 2025 16:15:36 +0100 Subject: [PATCH 01/13] Hotfix C# bindings for #5365 --- src/model/ModelCore.i | 1 + 1 file changed, 1 insertion(+) diff --git a/src/model/ModelCore.i b/src/model/ModelCore.i index 8929e7c45d..f2d4fc3f05 100644 --- a/src/model/ModelCore.i +++ b/src/model/ModelCore.i @@ -36,6 +36,7 @@ %ignore openstudio::model::Model::lightingSimulationControl; %ignore openstudio::model::Model::outputControlFiles; %ignore openstudio::model::Model::outputControlReportingTolerances; + %ignore openstudio::model::Model::outputControlResilienceSummaries; %ignore openstudio::model::Model::outputControlTableStyle; %ignore openstudio::model::Model::outputControlTimestamp; %ignore openstudio::model::Model::outputDebuggingData; From f50acdad59ff4cfde97d9c2ba09614ab5149d8a1 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 09:43:59 +0200 Subject: [PATCH 02/13] Fix C# bindings for #5312 --- src/model/ModelResources.i | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/model/ModelResources.i b/src/model/ModelResources.i index af70e0167c..689a3398f6 100644 --- a/src/model/ModelResources.i +++ b/src/model/ModelResources.i @@ -339,7 +339,9 @@ SWIG_MODELOBJECT(HeatExchangerDesiccantBalancedFlowPerformanceDataType1, 1); : this(model) { this.setCurveOrTableObject(curve); } + } + public partial class Model : Workspace { public OptionalPythonPluginSearchPaths pythonPluginSearchPaths() { return OpenStudio.OpenStudioModelResources.pythonPluginSearchPaths(this); } From f3e5d528bfc02cb297f7e235038c0ac3163e0f91 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 10:44:26 +0200 Subject: [PATCH 03/13] Add missing Partial Classes for EMSActuator --- src/model/ModelCore.i | 2 ++ src/model/ModelGeometry.i | 11 ++++++++++- src/model/ModelHVAC.i | 10 +++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/model/ModelCore.i b/src/model/ModelCore.i index f2d4fc3f05..18e1f5863c 100644 --- a/src/model/ModelCore.i +++ b/src/model/ModelCore.i @@ -86,6 +86,7 @@ const std::string& actuatedComponentType, const std::string& actuatedComponentControlType, const Space& space); + %ignore openstudio::model::EnergyManagementSystemActuator::space; %ignore openstudio::model::EnergyManagementSystemActuator::setSpace; // depends on ThermalZone (ModelHVAC.i) @@ -93,6 +94,7 @@ const std::string& actuatedComponentType, const std::string& actuatedComponentControlType, const ThermalZone& thermalZone); + %ignore openstudio::model::EnergyManagementSystemActuator::thermalZone; %ignore openstudio::model::EnergyManagementSystemActuator::setThermalZone; diff --git a/src/model/ModelGeometry.i b/src/model/ModelGeometry.i index 94bb4a0192..10e8fe9dd7 100644 --- a/src/model/ModelGeometry.i +++ b/src/model/ModelGeometry.i @@ -360,7 +360,11 @@ SWIG_MODELOBJECT(ExteriorWaterEquipment, 1); return sc.setSubSurfaces(subSurfaces); } - // EMS Actuator setter for Space (reimplemented from ModelCore.i) + // EMS Actuator getter/setter for Space (reimplemented from ModelCore.i) + boost::optional getSpaceForEMSActuator(const openstudio::model::EnergyManagementSystemActuator& actuator) { + return actuator.space(); + } + bool setSpaceForEMSActuator(openstudio::model::EnergyManagementSystemActuator actuator, openstudio::model::Space space) { return actuator.setSpace(space); } @@ -450,6 +454,11 @@ SWIG_MODELOBJECT(ExteriorWaterEquipment, 1); } public partial class EnergyManagementSystemActuator : ModelObject { + + public OptionalSpace space() { + return OpenStudio.OpenStudioModelGeometry.getSpaceForEMSActuator(this); + } + public bool setSpace(OpenStudio.Space space) { return OpenStudio.OpenStudioModelGeometry.setSpaceForEMSActuator(this, space); } diff --git a/src/model/ModelHVAC.i b/src/model/ModelHVAC.i index 230c86d9dd..e94a682f11 100644 --- a/src/model/ModelHVAC.i +++ b/src/model/ModelHVAC.i @@ -405,7 +405,11 @@ SWIG_MODELOBJECT(LoadingIndex, 1); return zoneProp.thermalZone(); } - // EMS Actuator setter for ThermalZone (reimplemented from ModelCore.i) + // EMS Actuator getter/setter for ThermalZone (reimplemented from ModelCore.i) + boost::optional getThermalZoneForEMSActuator(const openstudio::model::EnergyManagementSystemActuator& actuator) { + return actuator.thermalZone(); + } + bool setThermalZoneForEMSActuator(openstudio::model::EnergyManagementSystemActuator actuator, openstudio::model::ThermalZone thermalZone) { return actuator.setThermalZone(thermalZone); } @@ -485,6 +489,10 @@ SWIG_MODELOBJECT(LoadingIndex, 1); } public partial class EnergyManagementSystemActuator : ModelObject { + public OptionalThermalZone thermalZone() { + return OpenStudio.OpenStudioModelHVAC.getThermalZoneForEMSActuator(this); + } + public bool setThermalZone(OpenStudio.ThermalZone thermalZone) { return OpenStudio.OpenStudioModelHVAC.setThermalZoneForEMSActuator(this, thermalZone); } From 94cebdc92909ccc71cbe054de1f76c11d0f21188 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 11:05:22 +0200 Subject: [PATCH 04/13] Add missing partial classes for AirCondVRF to add/remove/list terminals --- src/model/ModelHVAC.i | 7 ++++ src/model/ModelZoneHVAC.i | 69 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/src/model/ModelHVAC.i b/src/model/ModelHVAC.i index e94a682f11..d46c07ca8b 100644 --- a/src/model/ModelHVAC.i +++ b/src/model/ModelHVAC.i @@ -63,6 +63,13 @@ %ignore openstudio::model::CoilHeatingGasMultiStageStageData::parentCoil; %ignore openstudio::model::CoilHeatingElectricMultiStageStageData::parentCoil; + // AirCondVRF terminals: in ModelZoneHVAC.i + %ignore openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl::addTerminal; + %ignore openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl::removeTerminal; + %ignore openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl::terminals; + %ignore openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR::addTerminal; + %ignore openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR::removeTerminal; + %ignore openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR::terminals; #endif #if defined SWIGPYTHON diff --git a/src/model/ModelZoneHVAC.i b/src/model/ModelZoneHVAC.i index 2c9d85ae1f..2d0ee760dc 100644 --- a/src/model/ModelZoneHVAC.i +++ b/src/model/ModelZoneHVAC.i @@ -94,4 +94,73 @@ SWIG_MODELOBJECT(ZoneHVACUnitHeater,1); SWIG_MODELOBJECT(ZoneHVACUnitVentilator,1); SWIG_MODELOBJECT(ZoneHVACWaterToAirHeatPump,1); +#if defined(SWIGCSHARP) || defined(SWIGJAVA) + %inline { + namespace openstudio { + namespace model { + + // AirCondVRF, reimplemented from ModelHVAC.i + std::vector terminals(const openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl& airCondVRF) { + return airCondVRF.terminals(); + } + bool addTerminal(openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl airCondVRF, openstudio::model::ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + return airCondVRF.addTerminal(vrf); + } + void removeTerminal(openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl airCondVRF, openstudio::model::ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + airCondVRF.removeTerminal(vrf); + } + + std::vector terminals(const openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR& airCondVRF) { + return airCondVRF.terminals(); + } + bool addTerminal(openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR airCondVRF, openstudio::model::ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + return airCondVRF.addTerminal(vrf); + } + void removeTerminal(openstudio::model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR airCondVRF, openstudio::model::ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + airCondVRF.removeTerminal(vrf); + } + + } // namespace model + } // namespace openstudio + } // %inline +#endif + +#if defined(SWIGCSHARP) + //%pragma(csharp) imclassimports=%{ + %pragma(csharp) moduleimports=%{ + + using System; + using System.Runtime.InteropServices; + + public partial class AirConditionerVariableRefrigerantFlowFluidTemperatureControl : HVACComponent { + public ZoneHVACTerminalUnitVariableRefrigerantFlowVector terminals(){ + return OpenStudio.OpenStudioModelZoneHVAC.terminals(this); + } + + public bool addTerminal(OpenStudio.ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + return OpenStudio.OpenStudioModelZoneHVAC.addTerminal(this, vrf); + } + + public void removeTerminal(OpenStudio.ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + OpenStudio.OpenStudioModelZoneHVAC.removeTerminal(this, vrf); + } + } + + public partial class AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR : HVACComponent { + public ZoneHVACTerminalUnitVariableRefrigerantFlowVector terminals(){ + return OpenStudio.OpenStudioModelZoneHVAC.terminals(this); + } + + public bool addTerminal(OpenStudio.ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + return OpenStudio.OpenStudioModelZoneHVAC.addTerminal(this, vrf); + } + + public void removeTerminal(OpenStudio.ZoneHVACTerminalUnitVariableRefrigerantFlow vrf) { + OpenStudio.OpenStudioModelZoneHVAC.removeTerminal(this, vrf); + } + } + + %} +#endif + #endif From 84038b482f66f32ed051b8dbc1c86e07c7ad4f9f Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 11:05:47 +0200 Subject: [PATCH 05/13] Add missing partial classes for ExternalFile::chillerElectricASHRAE205s --- src/model/ModelHVAC.i | 11 +++++++++++ src/model/ModelResources.i | 5 ++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/model/ModelHVAC.i b/src/model/ModelHVAC.i index d46c07ca8b..08c70e2b14 100644 --- a/src/model/ModelHVAC.i +++ b/src/model/ModelHVAC.i @@ -436,6 +436,11 @@ SWIG_MODELOBJECT(LoadingIndex, 1); return hxData.heatExchangerDesiccantBalancedFlows(); } + // Reimplemented from ModelResources.i + std::vector getChillerElectricASHRAE205s(const openstudio::model::ExternalFile& externalFile) { + return externalFile.chillerElectricASHRAE205s(); + } + // DaylightingDeviceTubular, reimplemented from ModelGeometry.i std::vector transitionZones(const openstudio::model::DaylightingDeviceTubular& tubular) { return tubular.transitionZones(); @@ -526,6 +531,12 @@ SWIG_MODELOBJECT(LoadingIndex, 1); } } + public partial class ExternalFile : ResourceObject { + public ChillerElectricASHRAE205Vector chillerElectricASHRAE205s() { + return OpenStudio.OpenStudioModelHVAC.getChillerElectricASHRAE205s(this); + } + } + public partial class DaylightingDeviceTubular : ModelObject { public TransitionZoneVector transitionZones(){ diff --git a/src/model/ModelResources.i b/src/model/ModelResources.i index 689a3398f6..8acd51daec 100644 --- a/src/model/ModelResources.i +++ b/src/model/ModelResources.i @@ -39,9 +39,8 @@ // HeatExchangerDesiccantBalancedFlow is done later in ModelHVAC.i %ignore openstudio::model::HeatExchangerDesiccantBalancedFlowPerformanceDataType1::heatExchangerDesiccantBalancedFlows; - // TODO: why? - // ignore schedule type - // %ignore openstudio::model::ScheduleType; + // Done later in ModelHVAC.i + %ignore openstudio::model::ExternalFile::chillerElectricASHRAE205s; #endif From b8f1feb12d520fdc53a563f40251d3d0b21c8de6 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 11:38:25 +0200 Subject: [PATCH 06/13] Add missing template for OptionalEpwGroundTemperatureDepth --- src/utilities/filetypes/Filetypes.i | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utilities/filetypes/Filetypes.i b/src/utilities/filetypes/Filetypes.i index 88fd5e0328..7b334f539f 100644 --- a/src/utilities/filetypes/Filetypes.i +++ b/src/utilities/filetypes/Filetypes.i @@ -80,6 +80,7 @@ %ignore std::vector::vector(size_type); %ignore std::vector::resize(size_type); %template(EpwGroundTemperatureDepthVector) std::vector; +%template(OptionalEpwGroundTemperatureDepth) boost::optional; %ignore std::vector::vector(size_type); %ignore std::vector::resize(size_type); From 6c1d4179220627d03632e2dabee6c025a7c53e3c Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 11:48:25 +0200 Subject: [PATCH 07/13] C# bindings for WorkflowJSON::getMeasureStepsWithIndex --- src/utilities/filetypes/Filetypes.i | 3 +++ src/utilities/filetypes/WorkflowStep.cpp | 7 ++++--- src/utilities/filetypes/WorkflowStep.hpp | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/utilities/filetypes/Filetypes.i b/src/utilities/filetypes/Filetypes.i index 7b334f539f..c8c246496f 100644 --- a/src/utilities/filetypes/Filetypes.i +++ b/src/utilities/filetypes/Filetypes.i @@ -119,6 +119,9 @@ %ignore std::vector::resize(size_type); %template(MeasureStepVector) std::vector; %template(OptionalMeasureStep) boost::optional; +// WorkflowJSON::getMeasureStepsWithIndex +%template(UIntMeasureStepPair) std::pair; +%template(UIntMeasureStepPairVector) std::vector >; %template(WorkflowJSONVector) std::vector; %template(OptionalWorkflowJSON) boost::optional; diff --git a/src/utilities/filetypes/WorkflowStep.cpp b/src/utilities/filetypes/WorkflowStep.cpp index d96d75bce1..542e89af71 100644 --- a/src/utilities/filetypes/WorkflowStep.cpp +++ b/src/utilities/filetypes/WorkflowStep.cpp @@ -275,12 +275,13 @@ bool WorkflowStep::operator==(const WorkflowStep& other) const { return m_impl == other.m_impl; } -MeasureStep::MeasureStep(const std::string& measureDirName) - : WorkflowStep(std::shared_ptr(new detail::MeasureStep_Impl(measureDirName))) { +MeasureStep::MeasureStep() : WorkflowStep(std::make_shared("")) {} + +MeasureStep::MeasureStep(const std::string& measureDirName) : WorkflowStep(std::make_shared(measureDirName)) { OS_ASSERT(getImpl()); } -MeasureStep::MeasureStep(std::shared_ptr impl) : WorkflowStep(impl) { +MeasureStep::MeasureStep(std::shared_ptr impl) : WorkflowStep(std::move(impl)) { OS_ASSERT(getImpl()); } diff --git a/src/utilities/filetypes/WorkflowStep.hpp b/src/utilities/filetypes/WorkflowStep.hpp index ea147dc0ba..69e2279fde 100644 --- a/src/utilities/filetypes/WorkflowStep.hpp +++ b/src/utilities/filetypes/WorkflowStep.hpp @@ -95,6 +95,9 @@ class UTILITIES_API WorkflowStep class UTILITIES_API MeasureStep : public WorkflowStep { public: + // Makes no sense really, providing it for SWIG only now, really for WorkflowJSON::getMeasureStepsWithIndex + MeasureStep(); + MeasureStep(const std::string& measureDirName); std::string measureDirName() const; From 79e8d64bb3c095e2707ea0af8ef9e2740ddd73fa Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 12:00:37 +0200 Subject: [PATCH 08/13] XmlValidator: import LocalBCL for BCLXMLType is swigged properly --- src/utilities/xml/XMLValidator.i | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utilities/xml/XMLValidator.i b/src/utilities/xml/XMLValidator.i index 402d81b862..2a6cf3e611 100644 --- a/src/utilities/xml/XMLValidator.i +++ b/src/utilities/xml/XMLValidator.i @@ -3,6 +3,7 @@ %include %import +%import %{ #include From 3d1f3fd1fe4fb592ac4a902606d752a2d0bd7532 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 12:10:18 +0200 Subject: [PATCH 09/13] Partial classes for Space related to ZoneMixing getters --- src/model/ModelGeometry.i | 4 ++++ src/model/ModelHVAC.i | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/model/ModelGeometry.i b/src/model/ModelGeometry.i index 10e8fe9dd7..2207c80b6c 100644 --- a/src/model/ModelGeometry.i +++ b/src/model/ModelGeometry.i @@ -32,6 +32,10 @@ %ignore openstudio::model::Space::setThermalZone; %ignore openstudio::model::Space::waterUseEquipment; + %ignore openstudio::model::Space::zoneMixing; + %ignore openstudio::model::Space::supplyZoneMixing; + %ignore openstudio::model::Space::exhaustZoneMixing; + %ignore openstudio::model::DaylightingDeviceTubular::transitionZones; %ignore openstudio::model::DaylightingDeviceTubular::addTransitionZone; %ignore openstudio::model::DaylightingDeviceTubular::addTransitionZones; diff --git a/src/model/ModelHVAC.i b/src/model/ModelHVAC.i index 08c70e2b14..356ce9c494 100644 --- a/src/model/ModelHVAC.i +++ b/src/model/ModelHVAC.i @@ -401,12 +401,23 @@ SWIG_MODELOBJECT(LoadingIndex, 1); std::vector getThermalZones(const openstudio::model::Building& building){ return building.thermalZones(); } + + // Space (ModelGeometry.i) boost::optional getThermalZone(const openstudio::model::Space& space){ return space.thermalZone(); } bool setThermalZone(openstudio::model::Space space, openstudio::model::ThermalZone thermalZone){ return space.setThermalZone(thermalZone); } + std::vector getZoneMixing(const openstudio::model::Space& space){ + return space.zoneMixing(); + } + std::vector getSupplyZoneMixing(const openstudio::model::Space& space){ + return space.supplyZoneMixing(); + } + std::vector getExhaustZoneMixing(const openstudio::model::Space& space){ + return space.exhaustZoneMixing(); + } openstudio::model::ThermalZone getThermalZone(const openstudio::model::ZonePropertyUserViewFactorsBySurfaceName& zoneProp){ return zoneProp.thermalZone(); @@ -491,6 +502,15 @@ SWIG_MODELOBJECT(LoadingIndex, 1); { return OpenStudio.OpenStudioModelHVAC.setThermalZone(this, thermalZone); } + public ZoneMixingVector zoneMixing() { + return OpenStudio.OpenStudioModelHVAC.getZoneMixing(this); + } + public ZoneMixingVector supplyZoneMixing() { + return OpenStudio.OpenStudioModelHVAC.getSupplyZoneMixing(this); + } + public ZoneMixingVector exhaustZoneMixing() { + return OpenStudio.OpenStudioModelHVAC.getExhaustZoneMixing(this); + } } public partial class ZonePropertyUserViewFactorsBySurfaceName : ModelObject { From 789d10746865167806ace9d717a581fdb57c1340 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 12:10:36 +0200 Subject: [PATCH 10/13] Ignore protected Impl ctors from swig type things --- developer/ruby/FindMissingSWIGTypes.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/developer/ruby/FindMissingSWIGTypes.rb b/developer/ruby/FindMissingSWIGTypes.rb index b047973ab5..0ea6775dd3 100644 --- a/developer/ruby/FindMissingSWIGTypes.rb +++ b/developer/ruby/FindMissingSWIGTypes.rb @@ -48,6 +48,12 @@ "OpenStudioUtilitiesData" => [ "SWIGTYPE_p_std__variantT_std__monostate_bool_double_int_unsigned_int_std__string_std__vectorT_openstudio__Attribute_t_t.cs", ], + "OpenStudioUtilitiesIdf" => [ + "SWIGTYPE_p_std__shared_ptrT_openstudio__detail__Workspace_Impl_t.cs" # Protected + ], + "OpenStudioModelCore" => [ + "SWIGTYPE_p_std__shared_ptrT_openstudio__model__detail__Model_Impl_t.cs" # Protected + ], } n_ignored = known_errors.sum{|k, v| v.size} From 1c2ab983c41e0e9e7fd1ca60cab9f4dd8ba3a41f Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 12:19:32 +0200 Subject: [PATCH 11/13] last missing swig type I can fix: AlfalfaComponentBase Not sure why it was excluded entirely, maybe just a typo? @TShapinsky FYI Last one standing is std::string_view, cf #5393 --- src/alfalfa/Alfalfa.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/alfalfa/Alfalfa.i b/src/alfalfa/Alfalfa.i index 37530704fc..29b393bf42 100644 --- a/src/alfalfa/Alfalfa.i +++ b/src/alfalfa/Alfalfa.i @@ -34,7 +34,7 @@ using namespace openstudio::alfalfa; %} -%ignore openstudio::alfalfa::AlfalfaComponentBase; +%ignore openstudio::alfalfa::AlfalfaComponentBase::clone; %ignore openstudio::alfalfa::AlfalfaActuator::clone; %ignore openstudio::alfalfa::AlfalfaConstant::clone; %ignore openstudio::alfalfa::AlfalfaMeter::clone; From 92336a647c9a2278434770d171689b5afa3b7687 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 12:46:59 +0200 Subject: [PATCH 12/13] Try fixing the C# test step by allowing NET7, NET8, NET9 and NET10 (GHA only has NET8 and 9 currently) The alternative is to use https://github.com/actions/setup-dotnet --- csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj | 2 +- csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj index 3449850d85..c986c807b0 100644 --- a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj +++ b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj @@ -1,7 +1,7 @@  - NET7 + NET7;NET8;NET9;NET10 false x64 diff --git a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj index e1213dd540..fb2c469536 100644 --- a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj +++ b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj @@ -1,7 +1,7 @@  - NET7 + NET7;NET8;NET9;NET10 false x86 From ecc90ca4ed62103ff1270d9e335e24d7368e3dcb Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Wed, 2 Apr 2025 13:28:15 +0200 Subject: [PATCH 13/13] Whatever - set the C# test project to use NET8 and be done with it [skip ci] --- csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj | 2 +- csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj index c986c807b0..b1e710270f 100644 --- a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj +++ b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.csproj @@ -1,7 +1,7 @@  - NET7;NET8;NET9;NET10 + NET8 false x64 diff --git a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj index fb2c469536..642d926d3f 100644 --- a/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj +++ b/csharp/examples/OpenStudio.Tests/OpenStudio.Tests.x86.csproj @@ -1,7 +1,7 @@  - NET7;NET8;NET9;NET10 + NET8 false x86