Вид оконных проёмов
Алиасы: Вид оконных проёмов. parents: [windows-model-diagram].
Связи
classDiagram
direction LR
class Windows {
+Guid id
+Guid ais_id
+WindowsModel windows_model_id
+String name
+GlazingKind glazing_kind_id
+Decimal opening_area_m2
+Int32 openings_count_side_a
+Int32 openings_count_side_b
+Int32 openings_count_side_c
+Int32 openings_count_side_d
+Int32 openings_count_side_e
+Int32 openings_count_side_f
+Int32 openings_count_side_g
+Int32 openings_count_side_h
+Decimal solar_heat_gains_energy_k_kwt_h
+Decimal windows_area_m2
+Decimal openings_area_side_am2
+Decimal openings_area_side_bm2
+Decimal openings_area_side_cm2
+Decimal openings_area_side_dm2
+Decimal openings_area_side_em2
+Decimal openings_area_side_fm2
+Decimal openings_area_side_gm2
+Decimal openings_area_side_hm2
+Decimal openings_area_north_m2
+Decimal openings_area_east_m2
+Decimal openings_area_south_m2
+Decimal openings_area_west_m2
+Decimal infiltration_air_flow_kg_per_hour
+Decimal air_permeability_resistance_m2hour_per_kg
}
class WindowsModel
class GlazingKind
Windows "1" --> "1" WindowsModel : windows_model_id
Windows "1" --> "1" GlazingKind : glazing_kind_id
Структура
| Наименование | Атрибут | Тип | Обязательно для создания | Требуется для расчёта | Вычисляемый, методика | ЕИ | Диапазон / формат | Значение по умолчанию | Неизменяемость | Описание |
|---|---|---|---|---|---|---|---|---|---|---|
| Идентификатор записи | id | Guid | Да | UUID | Да | Идентификатор сущности «Вид окон». | ||||
| ais_windows_id | ais_id | Guid | Нет | |||||||
| Модель окон | windows_model_id | WindowsModel | Да | Внешний ключ на родительскую модель окон. | ||||||
| Наименование | name | String | Нет | Да, вычисляется при чтении / на UI; не хранится. Формула: $"{Вид остекления} {(Площадь одного проёма, м²)}" | ||||||
| Вид остекления | glazing_kind_id | GlazingKind | Да | Да | Определяет теплотехнические и инсоляционные свойства окна. | |||||
| Площадь одного проёма, м² | opening_area_m2 | Decimal | Нет | Да | м² | вещественное > 0 | Площадь одного оконного проёма данного вида. | |||
| Кол-во проёмов на стороне A | openings_count_side_a | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне A. | ||||
| Кол-во проёмов на стороне B | openings_count_side_b | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне B. | ||||
| Кол-во проёмов на стороне C | openings_count_side_c | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне C. | ||||
| Кол-во проёмов на стороне D | openings_count_side_d | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне D. | ||||
| Кол-во проёмов на стороне E | openings_count_side_e | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне E. | ||||
| Кол-во проёмов на стороне F | openings_count_side_f | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне F. | ||||
| Кол-во проёмов на стороне G | openings_count_side_g | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне G. | ||||
| Кол-во проёмов на стороне H | openings_count_side_h | Int32 | Да | целое ≥ 0 | 0 | Количество проёмов данного вида на стороне H. | ||||
| Энергия теплопоступлений от солнечной радиации, кВт·ч | solar_heat_gains_energy_k_kwt_h | Decimal | Нет | Да | кВт·ч | вещественное ≥ 0 | Теплопоступления от солнечной радиации через окна данного вида. | |||
| Площадь окон, м² | windows_area_m2 | Decimal | Нет | Да | м² | вещественное > 0 | Суммарная площадь проёмов данного вида окон. | |||
| Площадь проёмов на стороне A, м² | openings_area_side_am2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне B, м² | openings_area_side_bm2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне C, м² | openings_area_side_cm2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне D, м² | openings_area_side_dm2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне E, м² | openings_area_side_em2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне F, м² | openings_area_side_fm2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне G, м² | openings_area_side_gm2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь проёмов на стороне H, м² | openings_area_side_hm2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь окон на стороне света — Север, м² | openings_area_north_m2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь окон на стороне света — Восток, м² | openings_area_east_m2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь окон на стороне света — Юг, м² | openings_area_south_m2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Площадь окон на стороне света — Запад, м² | openings_area_west_m2 | Decimal | Нет | Да | м² | вещественное ≥ 0 | ||||
| Количество инфильтрующегося воздуха, кг/ч | infiltration_air_flow_kg_per_hour | Decimal | Нет | Да | кг/ч | вещественное ≥ 0 | Инфильтрационный приток через окна данного вида. | |||
| Сопротивление воздухопроницанию, м²·ч/кг | air_permeability_resistance_m2hour_per_kg | Decimal | Нет | Да | м²·ч/кг | вещественное > 0 | Расчётное сопротивление воздухопроницанию. |
Исходник
public class Windows
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Description = "Идентификатор сущности «Вид окон».", Immutable = true)]
public Guid Id { get; set; }
/// <summary>ais_windows_id</summary>
[DomainField(Alias = "ais_id")]
public Guid AisId { get; set; }
/// <summary>Модель окон</summary>
[Relation]
[DomainField(Alias = "windows_model_id", RequiredOnCreate = true, Description = "Внешний ключ на родительскую модель окон.")]
public WindowsModel? WindowsModel { get; set; }
/// <summary>Наименование</summary>
[DomainField(
Alias = "name",
Calculated = "Да, вычисляется при чтении / на UI; не хранится. Формула: $\"{Вид остекления} {(Площадь одного проёма, м²)}\""
)]
public string? Name { get; set; }
/// <summary>Вид остекления</summary>
[Relation]
[DomainField(
Alias = "glazing_kind_id",
RequiredOnCreate = true,
RequiredForCalc = "Да",
Description = "Определяет теплотехнические и инсоляционные свойства окна."
)]
public GlazingKind? GlazingKind { get; set; }
/// <summary>Площадь одного проёма, м²</summary>
[DomainField(
Alias = "opening_area_m2",
RequiredForCalc = "Да",
Unit = "м²",
Range = "вещественное > 0",
Description = "Площадь одного оконного проёма данного вида."
)]
public decimal OpeningAreaM2 { get; set; }
/// <summary>Кол-во проёмов на стороне A</summary>
[DomainField(
Alias = "openings_count_side_a",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне A."
)]
public int OpeningsCountSideA { get; set; }
/// <summary>Кол-во проёмов на стороне B</summary>
[DomainField(
Alias = "openings_count_side_b",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне B."
)]
public int OpeningsCountSideB { get; set; }
/// <summary>Кол-во проёмов на стороне C</summary>
[DomainField(
Alias = "openings_count_side_c",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне C."
)]
public int OpeningsCountSideC { get; set; }
/// <summary>Кол-во проёмов на стороне D</summary>
[DomainField(
Alias = "openings_count_side_d",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне D."
)]
public int OpeningsCountSideD { get; set; }
/// <summary>Кол-во проёмов на стороне E</summary>
[DomainField(
Alias = "openings_count_side_e",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне E."
)]
public int OpeningsCountSideE { get; set; }
/// <summary>Кол-во проёмов на стороне F</summary>
[DomainField(
Alias = "openings_count_side_f",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне F."
)]
public int OpeningsCountSideF { get; set; }
/// <summary>Кол-во проёмов на стороне G</summary>
[DomainField(
Alias = "openings_count_side_g",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне G."
)]
public int OpeningsCountSideG { get; set; }
/// <summary>Кол-во проёмов на стороне H</summary>
[DomainField(
Alias = "openings_count_side_h",
RequiredOnCreate = true,
Range = "целое ≥ 0",
Default = "0",
Description = "Количество проёмов данного вида на стороне H."
)]
public int OpeningsCountSideH { get; set; }
/// <summary>Энергия теплопоступлений от солнечной радиации, кВт·ч</summary>
[DomainField(
Alias = "solar_heat_gains_energy_k_kwt_h",
Calculated = "Да",
Unit = "кВт·ч",
Range = "вещественное ≥ 0",
Description = "Теплопоступления от солнечной радиации через окна данного вида."
)]
public decimal SolarHeatGainsEnergyKKwtH { get; set; }
/// <summary>Площадь окон, м²</summary>
[DomainField(
Alias = "windows_area_m2",
Calculated = "Да",
Unit = "м²",
Range = "вещественное > 0",
Description = "Суммарная площадь проёмов данного вида окон."
)]
public decimal WindowsAreaM2 { get; set; }
/// <summary>Площадь проёмов на стороне A, м²</summary>
[DomainField(Alias = "openings_area_side_am2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideAm2 { get; set; }
/// <summary>Площадь проёмов на стороне B, м²</summary>
[DomainField(Alias = "openings_area_side_bm2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideBm2 { get; set; }
/// <summary>Площадь проёмов на стороне C, м²</summary>
[DomainField(Alias = "openings_area_side_cm2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideCm2 { get; set; }
/// <summary>Площадь проёмов на стороне D, м²</summary>
[DomainField(Alias = "openings_area_side_dm2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideDm2 { get; set; }
/// <summary>Площадь проёмов на стороне E, м²</summary>
[DomainField(Alias = "openings_area_side_em2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideEm2 { get; set; }
/// <summary>Площадь проёмов на стороне F, м²</summary>
[DomainField(Alias = "openings_area_side_fm2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideFm2 { get; set; }
/// <summary>Площадь проёмов на стороне G, м²</summary>
[DomainField(Alias = "openings_area_side_gm2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideGm2 { get; set; }
/// <summary>Площадь проёмов на стороне H, м²</summary>
[DomainField(Alias = "openings_area_side_hm2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSideHm2 { get; set; }
/// <summary>Площадь окон на стороне света — Север, м²</summary>
[DomainField(Alias = "openings_area_north_m2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaNorthM2 { get; set; }
/// <summary>Площадь окон на стороне света — Восток, м²</summary>
[DomainField(Alias = "openings_area_east_m2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaEastM2 { get; set; }
/// <summary>Площадь окон на стороне света — Юг, м²</summary>
[DomainField(Alias = "openings_area_south_m2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaSouthM2 { get; set; }
/// <summary>Площадь окон на стороне света — Запад, м²</summary>
[DomainField(Alias = "openings_area_west_m2", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
public decimal OpeningsAreaWestM2 { get; set; }
/// <summary>Количество инфильтрующегося воздуха, кг/ч</summary>
[DomainField(
Alias = "infiltration_air_flow_kg_per_hour",
Calculated = "Да",
Unit = "кг/ч",
Range = "вещественное ≥ 0",
Description = "Инфильтрационный приток через окна данного вида."
)]
public decimal InfiltrationAirFlowKgPerHour { get; set; }
/// <summary>Сопротивление воздухопроницанию, м²·ч/кг</summary>
[DomainField(
Alias = "air_permeability_resistance_m2hour_per_kg",
Calculated = "Да",
Unit = "м²·ч/кг",
Range = "вещественное > 0",
Description = "Расчётное сопротивление воздухопроницанию."
)]
public decimal AirPermeabilityResistanceM2hourPerKg { get; set; }
}Структурные связи
Использует
- Доменная сущность Вид остекления
- Доменная сущность Модель окон
Используется
- Документ Маппинг доменных данных → InputModel (ТЭ)
- Компонент Блок "Вид оконных проёмов
- Компонент Вкладка "Окна