ВОК

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

Алиасы: ВОК, Верхние ограждающие конструкции. 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

Структура

НаименованиеАтрибутТипОбязательно для созданияТребуется для расчётаВычисляемый, методикаЕИДиапазон / форматЗначение по умолчаниюНеизменяемость
Идентификатор записиidGuidДаUUIDДа
Модель потребленияconsumption_model_idConsumptionModelДаДа
Тип крышиroof_type_idRoofTypeНетДа
Площадь ВОК при произвольной форме здания, м²custom_upper_enclosure_areaDecimalНетДа, при произвольной форме здания (Форма здания. Код = "other")м²вещественное > 0
Наличие чердачного помещенияhas_atticBooleanДаДа{false; true}false
Тип отопления чердачного помещенияattic_heating_type_idBasementAtticHeatingTypesНет
Уровень верхнего перекрытия, мupper_floor_level_mDecimalНетДамвещественное > 0
Длина конька, мridge_length_mDecimalНетДа, если Тип крыши.Код = "hipped"мвещественное, 0 < L_конька < Размер по габариту A
Верхнее перекрытие: материал несущего слояfloor_slab_bearing_material_idMaterialНетДа
Верхнее перекрытие: толщина несущего слоя, ммfloor_slab_bearing_thickness_mmDecimalНетДаммвещественное > 0
Верхнее перекрытие: материал утеплителяfloor_slab_insulation_material_idInsulationMaterialНет
Верхнее перекрытие: толщина утеплителя, ммfloor_slab_insulation_thickness_mmDecimalНетДа, если указан материал утеплителя перекрытия И Материал утеплителя.Наименование != "Нет"ммвещественное > 0
Перекрытие крыши: материал утеплителяroof_surface_insulation_material_idInsulationMaterialНет
Перекрытие крыши: толщина утеплителя, ммroof_surface_insulation_thickness_mmDecimalНетДа, если указан материал утеплителя крыши И Материал утеплителя. Наименование != "Нет"ммвещественное > 0
Энергия теплопотерь, кВт·чheat_loss_energy_k_kwt_hDecimalНетДакВт·чвещественное ≥ 0
Мощность теплопотерь, кВтheat_loss_power_kwtDecimalНетДакВтвещественное ≥ 0
Приведённое сопротивление теплопередаче ВОК, м²·°C/Втthermal_resistance_m2c_per_wtDecimalНетДам²·°C/Втвещественное > 0
Площадь ВОК, м²areaDecimalНетДам²Вещественное (0; 10000000]
Площадь стен чердака, м²attic_wall_areaDecimalНетДам²если "Наличие чердачного помещения" = "Да", то Вещественное (0; 10000000]
Площадь покрытия крыши, м²roof_cover_areaDecimalНетДам²Вещественное (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; }
    }