Форма и габариты
Алиасы: Форма и габариты. parents: [consumption-model-diagram].
Связи
classDiagram
direction LR
class ShapeAndDimensions {
+Guid id
+ConsumptionModel consumption_model_id
+BuildingShape building_shape_id
+Decimal total_volume
+Decimal heated_volume
+Decimal total_area
+Decimal heated_area
+Decimal building_height
+Int32 floor_count
+CardinalDirection cardinal_direction_id
+Decimal dimension_a
+Decimal dimension_b
+Decimal dimension_c
+Decimal dimension_d
+Decimal dimension_e
+Decimal dimension_f
+Decimal dimension_g
+Decimal dimension_h
}
class ConsumptionModel
class BuildingShape
class CardinalDirection
ShapeAndDimensions "1" --> "1" ConsumptionModel : consumption_model_id
ShapeAndDimensions "0..1" --> "1" BuildingShape : building_shape_id
ShapeAndDimensions "0..1" --> "1" CardinalDirection : cardinal_direction_id
Структура
| Наименование | Атрибут | Тип | Обязательно для создания | Требуется для расчёта | ЕИ | Диапазон / формат | Неизменяемость | Описание |
|---|---|---|---|---|---|---|---|---|
| Идентификатор записи | id | Guid | Да | UUID | Да | Идентификатор сущности «Форма и габариты». | ||
| Модель потребления | consumption_model_id | ConsumptionModel | Да | Да | Внешний ключ на корневую модель потребления; подмодуль входит в состав агрегата (1:1). | |||
| Форма здания | building_shape_id | BuildingShape | Нет | Да | Классификация геометрической формы; связь на диаграмме «имеет_форму» (* : 1). | |||
| Объём общий, м³ | total_volume | Decimal | Нет | м³ | Вещественное (15,4) [0; 10000000] | Полный объём здания. | ||
| Объём отапливаемый, м³ | heated_volume | Decimal | Нет | Да | м³ | Вещественное (15,4) (0; 10000000] | Объём отапливаемой части. | |
| Площадь общая, м² | total_area | Decimal | Нет | м² | Вещественное (15,4) [0; 10000000] | Общая площадь | ||
| Площадь отапливаемая, м² | heated_area | Decimal | Нет | Да | м² | Вещественное (15,4) (0; 10000000] | Отапливаемая площадь. | |
| Высота здания, м | building_height | Decimal | Нет | Да | м | Вещественное (15,4) (0; 100] | Высота здания для геометрии. | |
| Этажность надземная, шт. | floor_count | Int32 | Нет | Да | целое > 0 | Число этажей. | ||
| Ориентация стороны А | cardinal_direction_id | CardinalDirection | Нет | Да | Ориентация условной стороны «А» относительно сторон света; связь «ориентация_стороны_А» (* : 1). | |||
| Размер по габариту A, м | dimension_a | Decimal | Нет | Да, если `Форма здания. Код в списке (rect, g, gr, p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит A по схеме выбранной формы здания. | |
| Размер по габариту B, м | dimension_b | Decimal | Нет | Да, если `Форма здания. Код ов списке (rect, g, gr, p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит B по схеме выбранной формы здания. | |
| Размер по габариту C, м | dimension_c | Decimal | Нет | Да, если `Форма здания. Код в списке (g, gr, p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит C по схеме выбранной формы здания. | |
| Размер по габариту D, м | dimension_d | Decimal | Нет | Да, если `Форма здания. Код в списке (g, gr, p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит D по схеме выбранной формы здания. | |
| Размер по габариту E, м | dimension_e | Decimal | Нет | Да, если `Форма здания. Код в списке (g, gr, p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит E по схеме выбранной формы здания. | |
| Размер по габариту F, м | dimension_f | Decimal | Нет | Да, если `Форма здания. Код в списке (g, gr, p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит F по схеме выбранной формы здания. | |
| Размер по габариту G, м | dimension_g | Decimal | Нет | Да, если `Форма здания. Код в списке (p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит G по схеме выбранной формы здания. | |
| Размер по габариту H, м | dimension_h | Decimal | Нет | Да, если `Форма здания. Код в списке (p)` | м | Вещественное (15,4) (0; 1000] | Линейный габарит H по схеме выбранной формы здания. |
Исходник
public class ShapeAndDimensions
{
/// <summary>Идентификатор записи</summary>
[DomainField(
Alias = "id",
RequiredOnCreate = true,
Range = "UUID",
Description = "Идентификатор сущности «Форма и габариты».",
Immutable = true
)]
public Guid Id { get; set; }
/// <summary>Модель потребления</summary>
[Relation]
[DomainField(
Alias = "consumption_model_id",
RequiredOnCreate = true,
Description = "Внешний ключ на корневую модель потребления; подмодуль входит в состав агрегата (1:1).",
Immutable = true
)]
public ConsumptionModel? ConsumptionModel { get; set; }
/// <summary>Форма здания</summary>
[Relation]
[DomainField(
Alias = "building_shape_id",
RequiredForCalc = "Да",
Description = "Классификация геометрической формы; связь на диаграмме «имеет_форму» (* : 1)."
)]
public BuildingShape? BuildingShape { get; set; }
/// <summary>Объём общий, м³</summary>
[DomainField(Alias = "total_volume", Unit = "м³", Range = "Вещественное (15,4) [0; 10000000]", Description = "Полный объём здания.")]
public decimal TotalVolume { get; set; }
/// <summary>Объём отапливаемый, м³</summary>
[DomainField(
Alias = "heated_volume",
RequiredForCalc = "Да",
Unit = "м³",
Range = "Вещественное (15,4) (0; 10000000]",
Description = "Объём отапливаемой части."
)]
public decimal HeatedVolume { get; set; }
/// <summary>Площадь общая, м²</summary>
[DomainField(Alias = "total_area", Unit = "м²", Range = "Вещественное (15,4) [0; 10000000]", Description = "Общая площадь")]
public decimal TotalArea { get; set; }
/// <summary>Площадь отапливаемая, м²</summary>
[DomainField(
Alias = "heated_area",
RequiredForCalc = "Да",
Unit = "м²",
Range = "Вещественное (15,4) (0; 10000000]",
Description = "Отапливаемая площадь."
)]
public decimal HeatedArea { get; set; }
/// <summary>Высота здания, м</summary>
[DomainField(
Alias = "building_height",
RequiredForCalc = "Да",
Unit = "м",
Range = "Вещественное (15,4) (0; 100]",
Description = "Высота здания для геометрии."
)]
public decimal BuildingHeight { get; set; }
/// <summary>Этажность надземная, шт.</summary>
[DomainField(Alias = "floor_count", RequiredForCalc = "Да", Range = "целое > 0", Description = "Число этажей.")]
public int FloorCount { get; set; }
/// <summary>Ориентация стороны А</summary>
[Relation]
[DomainField(
Alias = "cardinal_direction_id",
RequiredForCalc = "Да",
Description = "Ориентация условной стороны «А» относительно сторон света; связь «ориентация_стороны_А» (* : 1)."
)]
public CardinalDirection? CardinalDirection { get; set; }
/// <summary>Размер по габариту A, м</summary>
[DomainField(
Alias = "dimension_a",
RequiredForCalc = "Да, если `Форма здания. Код в списке (rect, g, gr, p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит A по схеме выбранной формы здания."
)]
public decimal DimensionA { get; set; }
/// <summary>Размер по габариту B, м</summary>
[DomainField(
Alias = "dimension_b",
RequiredForCalc = "Да, если `Форма здания. Код ов списке (rect, g, gr, p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит B по схеме выбранной формы здания."
)]
public decimal DimensionB { get; set; }
/// <summary>Размер по габариту C, м</summary>
[DomainField(
Alias = "dimension_c",
RequiredForCalc = "Да, если `Форма здания. Код в списке (g, gr, p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит C по схеме выбранной формы здания."
)]
public decimal DimensionC { get; set; }
/// <summary>Размер по габариту D, м</summary>
[DomainField(
Alias = "dimension_d",
RequiredForCalc = "Да, если `Форма здания. Код в списке (g, gr, p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит D по схеме выбранной формы здания."
)]
public decimal DimensionD { get; set; }
/// <summary>Размер по габариту E, м</summary>
[DomainField(
Alias = "dimension_e",
RequiredForCalc = "Да, если `Форма здания. Код в списке (g, gr, p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит E по схеме выбранной формы здания."
)]
public decimal DimensionE { get; set; }
/// <summary>Размер по габариту F, м</summary>
[DomainField(
Alias = "dimension_f",
RequiredForCalc = "Да, если `Форма здания. Код в списке (g, gr, p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит F по схеме выбранной формы здания."
)]
public decimal DimensionF { get; set; }
/// <summary>Размер по габариту G, м</summary>
[DomainField(
Alias = "dimension_g",
RequiredForCalc = "Да, если `Форма здания. Код в списке (p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит G по схеме выбранной формы здания."
)]
public decimal DimensionG { get; set; }
/// <summary>Размер по габариту H, м</summary>
[DomainField(
Alias = "dimension_h",
RequiredForCalc = "Да, если `Форма здания. Код в списке (p)`",
Unit = "м",
Range = "Вещественное (15,4) (0; 1000]",
Description = "Линейный габарит H по схеме выбранной формы здания."
)]
public decimal DimensionH { get; set; }
}Структурные связи
Использует
- Доменная сущность Модель потребления
- Доменная сущность Сторона света
- Доменная сущность Форма здания
Используется
- Документ Маппинг доменных данных → InputModel (ТЭ)
- Доменная сущность Зона контакта с грунтом
- Компонент Вкладка "Зона контакта с грунтом
- Компонент Вкладка "Реестр моделей потребления
- Компонент Вкладка "Форма и габариты
- Прикладной сервис Эталоны и нормативы потребления ТЭР зданиями