Ejemplo n.º 1
0
        private void DefinePoint(ObjectId idPt)
        {
            DicED dicPt;

            using (var t = Doc.TransactionManager.StartTransaction())
            {
                var dbPt = idPt.GetObject(OpenMode.ForRead) as DBPoint;
                if (dbPt == null)
                {
                    return;
                }

                // Загрузка из словаря всех записей
                dicPt = InsExtDataHelper.Load(dbPt, Doc);
                t.Commit();
            }

            // Если это инсоляционная точка елочек
            var dicInsPt = dicPt?.GetInner("InsPoint");

            if (dicInsPt != null)
            {
                Tree.AddPoint(dicInsPt, idPt);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Сохранение расчета в словарь чертежа
        /// </summary>
        public void SaveIns()
        {
            if (Doc == null || Doc.IsDisposed)
            {
                return;
            }
            // Словарь InsModel
            var dicInsModel = new DicED("InsModel");

            // Список значений самого расчета InsModelRec
            dicInsModel.AddRec("InsModelRec", GetDataValues(Doc));
            // Словарь настроек InsOptions
            dicInsModel.AddInner("InsOptions", Options.GetExtDic(Doc));
            // Словарь расчета елочек TreeModel
            dicInsModel.AddInner("TreeModel", Tree.GetExtDic(Doc));
            // Словарь расчета фронтов FrontModel
            dicInsModel.AddInner("FrontModel", Front.GetExtDic(Doc));
            // Словарь расчета площадок
            dicInsModel.AddInner("PlaceModel", Place.GetExtDic(Doc));
            // Сохранение словаря InsModel в NOD чертежа
            InsExtDataHelper.SaveToNod(Doc, dicInsModel);

            // Сохранение всех точек
            Tree.SavePoints();
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
 public void SaveInsPoint()
 {
     InsExtDataHelper.Save(this, Model.Doc);
 }