Esempio n. 1
0
        /// <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();
            }
        }
Esempio n. 2
0
      /// <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;
      }
Esempio n. 3
0
        /// <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);
        }