/// <summary> /// Создание таблицы спецификации блоков, с запросом выбора блоков у пользователя. /// Таблица будет вставлена в указанное место пользователем в текущем пространстве. /// </summary> public void CreateTable() { // Выбор блоков SelBlocks.Select(); using (var t = Doc.TransactionManager.StartTransaction()) { try { // Фильтрация блоков Items = SpecItem.FilterSpecItems(this); // Группировка элементов Groups = SpecGroup.Grouping(this); // Создание таблицы Table table = getTable(); // Вставка таблицы insertTable(table); } catch (Exception ex) { Logger.Log.Error(ex, "SpecTable.CreateTable()."); Inspector.AddError(ex.Message); } t.Commit(); } }
/// <summary> /// Фильтр блоков. И составление списка всех элементов (1 блок - 1 элемент). /// </summary> public static List<SpecItem> FilterSpecItems(SpecTable specTable) { List<SpecItem> items = new List<SpecItem>(); // Обработка блоков и отбор блоков монолитных конструкций foreach (var idBlRef in specTable.SelBlocks.IdsBlRefSelected) { SpecItem specItem = new SpecItem(idBlRef); if (specItem.Define(specTable)) { items.Add(specItem); } } if (items.Count == 0) { throw new Exception("Не определены блоки монолитных конструкций."); } else { specTable.Doc.Editor.WriteMessage($"\nОтобрано блоков для спецификации: {items.Count}\n"); } return items; }
/// <summary> /// Фильтр блоков. И составление списка всех элементов (1 блок - 1 элемент). /// </summary> public static List <SpecItem> FilterSpecItems(SpecTable specTable) { List <SpecItem> items = new List <SpecItem>(); // Обработка блоков и отбор блоков монолитных конструкций foreach (var idBlRef in specTable.SelBlocks.IdsBlRefSelected) { SpecItem specItem = new SpecItem(idBlRef); if (specItem.Define(specTable)) { items.Add(specItem); } } if (items.Count == 0) { throw new Exception("Не определены блоки монолитных конструкций."); } else { specTable.Doc.Editor.WriteMessage($"\nОтобрано блоков для спецификации: {items.Count}\n"); } return(items); }