Зона контакта с грунтом

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

Алиасы: Зона контакта с грунтом, Зона контакта с грунтом (сущность). parents: [consumption-model-diagram].

⟨/⟩ Исходник

Связи

classDiagram
    direction LR
    class GroundContact {
        +Guid id
        +ConsumptionModel consumption_model_id
        +Boolean is_basement
        +BasementAtticHeatingTypes basement_heating_type_id
        +Decimal basement_height_m
        +Decimal basement_floor_level_m
        +Decimal custom_ground_contact_area_m2
        +Decimal heat_loss_energy_k_kwt_h
        +Decimal heat_loss_power_kwt
        +Decimal thermal_resistance_m2c_per_wt
        +Decimal ground_contact_area_m2
        +Decimal basement_wall_area_m2
        +Decimal ground_floor_area_m2
        +Decimal cover_area_m2
        +Decimal zone_i_area_m2
        +Decimal zone_ii_area_m2
        +Decimal zone_iii_area_m2
        +Decimal zone_iv_area_m2
    }
    class ConsumptionModel
    class BasementAtticHeatingTypes
    GroundContact "1" --> "1" ConsumptionModel : consumption_model_id
    GroundContact "0..1" --> "1" BasementAtticHeatingTypes : basement_heating_type_id

Структура

НаименованиеАтрибутТипОбязательно для созданияТребуется для расчётаВычисляемый, методикаЕИДиапазон / форматЗначение по умолчаниюНеизменяемостьОписание
Идентификатор записиidGuidДаUUIDДа
Модель потребленияconsumption_model_idConsumptionModelДаДа
Наличие подвалаis_basementBooleanДаДаfalse
Вид отопления подвалаbasement_heating_type_idBasementAtticHeatingTypesНетДа, если Наличие подвала=Да
Высота подвалаbasement_height_mDecimalНетДа, если Наличие подвала=Давещественное > 0
Уровень пола подвалаbasement_floor_level_mDecimalНетДа, если Наличие подвала=Да
Площадь контакта при произвольной форме здания, м²custom_ground_contact_area_m2DecimalНетДа, если Форма и габариты (сущность) Форма здания=Другаям²вещественное ≥ 0
Энергия теплопотерь, кВт·чheat_loss_energy_k_kwt_hDecimalНетДакВт·чвещественное > 0
Мощность теплопотерь, кВтheat_loss_power_kwtDecimalНетДакВтвещественное > 0
Приведённое сопротивление теплопередаче ЗКГ, м²·°C/Втthermal_resistance_m2c_per_wtDecimalНетДаДам²·°C/Втвещественное > 0
Площадь контакта с грунтом, м²ground_contact_area_m2DecimalНетДаДам²вещественное > 0
Площадь стен подвала, м²basement_wall_area_m2DecimalНетДа, если Наличие подвала=ДаДам²вещественное > 0
Площадь пола, м²ground_floor_area_m2DecimalНетДаДам²вещественное > 0
Площадь пола, м²cover_area_m2DecimalНетДам²Колонка есть в БД, значение не заполняется: сеттер в домене не вызывается
Площадь зоны Izone_i_area_m2DecimalНетДаДам²вещественное > 0
Площадь зоны IIzone_ii_area_m2DecimalНетДа, если ...Дам²вещественное ≥ 0
Площадь зоны IIIzone_iii_area_m2DecimalНетДа, если ...Дам²вещественное ≥ 0
Площадь зоны IVzone_iv_area_m2DecimalНетДа, если ...Дам²вещественное ≥ 0

Исходник

    public class GroundContact
    {
        /// <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>
        [DomainField(Alias = "is_basement", RequiredOnCreate = true, RequiredForCalc = "Да", Default = "false")]
        public bool IsBasement { get; set; }

        /// <summary>Вид отопления подвала</summary>
        [Relation]
        [DomainField(Alias = "basement_heating_type_id", RequiredForCalc = "Да, если Наличие подвала=Да")]
        public BasementAtticHeatingTypes? BasementHeatingType { get; set; }

        /// <summary>Высота подвала</summary>
        [DomainField(Alias = "basement_height_m", RequiredForCalc = "Да, если Наличие подвала=Да", Range = "вещественное > 0")]
        public decimal BasementHeightM { get; set; }

        /// <summary>Уровень пола подвала</summary>
        [DomainField(Alias = "basement_floor_level_m", RequiredForCalc = "Да, если Наличие подвала=Да")]
        public decimal BasementFloorLevelM { get; set; }

        /// <summary>Площадь контакта при произвольной форме здания, м²</summary>
        [DomainField(
            Alias = "custom_ground_contact_area_m2",
            RequiredForCalc = "Да, если Форма и габариты (сущность) Форма здания=Другая",
            Unit = "м²",
            Range = "вещественное ≥ 0"
        )]
        public decimal CustomGroundContactAreaM2 { 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",
            RequiredForCalc = "Да",
            Calculated = "Да",
            Unit = "м²·°C/Вт",
            Range = "вещественное > 0"
        )]
        public decimal ThermalResistanceM2cPerWt { get; set; }

        /// <summary>Площадь контакта с грунтом, м²</summary>
        [DomainField(Alias = "ground_contact_area_m2", RequiredForCalc = "Да", Calculated = "Да", Unit = "м²", Range = "вещественное > 0")]
        public decimal GroundContactAreaM2 { get; set; }

        /// <summary>Площадь стен подвала, м²</summary>
        [DomainField(
            Alias = "basement_wall_area_m2",
            RequiredForCalc = "Да, если Наличие подвала=Да",
            Calculated = "Да",
            Unit = "м²",
            Range = "вещественное > 0"
        )]
        public decimal BasementWallAreaM2 { get; set; }

        /// <summary>Площадь пола, м²</summary>
        [DomainField(Alias = "ground_floor_area_m2", RequiredForCalc = "Да", Calculated = "Да", Unit = "м²", Range = "вещественное > 0")]
        public decimal GroundFloorAreaM2 { get; set; }

        /// <summary>Площадь пола, м²</summary>
        [DomainField(
            Alias = "cover_area_m2",
            Calculated = "Да",
            Unit = "м²",
            Description = "Колонка есть в БД, значение не заполняется: сеттер в домене не вызывается"
        )]
        public decimal CoverAreaM2 { get; set; }

        /// <summary>Площадь зоны I</summary>
        [DomainField(Alias = "zone_i_area_m2", RequiredForCalc = "Да", Calculated = "Да", Unit = "м²", Range = "вещественное > 0")]
        public decimal ZoneIAreaM2 { get; set; }

        /// <summary>Площадь зоны II</summary>
        [DomainField(Alias = "zone_ii_area_m2", RequiredForCalc = "Да, если ...", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
        public decimal ZoneIiAreaM2 { get; set; }

        /// <summary>Площадь зоны III</summary>
        [DomainField(Alias = "zone_iii_area_m2", RequiredForCalc = "Да, если ...", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
        public decimal ZoneIiiAreaM2 { get; set; }

        /// <summary>Площадь зоны IV</summary>
        [DomainField(Alias = "zone_iv_area_m2", RequiredForCalc = "Да, если ...", Calculated = "Да", Unit = "м²", Range = "вещественное ≥ 0")]
        public decimal ZoneIvAreaM2 { get; set; }
    }