/// <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); }
public HightMarkTable(List <HightMarkRow> hmRows) { doc = Application.DocumentManager.MdiActiveDocument; db = doc.Database; ed = doc.Editor; this.options = PileCalcService.PileOptions; this.hmRows = hmRows; }
public SpecTable(List <SpecRow> specRows) { doc = Application.DocumentManager.MdiActiveDocument; db = doc.Database; ed = doc.Editor; this.options = PileCalcService.PileOptions; this.specRows = specRows; }
public void Calc(List <Pile> piles, PileOptions pileOpt = null) { if (pileOpt == null) { PileOptions = PileOptions.Load(); } else { PileOptions = pileOpt; } piles = piles.OrderBy(p => p.Pos).ToList(); // проверка номеров свай CheckNums(piles); Inspector.ShowDialog(); Inspector.Clear(); // Подсчет отметок в каждой сваи foreach (var p in piles) { p.CalcHightMarks(); } // Назначение Вида сваям по уникальности параметров SetPileViews(piles); // Строки таблицы отметок свай var hmRows = getHightMarkRows(piles); // Строки спецификации свай var specRows = getSpecRows(piles); // Форма дерева свай FormPiles formPiles = new FormPiles(hmRows, specRows); if (Application.ShowModalDialog(formPiles) != System.Windows.Forms.DialogResult.OK) { formPiles.ButtonDialogVisible(false); Application.ShowModelessDialog(formPiles); throw new Exception(AcadLib.General.CanceledByUser); } // Вставка таблицы отметок HightMarkTable hmTable = new HightMarkTable(hmRows); hmTable.CreateTable(); // Вставка спец SpecTable specTable = new SpecTable(specRows); specTable.CreateTable(); }