public List <Record> GetAllRecords(SymbolTableEnum table)
        {
            List <Record> recs = new List <Record>();

            var stId = GetSymbolTable(table);

            if (stId.IsNull)
            {
                return(recs);
            }

            using (var t = db.TransactionManager.StartTransaction())
            {
                var st = stId.GetObject(OpenMode.ForRead) as SymbolTable;
                foreach (var item in st)
                {
                    var stRec = item.GetObject(OpenMode.ForRead) as SymbolTableRecord;
                    if (!stRec.IsDependent)
                    {
                        Record rec = new Record(stRec.Name);
                        recs.Add(rec);
                    }
                }
                t.Commit();
            }
            return(recs);
        }
        public ObjectId GetSymbolTable(SymbolTableEnum table)
        {
            switch (table)
            {
            case SymbolTableEnum.Blocks:
                return(db.BlockTableId);

            case SymbolTableEnum.Layers:
                return(db.LayerTableId);

            default:
                throw new Exception($"Символьная таблица не определена - {table}");
            }
        }
        public void RenameRecords(List <Record> renamedRecords, SymbolTableEnum table)
        {
            if (renamedRecords.Count == 0)
            {
                return;
            }

            using (var t = db.TransactionManager.StartTransaction())
            {
                var stId = GetSymbolTable(table);
                var st   = stId.GetObject(OpenMode.ForRead) as SymbolTable;
                foreach (var item in renamedRecords)
                {
                    item.Error = string.Empty;
                    string tableName = st.GetRXClass().Name;
                    if (st.Has(item.Name))
                    {
                        if (st.Has(item.Rename))
                        {
                            item.Error = $"Переименованное имя уже есть в таблице";
                        }
                        else
                        {
                            if (IsValidName(item.Rename))
                            {
                                var rec = st[item.Name].GetObject(OpenMode.ForWrite) as SymbolTableRecord;
                                rec.Name = item.Rename;
                            }
                            else
                            {
                                item.Error = $"Недопустимое имя";
                            }
                        }
                    }
                    else
                    {
                        item.Error = $"Записи с таким именем нет в таблице";
                    }
                }
                t.Commit();
            }
        }