Пример #1
0
        /// <summary>
        /// Нумерация свай
        /// </summary>
        public void Numbering()
        {
            // Форма настроек нумерации свай - порядок нумерации, имя блока сваи, имя атрибута номера сваи.
            PileOptions = PileOptions.Load();
            Options     = new PileNumberingOptions();
            Options.LoadDefault();
            Options = Options.PromptOptions();

            // Выбор свай для нумерации
            var selblocks = Ed.SelectBlRefs("Выбор блоков свай для нумерации");

            // фильтр блоков свай
            var piles = PileFilter.Filter(selblocks, PileOptions, false);

            // Сброс положения атрибута номера сваи если задано в настройках
            ResetPos(ref piles);

            // Определения стороны сваи и проверка ее одинаковости
            Options.PileSide = GetPileSides(ref piles);

            // Проверка дубликатов
            AcadLib.Blocks.Dublicate.CheckDublicateBlocks.Check(piles.Select(p => p.IdBlRef));

            // Проверка сваи и расстояний между ними.
            CheckPiles(piles);

            // Сортировка
            var pilesSort = Sort(piles);

            // Перенумерация
            Num(pilesSort);
        }
Пример #2
0
        private static List <ObjectId> GetSelection()
        {
            var sel = Ed.SelectImplied();

            if (sel.Status == PromptStatus.OK)
            {
                return(sel.Value.GetObjectIds().ToList());
            }
            return(Ed.SelectBlRefs("Выбор блоков"));
        }