Вид оконных проёмов

Доменная сущность Версия: 1.0 accepted

Алиасы: Вид оконных проёмов. 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

Структура

НаименованиеАтрибутТипОбязательно для созданияТребуется для расчётаВычисляемый, методикаЕИДиапазон / форматЗначение по умолчаниюНеизменяемостьОписание
Идентификатор записиidGuidДаUUIDДаИдентификатор сущности «Вид окон».
ais_windows_idais_idGuidНет
Модель оконwindows_model_idWindowsModelДаВнешний ключ на родительскую модель окон.
НаименованиеnameStringНетДа, вычисляется при чтении / на UI; не хранится. Формула: $"{Вид остекления} {(Площадь одного проёма, м²)}"
Вид остекленияglazing_kind_idGlazingKindДаДаОпределяет теплотехнические и инсоляционные свойства окна.
Площадь одного проёма, м²opening_area_m2DecimalНетДам²вещественное > 0Площадь одного оконного проёма данного вида.
Кол-во проёмов на стороне Aopenings_count_side_aInt32Дацелое ≥ 00Количество проёмов данного вида на стороне A.
Кол-во проёмов на стороне Bopenings_count_side_bInt32Дацелое ≥ 00Количество проёмов данного вида на стороне B.
Кол-во проёмов на стороне Copenings_count_side_cInt32Дацелое ≥ 00Количество проёмов данного вида на стороне C.
Кол-во проёмов на стороне Dopenings_count_side_dInt32Дацелое ≥ 00Количество проёмов данного вида на стороне D.
Кол-во проёмов на стороне Eopenings_count_side_eInt32Дацелое ≥ 00Количество проёмов данного вида на стороне E.
Кол-во проёмов на стороне Fopenings_count_side_fInt32Дацелое ≥ 00Количество проёмов данного вида на стороне F.
Кол-во проёмов на стороне Gopenings_count_side_gInt32Дацелое ≥ 00Количество проёмов данного вида на стороне G.
Кол-во проёмов на стороне Hopenings_count_side_hInt32Дацелое ≥ 00Количество проёмов данного вида на стороне H.
Энергия теплопоступлений от солнечной радиации, кВт·чsolar_heat_gains_energy_k_kwt_hDecimalНетДакВт·чвещественное ≥ 0Теплопоступления от солнечной радиации через окна данного вида.
Площадь окон, м²windows_area_m2DecimalНетДам²вещественное > 0Суммарная площадь проёмов данного вида окон.
Площадь проёмов на стороне A, м²openings_area_side_am2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне B, м²openings_area_side_bm2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне C, м²openings_area_side_cm2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне D, м²openings_area_side_dm2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне E, м²openings_area_side_em2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне F, м²openings_area_side_fm2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне G, м²openings_area_side_gm2DecimalНетДам²вещественное ≥ 0
Площадь проёмов на стороне H, м²openings_area_side_hm2DecimalНетДам²вещественное ≥ 0
Площадь окон на стороне света — Север, м²openings_area_north_m2DecimalНетДам²вещественное ≥ 0
Площадь окон на стороне света — Восток, м²openings_area_east_m2DecimalНетДам²вещественное ≥ 0
Площадь окон на стороне света — Юг, м²openings_area_south_m2DecimalНетДам²вещественное ≥ 0
Площадь окон на стороне света — Запад, м²openings_area_west_m2DecimalНетДам²вещественное ≥ 0
Количество инфильтрующегося воздуха, кг/чinfiltration_air_flow_kg_per_hourDecimalНетДакг/чвещественное ≥ 0Инфильтрационный приток через окна данного вида.
Сопротивление воздухопроницанию, м²·ч/кгair_permeability_resistance_m2hour_per_kgDecimalНетДам²·ч/кгвещественное > 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; }
    }