⟨/⟩ Ntr/55_Backend/Calc/TtrCalcResultMapping.cs

188 строк · в начало

using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Ntr.Backend.Calc
{
    /// <summary>Перенесено дословно из ntr-01/ntr-calc/ttr-calc-result-mapping.md.</summary>
    public class DOC_TtrCalcResultMapping : ISdaidDocument, IHasStructuralLinks, IFolder<NtrBackendFolder>
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Backend.Calc.DOC_CalcModel>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Backend.Calc.DOC_TtrCalc>(),
        };

        public static string _refName = "Маппинг TEResult → домен";

        public string Name => "Маппинг TEResult → доменные сущности";

        public string Description => "";

        public string Version => "1.0";
        public string Status => "accepted";
        public string[] Comments => new string[0];

        public static string Body = """"
Спецификация описывает как сохранить результаты расчёта `TEResult` в атрибуты доменных сущностей.

---

## TEResult.Geometry

| TEResult path                 | Доменная сущность | alias                      | ЕИ  | Примечание |
| ----------------------------- | ----------------- | -------------------------- | --- | ---------- |
| Geometry.GroundFloorArea      | GroundContact     | `ground_floor_area_m2`     | м²  |            |
| Geometry.InnerWallSurfaceArea | WallsModel        | `walls_inner_surface_area` | м²  |            |

---

## TEResult.Walls

| TEResult path               | Доменная сущность | alias                                 | ЕИ       | Примечание     |
| --------------------------- | ----------------- | ------------------------------------- | -------- | -------------- |
| Walls.WallThickness         | —                 | —                                     | м        | не сохраняется |
| Walls.InnerWallPerimeter    | WallsModel        | `walls_inner_perimeter`               | м        |                |
| Walls.WallThermalResistance | WallsModel        | `walls_thermal_resistance` | м²·°С/Вт |                |
| Walls.WallHeatLossKwh`      | WallsModel        | `heat_loss_energy_k_kwt_h`                | `кВт·ч`  |                |

---

## TEResult.Windows

| TEResult path                              | Доменная сущность | alias                                        | ЕИ       | Примечание                 |
| ------------------------------------------ | ----------------- | -------------------------------------------- | -------- | -------------------------- |
| Windows.AreaTotal                          | WindowsModel      | `windows_area_m2`                            | м²       |                            |
| Windows.ThermalResistance                  | WindowsModel      | `thermal_resistance_m2c_per_wt`              | м²·°С/Вт |                            |
| Windows.WindowsHeatLossKwh                 | WindowsModel      | `heat_loss_energy_k_kwt_h`                       | `кВт·ч`  |                            |
| Windows.SolarHeatGainsEnergyKwh            | WindowsModel      | `solar_heat_gains_energy_kwt_h`                | `кВт·ч`  |                            |
| Windows.AirInfiltratingFlowKgPerHour       | WindowsModel      | `air_infiltrating_flow_kg_per_hour`          | `кг/ч`   |                            |
| Windows.Kinds[j].Area                      | Windows (j)       | `windows_area_m2`                            | м²       | по каждому виду остекления |
| Windows.Kinds[j].InfiltrationAirFlow       | Windows (j)       | `infiltration_air_flow_kg_per_hour`          | кг/ч     | по каждому виду остекления |
| Windows.Kinds[j].AirPermeabilityResistance | Windows (j)       | `air_permeability_resistance_m2hour_per_kg` | м²·ч/кг  | по каждому виду остекления |
| Windows.Kinds[j].SolarGainEnergy           | Windows (j)       | `solar_heat_gains_energy_k_kwt_h`                | кВт·ч    | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideA               | Windows (j)       | openings_area_side_am2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideB               | Windows (j)       | openings_area_side_bm2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideC               | Windows (j)       | openings_area_side_cm2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideD               | Windows (j)       | openings_area_side_dm2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideE               | Windows (j)       | openings_area_side_em2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideF               | Windows (j)       | openings_area_side_fm2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideG               | Windows (j)       | openings_area_side_gm2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySideH               | Windows (j)       | openings_area_side_hm2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaByNorth               | Windows (j)       | openings_area_north_m2                     | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaByEast                | Windows (j)       | openings_area_east_m2                      | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaBySouth               | Windows (j)       | openings_area_south_m2                     | м²       | по каждому виду остекления |
| Windows.Kinds[j].AreaByWest                | Windows (j)       | openings_area_west_m2                      | м²       | по каждому виду остекления |

---

## TEResult.Doors

| TEResult path                            | Доменная сущность | alias                                        | ЕИ       | Примечание            |
| ---------------------------------------- | ----------------- | -------------------------------------------- | -------- | --------------------- |
| Doors.AreaTotal                          | GatesModel        | `gates_area_m2`                              | м²       |                       |
| Doors.ThermalResistance                  | GatesModel        | `thermal_resistance_m2c_per_wt`              | м²·°С/Вт |                       |
| Doors.DoorsHeatLossKwh                   | GatesModel        | `heat_loss_energy_k_kwt_h`                       | `кВт·ч`  |                       |
| Doors.AirInfiltratingFlowKgPerHour       | GatesModel        | `air_infiltrating_flow_kg_per_hour`          | `кг/ч`   |                       |
| Doors.Kinds[j].Area                      | Gates (j)         | `gates_area_m2`                              | м²       | по каждому виду ворот |
| Doors.Kinds[j].AirPermeabilityResistance | Gates (j)         | `air_permeability_resistance_m2hour_per_kg` | м²·ч/кг  | по каждому виду ворот |
| Doors.Kinds[j].InfiltrationAirFlow       | Gates (j)         | `infiltration_air_flow_kg_per_hour`          | кг/ч     | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideA               | Gates (j)         | openings_area_side_am2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideB               | Gates (j)         | openings_area_side_bm2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideC               | Gates (j)         | openings_area_side_cm2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideD               | Gates (j)         | openings_area_side_dm2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideE               | Gates (j)         | openings_area_side_em2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideF               | Gates (j)         | openings_area_side_fm2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideG               | Gates (j)         | openings_area_side_gm2                      | м²       | по каждому виду ворот |
| Doors.Kinds[j].AreaBySideH               | Gates (j)         | openings_area_side_hm2                      | м²       | по каждому виду ворот |


---

## TEResult.UpperEnclosures

| TEResult path                              | Доменная сущность | alias                           | ЕИ       | Примечание |
| ------------------------------------------ | ----------------- | ------------------------------- | -------- | ---------- |
| UpperEnclosures.AtticWallArea              | RoofModel         | `attic_wall_area`               | м²       |            |
| UpperEnclosures.RoofCoverArea              | RoofModel         | `roof_cover_area`               | м²       |            |
| UpperEnclosures.UpperEnclosuresArea        | RoofModel         | `area`      | м²       |            |
| UpperEnclosures.UpperEnclosuresHeatLossKwh | RoofModel         | `heat_loss_energy_k_kwt_h`          | `кВт·ч`  |            |
| UpperEnclosures.ThermalResistance          | RoofModel         | `thermal_resistance_m2c_per_wt` | м²·°С/Вт |            |

---

## TEResult.GroundContact

| TEResult path                          | Доменная сущность | alias                           | ЕИ       | Примечание            |
| -------------------------------------- | ----------------- | ------------------------------- | -------- | --------------------- |
| GroundContact.ZoneAreaI                | GroundContact     | `zone_i_area_m2`                | м²       |                       |
| GroundContact.ZoneAreaII               | GroundContact     | `zone_ii_area_m2`               | м²       |                       |
| GroundContact.ZoneAreaIII              | GroundContact     | `zone_iii_area_m2`              | м²       |                       |
| GroundContact.ZoneAreaIV               | GroundContact     | `zone_iv_area_m2`               | м²       |                       |
| GroundContact.BasementWallArea         | GroundContact     | `basement_wall_area_m2`         | м²       | null если нет подвала |
| GroundContact.GroundContactAreaSum     | —                 | —                               | м²       | не сохраняется        |
| GroundContact.GroundContactArea        | GroundContact     | `ground_contact_area_m2`        | м²       |                       |
| GroundContact.GroundContactHeatLossKwh | GroundContact     | `heat_loss_energy_k_kwt_h`          | `кВт·ч`  |                       |
| GroundContact.ThermalResistance        | GroundContact     | `thermal_resistance_m2c_per_wt` | м²·°С/Вт |                       |

---

## TEResult.Envelope

| TEResult path                              | Доменная сущность | alias                                         | ЕИ         | Примечание |
| ------------------------------------------ | ----------------- | --------------------------------------------- | ---------- | ---------- |
| Envelope.HeatEnvelopeArea                  | ConsumptionModel  | `heat_envelope_area_m2`                       | м²         |            |
| Envelope.HeatEnvelopeThermalResistance     | ConsumptionModel  | `heat_envelope_thermal_resistance_m2c_per_wt` | м²·°С/Вт   |            |
| Envelope.SpecificHeatProtection            | ConsumptionModel  | `specific_heat_protection_wt_per_m3c`         | Вт/(м³·°С) |            |

---

## TEResult.Ventilation

| TEResult path                                  | Доменная сущность | alias                                    | ЕИ         | Примечание     |
| ---------------------------------------------- | ----------------- | ---------------------------------------- | ---------- | -------------- |
| Ventilation.MechVentOperatingHoursPerWeek      | Ventilation       | `mech_vent_operating_time_hour_per_week` | ч          |                |
| Ventilation.RecuperatorEfficiency              | —                 | —                                        |            | не сохраняется |
| Ventilation.InfiltrationAccountingHoursPerWeek | Ventilation       | `infiltration_accounting_hours_per_week`  | ч          |                |
| Ventilation.ExtAirSpecificWeight               | Ventilation       | `ext_air_specific_weight_n_per_m3`       | Н/м³       |                |
| Ventilation.IntAirSpecificWeight               | Ventilation       | `int_air_specific_weight_n_per_m3`       | Н/м³       |                |
| Ventilation.AirPressureDifference              | Ventilation       | `ext_and_int_air_diff_pressure_pa`       | Па         |                |
| Ventilation.AirInfiltratingFlow                | Ventilation       | `air_infiltrating_flow_kg_per_hour`      | кг/ч       |                |
| Ventilation.SupplyAirDensity                   | Ventilation       | `supply_air_density_kg_per_m3`           | кг/м³      |                |
| Ventilation.AirExchangeRate                    | Ventilation       | `air_exchange_rate1per_hour`           | ч⁻¹        |                |
| Ventilation.SpecificVentilationCharacteristic  | Ventilation       | `specific_ventilation_char_wt_per_m3c`   | Вт/(м³·°С) |                |
| Ventilation.VentilationHeatLossKwh             | Ventilation       | `heat_loss_energy_k_kwt_h`                   | `кВт·ч`    |                |

---

## TEResult.HeatGains

| TEResult path                             | Доменная сущность | alias                                     | ЕИ         | Примечание     |
| ----------------------------------------- | ----------------- | ----------------------------------------- | ---------- | -------------- |
| HeatGains.HeatGainsUtilizationCoefficient | ConsumptionModel  | `coef_heat_gains_utilization`             |            |                |
| HeatGains.SpecificInternalHeatGains       | ConsumptionModel  | `specific_internal_heat_gains_wt_per_m3c` | Вт/(м³·°С) |                |
| HeatGains.HeatingPeriodDegreeDays         | HeatingPeriod     | `degree_days`              | °С·сут     |                |
| HeatGains.SpecificSolarHeatGains          | ConsumptionModel  | `specific_solar_heat_gains_wt_per_m3c`    | Вт/(м³·°С) |                |

---

## TEResult.EnergyClass

| TEResult path                            | Доменная сущность | alias                                       | ЕИ         | Примечание |
| ---------------------------------------- | ----------------- | ------------------------------------------- | ---------- | ---------- |
| EnergyClass.SpecificHeatConsumption      | ConsumptionModel  | `specific_heat_consumption_wt_per_m3c`      | Вт/(м³·°С) |            |
| EnergyClass.SpecificHeatConsumptionNorm  | ConsumptionModel  | `specific_heat_consumption_norm_wt_per_m3c` | Вт/(м³·°С) |            |
| EnergyClass.CalcFromNormDeviationPercent | ConsumptionModel  | `calc_from_norm_deviation_perc`             | %          |            |
| EnergyClass.Class.Code                   | ConsumptionModel  | `energy_efficiency_class`                   |            |            |

---

## TEResult.Consumption

| TEResult path                 | Доменная сущность | alias                  | ЕИ      | Примечание |
| ----------------------------- | ----------------- | ---------------------- | ------- | ---------- |
| Consumption.TeConsumptionKwh  | ConsumptionModel  | `te_consumption_kwt_h`   | кВт·ч   |            |
| Consumption.TeConsumptionGcal | ConsumptionModel  | `te_consumption_gcal`  | Гкал    |            |
| Consumption.HeatLossKwh       | ConsumptionModel  | `heat_loss_energy_kwt_h` | `кВт·ч` |            |
"""";
    }
}