Beispiel #1
0
        public static FrontGroup New(DicED dicGroup, FrontModel front)
        {
            var group = new FrontGroup();

            group.Front = front;
            group.SetExtDic(dicGroup, null);
            group.IsInitialized = true;
            return(group);
        }
Beispiel #2
0
 public FrontGroup(Extents3d selReg, FrontModel front)
 {
     Front           = front;
     SelectRegion    = selReg;
     Name            = DefineNewName();
     Options         = new FrontGroupOptions();
     FrontLevel      = 2;
     IsVisualFrontOn = true; // По умолчанию для новой группы добавляемой пользователем - включана визуализация
     IsInitialized   = true;
 }
Beispiel #3
0
        /// <summary>
        /// Общие действия и при создании нового расчета и при загрузке существующего
        /// Обязательно запускать после создания расчета
        /// </summary>
        public void Initialize(Document doc)
        {
            Doc = doc;

            // Дефолтные настройки
            if (Options == null)
            {
                Options = InsOptions.Default();
            }
            // Сервис расчета
            DefineCalcService();

            // Загрузка карты
            if (Map == null)
            {
                Map = new Map(this);
                Map.BuildingAdded    += Map_BuildingAdded;
                Map.BuildingErased   += Map_BuildingErased;
                Map.BuildingModified += Map_BuildingModified;
                Map.InsPointAdded    += Map_InsPointAdded;
            }
            Map.Update();

            // Создание расчета елочек
            if (Tree == null)
            {
                Tree = new TreeModel();
            }
            Tree.Initialize(this);

            // Расчет фронтов
            if (Front == null)
            {
                Front = new FrontModel();
            }
            Front.Initialize(this);
            LoadPoints();

            // Расчет площадок
            if (Place == null)
            {
                Place = new PlaceModel();
            }
            Place.Initialize(this);

            doc.Database.BeginSave += Database_BeginSave;
        }
Beispiel #4
0
        /// <summary>
        /// Загрузка расчета из документа (если он был там сохранен)
        /// Без инициализации!!!
        /// </summary>
        /// <param name="doc">Документ</param>
        /// <returns>Расчет инсоляции или null</returns>
        public static InsModel LoadIns(Document doc)
        {
            InsModel model = null;

            // Загрузка словаря модели
            var dicModel = InsExtDataHelper.LoadFromNod(doc, "InsModel");

            if (dicModel == null)
            {
                return(model);
            }

            // список значений самой модели
            var recModel = dicModel.GetRec("InsModelRec");
            // Настройки
            var opt = new InsOptions();

            opt.SetExtDic(dicModel.GetInner("InsOptions"), doc);
            // Расчет елочек
            var tree = new TreeModel();

            tree.SetExtDic(dicModel.GetInner("TreeModel"), doc);
            // Расчет фронтов
            var front = new FrontModel();

            front.SetExtDic(dicModel.GetInner("FrontModel"), doc);
            // Расчет площадок
            var place = new PlaceModel();

            place.SetExtDic(dicModel.GetInner("PlaceModel"), doc);

            model     = new InsModel();
            model.Doc = doc;
            model.SetDataValues(recModel?.Values, doc);
            model.Tree  = tree;
            model.Front = front;
            model.Place = place;
            bool needUpdate; // Тут не нужно обновлять расчет

            model.SetOptions(opt, out needUpdate);
            //model.Initialize(doc);

            return(model);
        }
Beispiel #5
0
        /// <summary>
        /// Новая группа фронтонов
        /// </summary>
        /// <param name="selReg">Границы на чертеже</param>
        /// <param name="front">Модель</param>
        public static FrontGroup New(Extents3d selReg, FrontModel front)
        {
            var frontGroup = new FrontGroup(selReg, front);

            return(frontGroup);
        }