ВОК
Алиасы: ВОК, Верхние ограждающие конструкции. parents: [consumption-model-diagram].
Связи
classDiagram
direction LR
class RoofModel {
+Guid id
+ConsumptionModel consumption_model_id
+RoofType roof_type_id
+Decimal custom_upper_enclosure_area
+Boolean has_attic
+BasementAtticHeatingTypes attic_heating_type_id
+Decimal upper_floor_level_m
+Decimal ridge_length_m
+Material floor_slab_bearing_material_id
+Decimal floor_slab_bearing_thickness_mm
+InsulationMaterial floor_slab_insulation_material_id
+Decimal floor_slab_insulation_thickness_mm
+InsulationMaterial roof_surface_insulation_material_id
+Decimal roof_surface_insulation_thickness_mm
+Decimal heat_loss_energy_k_kwt_h
+Decimal heat_loss_power_kwt
+Decimal thermal_resistance_m2c_per_wt
+Decimal area
+Decimal attic_wall_area
+Decimal roof_cover_area
}
class ConsumptionModel
class RoofType
class BasementAtticHeatingTypes
class Material
class InsulationMaterial
RoofModel "1" --> "1" ConsumptionModel : consumption_model_id
RoofModel "0..1" --> "1" RoofType : roof_type_id
RoofModel "0..1" --> "1" BasementAtticHeatingTypes : attic_heating_type_id
RoofModel "0..1" --> "1" Material : floor_slab_bearing_material_id
RoofModel "0..1" --> "1" InsulationMaterial : floor_slab_insulation_material_id
RoofModel "0..1" --> "1" InsulationMaterial : roof_surface_insulation_material_id
Структура
| Наименование | Атрибут | Тип | Обязательно для создания | Требуется для расчёта | Вычисляемый, методика | ЕИ | Диапазон / формат | Значение по умолчанию | Неизменяемость |
|---|---|---|---|---|---|---|---|---|---|
| Идентификатор записи | id | Guid | Да | UUID | Да | ||||
| Модель потребления | consumption_model_id | ConsumptionModel | Да | Да | |||||
| Тип крыши | roof_type_id | RoofType | Нет | Да | |||||
| Площадь ВОК при произвольной форме здания, м² | custom_upper_enclosure_area | Decimal | Нет | Да, при произвольной форме здания (Форма здания. Код = "other") | м² | вещественное > 0 | |||
| Наличие чердачного помещения | has_attic | Boolean | Да | Да | {false; true} | false | |||
| Тип отопления чердачного помещения | attic_heating_type_id | BasementAtticHeatingTypes | Нет | ||||||
| Уровень верхнего перекрытия, м | upper_floor_level_m | Decimal | Нет | Да | м | вещественное > 0 | |||
| Длина конька, м | ridge_length_m | Decimal | Нет | Да, если Тип крыши.Код = "hipped" | м | вещественное, 0 < L_конька < Размер по габариту A | |||
| Верхнее перекрытие: материал несущего слоя | floor_slab_bearing_material_id | Material | Нет | Да | |||||
| Верхнее перекрытие: толщина несущего слоя, мм | floor_slab_bearing_thickness_mm | Decimal | Нет | Да | мм | вещественное > 0 | |||
| Верхнее перекрытие: материал утеплителя | floor_slab_insulation_material_id | InsulationMaterial | Нет | ||||||
| Верхнее перекрытие: толщина утеплителя, мм | floor_slab_insulation_thickness_mm | Decimal | Нет | Да, если указан материал утеплителя перекрытия И Материал утеплителя.Наименование != "Нет" | мм | вещественное > 0 | |||
| Перекрытие крыши: материал утеплителя | roof_surface_insulation_material_id | InsulationMaterial | Нет | ||||||
| Перекрытие крыши: толщина утеплителя, мм | roof_surface_insulation_thickness_mm | Decimal | Нет | Да, если указан материал утеплителя крыши И Материал утеплителя. Наименование != "Нет" | мм | вещественное > 0 | |||
| Энергия теплопотерь, кВт·ч | heat_loss_energy_k_kwt_h | Decimal | Нет | Да | кВт·ч | вещественное ≥ 0 | |||
| Мощность теплопотерь, кВт | heat_loss_power_kwt | Decimal | Нет | Да | кВт | вещественное ≥ 0 | |||
| Приведённое сопротивление теплопередаче ВОК, м²·°C/Вт | thermal_resistance_m2c_per_wt | Decimal | Нет | Да | м²·°C/Вт | вещественное > 0 | |||
| Площадь ВОК, м² | area | Decimal | Нет | Да | м² | Вещественное (0; 10000000] | |||
| Площадь стен чердака, м² | attic_wall_area | Decimal | Нет | Да | м² | если "Наличие чердачного помещения" = "Да", то Вещественное (0; 10000000] | |||
| Площадь покрытия крыши, м² | roof_cover_area | Decimal | Нет | Да | м² | Вещественное (0; 10000000] |
Исходник
public class RoofModel
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
public Guid Id { get; set; }
/// <summary>Модель потребления</summary>
[Relation]
[DomainField(Alias = "consumption_model_id", RequiredOnCreate = true, Immutable = true)]
public ConsumptionModel? ConsumptionModel { get; set; }
/// <summary>Тип крыши</summary>
[Relation]
[DomainField(Alias = "roof_type_id", RequiredForCalc = "Да")]
public RoofType? RoofType { get; set; }
/// <summary>Площадь ВОК при произвольной форме здания, м²</summary>
[DomainField(
Alias = "custom_upper_enclosure_area",
RequiredForCalc = "Да, при произвольной форме здания (Форма здания. Код = \"other\")",
Unit = "м²",
Range = "вещественное > 0"
)]
public decimal CustomUpperEnclosureArea { get; set; }
/// <summary>Наличие чердачного помещения</summary>
[DomainField(Alias = "has_attic", RequiredOnCreate = true, RequiredForCalc = "Да", Range = "{false; true}", Default = "false")]
public bool HasAttic { get; set; }
/// <summary>Тип отопления чердачного помещения</summary>
[Relation]
[DomainField(Alias = "attic_heating_type_id")]
public BasementAtticHeatingTypes? AtticHeatingType { get; set; }
/// <summary>Уровень верхнего перекрытия, м</summary>
[DomainField(Alias = "upper_floor_level_m", RequiredForCalc = "Да", Unit = "м", Range = "вещественное > 0")]
public decimal UpperFloorLevelM { get; set; }
/// <summary>Длина конька, м</summary>
[DomainField(
Alias = "ridge_length_m",
RequiredForCalc = "Да, если Тип крыши.Код = \"hipped\"",
Unit = "м",
Range = "вещественное, 0 < L_конька < Размер по габариту A"
)]
public decimal RidgeLengthM { get; set; }
/// <summary>Верхнее перекрытие: материал несущего слоя</summary>
[Relation]
[DomainField(Alias = "floor_slab_bearing_material_id", RequiredForCalc = "Да")]
public Material? FloorSlabBearingMaterial { get; set; }
/// <summary>Верхнее перекрытие: толщина несущего слоя, мм</summary>
[DomainField(Alias = "floor_slab_bearing_thickness_mm", RequiredForCalc = "Да", Unit = "мм", Range = "вещественное > 0")]
public decimal FloorSlabBearingThicknessMm { get; set; }
/// <summary>Верхнее перекрытие: материал утеплителя</summary>
[Relation]
[DomainField(Alias = "floor_slab_insulation_material_id")]
public InsulationMaterial? FloorSlabInsulationMaterial { get; set; }
/// <summary>Верхнее перекрытие: толщина утеплителя, мм</summary>
[DomainField(
Alias = "floor_slab_insulation_thickness_mm",
RequiredForCalc = "Да, если указан материал утеплителя перекрытия И Материал утеплителя.Наименование != \"Нет\"",
Unit = "мм",
Range = "вещественное > 0"
)]
public decimal FloorSlabInsulationThicknessMm { get; set; }
/// <summary>Перекрытие крыши: материал утеплителя</summary>
[Relation]
[DomainField(Alias = "roof_surface_insulation_material_id")]
public InsulationMaterial? RoofSurfaceInsulationMaterial { get; set; }
/// <summary>Перекрытие крыши: толщина утеплителя, мм</summary>
[DomainField(
Alias = "roof_surface_insulation_thickness_mm",
RequiredForCalc = "Да, если указан материал утеплителя крыши И Материал утеплителя. Наименование != \"Нет\"",
Unit = "мм",
Range = "вещественное > 0"
)]
public decimal RoofSurfaceInsulationThicknessMm { get; set; }
/// <summary>Энергия теплопотерь, кВт·ч</summary>
[DomainField(Alias = "heat_loss_energy_k_kwt_h", Calculated = "Да", Unit = "кВт·ч", Range = "вещественное ≥ 0")]
public decimal HeatLossEnergyKKwtH { get; set; }
/// <summary>Мощность теплопотерь, кВт</summary>
[DomainField(Alias = "heat_loss_power_kwt", Calculated = "Да", Unit = "кВт", Range = "вещественное ≥ 0")]
public decimal HeatLossPowerKwt { get; set; }
/// <summary>Приведённое сопротивление теплопередаче ВОК, м²·°C/Вт</summary>
[DomainField(Alias = "thermal_resistance_m2c_per_wt", Calculated = "Да", Unit = "м²·°C/Вт", Range = "вещественное > 0")]
public decimal ThermalResistanceM2cPerWt { get; set; }
/// <summary>Площадь ВОК, м²</summary>
[DomainField(Alias = "area", Calculated = "Да", Unit = "м²", Range = "Вещественное (0; 10000000]")]
public decimal Area { get; set; }
/// <summary>Площадь стен чердака, м²</summary>
[DomainField(
Alias = "attic_wall_area",
Calculated = "Да",
Unit = "м²",
Range = "если \"Наличие чердачного помещения\" = \"Да\", то Вещественное (0; 10000000]"
)]
public decimal AtticWallArea { get; set; }
/// <summary>Площадь покрытия крыши, м²</summary>
[DomainField(Alias = "roof_cover_area", Calculated = "Да", Unit = "м²", Range = "Вещественное (0; 10000000]")]
public decimal RoofCoverArea { get; set; }
}Структурные связи
Использует
- Доменная сущность Материал
- Доменная сущность Материал утеплителя
- Доменная сущность Модель потребления
- Доменная сущность Тип крыши
- Доменная сущность Тип отопления чердака/подвала
- Доменная сущность Форма здания
Используется
- Документ Маппинг доменных данных → InputModel (ТЭ)
- Запрос на изменение Расчёт площади ВОК для односкатной крыши
- Запрос на изменение Расчёт площади ВОК для четырёхскатных крыш
- Компонент Блок "Сведения о модели потребления
- Компонент Вкладка "Верхние ограждающие конструкции
- Прикладной сервис Эталоны и нормативы потребления ТЭР зданиями