Exemple #1
0
        //public House (FrontGroup frontGroup)
        //{
        //    FrontGroup = frontGroup;
        //    Doc = FrontGroup.Front.Model.Doc;
        //    VisualFront = new VisualFront(Doc);
        //}

        public House(InsModel model, int index)
        {
            Model       = model;
            Doc         = model.Doc;
            Index       = index;
            VisualFront = new VisualFront(Doc);
        }
Exemple #2
0
 public Map(InsModel insModel)
 {
     Model      = insModel;
     IsVisualOn = true; // По-умолчаию визуализация включена
     Doc        = insModel.Doc;
     db         = Doc.Database;
 }
Exemple #3
0
        /// <summary>
        /// Выбор новой точки
        /// </summary>
        public InsPoint SelectNewPoint(InsModel model)
        {
            doc        = model.Doc;
            ed         = doc.Editor;
            this.model = model;
            map        = model.Map;

            // Запрос точки
            MapBuilding building;
            var         pt = PromptSelectPointOnScreen(out building);

            var p = new InsPoint(model, pt);

            if (building == null)
            {
                p.Height = 0;
            }
            else
            {
                p.Building = building;
            }
            // Окно настроек расчетной точки (парметры окна, здания, высота точки)
            var vm = new InsPointViewModel(p);

            if (InsService.ShowDialog(vm) == true)
            {
                return(p);
            }
            else
            {
                return(null);
            }
        }
Exemple #4
0
 /// <summary>
 /// Создание расчетной точки из найденной точки на чертеже (DBPoint)
 /// </summary>
 /// <param name="dbPt">Инс точка на чертеже</param>
 /// <param name="model">Модель</param>
 public InsPointBase(DBPoint dbPt, InsModel model)
 {
     this.Model = model;
     Point      = dbPt.Position;
     DBPointId  = dbPt.Id;
     SubscribeDbo(dbPt);
 }
Exemple #5
0
 public void Initialize(InsModel insModel)
 {
     Model = insModel;
     if (Options == null)
     {
         Options = PlaceOptions.Default();
     }
     AddPlacesFromMap();
 }
Exemple #6
0
        /// <summary>
        /// Инициализация расчета
        /// </summary>
        public void Initialize(InsModel insModel)
        {
            this.Model = insModel;

            // Настройки
            if (Options == null)
            {
                Options = FrontOptions.Default();
            }
        }
Exemple #7
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);
        }
Exemple #8
0
        /// <summary>
        /// Определение здания которому принадлежит эта точка
        /// </summary>
        public static MapBuilding DefineBuilding(ref Point3d point, InsModel model)
        {
            var pt       = point;
            var building = model.Map.GetBuildingInPoint(pt);

            if (building != null)
            {
                // Проверка находится ли точка на контуре дома
                if (!CorrectCalcPoint(ref pt, building, model.Doc))
                {
                    building = null;
                }
                else
                {
                    point = pt;
                }
            }
            return(building);
        }
Exemple #9
0
        /// <summary>
        /// Инициализация расчета елочек - новая или обновление старого
        /// </summary>
        public void Initialize(InsModel insModel)
        {
            this.Model = insModel;

            // Визуализация елочек
            if (VisualTrees != null)
            {
                // Удаление старой визуализации
                VisualTrees.VisualsDelete();
                VisualTrees.TreeModel = this;
            }
            else
            {
                VisualTrees = new VisualTree(this);
                if (isVisualTreeOnOffForLoad)
                {
                    VisualTrees.VisualIsOn = isVisualTreeOnOffForLoad;
                }
            }

            if (TreeOptions == null)
            {
                TreeOptions = TreeOptions.Default();
            }

            if (Points == null)
            {
                Points = new ObservableCollection <InsPoint>();
            }

            //if (Points != null)
            //{
            //    // Очистка точек, с очисткой визуалз
            //    DeletePointsVisualIllums();
            //    Points.Clear();
            //}
            //else
            //{
            //    Points = new ObservableCollection<InsPoint>();
            //}
        }
Exemple #10
0
 /// <summary>
 /// Создание расчетной точки из словарных записей объекта
 /// </summary>
 public InsPoint(DBPoint dbPt, InsModel model) : base(dbPt, model)
 {
     ReportPoint = new RelayCommand(OnReportPointExecute);
 }
Exemple #11
0
 public InsPoint(InsModel model, Point3d pt) : base(pt, model)
 {
     Window      = WindowOptions.Default;
     Height      = DefaultHeightWindowCenter; // Высота центра окна от пола
     ReportPoint = new RelayCommand(OnReportPointExecute);
 }
Exemple #12
0
 /// <summary>
 /// Создание объекта - пользователем
 /// Точка не создается на чертеже (нужно запустить CreatePoint)
 /// </summary>
 /// <param name="point"></param>
 /// <param name="doc"></param>
 public InsPointBase(Point3d point, InsModel model)
 {
     this.Model = model;
     Point      = point;
 }