public static FrontGroup New(DicED dicGroup, FrontModel front) { var group = new FrontGroup(); group.Front = front; group.SetExtDic(dicGroup, null); group.IsInitialized = true; return(group); }
public FrontGroup(Extents3d selReg, FrontModel front) { Front = front; SelectRegion = selReg; Name = DefineNewName(); Options = new FrontGroupOptions(); FrontLevel = 2; IsVisualFrontOn = true; // По умолчанию для новой группы добавляемой пользователем - включана визуализация IsInitialized = true; }
/// <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; }
/// <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); }
/// <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); }