[CommandMethod("BTest", CommandFlags.Session)]
public void BTest()
{
System.IO.FileInfo[] files = null;
System.IO.DirectoryInfo rootDir = new System.IO.DirectoryInfo(@"d:\BTest");
files = rootDir.GetFiles("*.dwg");
if (files.Length == 0) return;
foreach (System.IO.FileInfo file in files) {
// Работа с БД dwg-файла без открытия файла в окне автокада
using (Database dwgDB = new Database(false, true)) {
dwgDB.ReadDwgFile(file.FullName, System.IO.FileShare.ReadWrite, false, "");
//Далее манипуляции с базой данных чертежа
}
// Если файл все же понадобилось открыть
if (true) {
Document activeDoc = Application.DocumentManager.MdiActiveDocument;
//Активный файл не должен быть безымянным
if (Convert.ToInt32(Application.GetSystemVariable("dwgtitled")) == 0) return;
Document dwgFile = Application.DocumentManager.Open(file.FullName, false);
Application.DocumentManager.MdiActiveDocument = dwgFile;
if (Application.DocumentManager.MdiActiveDocument != dwgFile) return;
using (DocumentLock doclock = dwgFile.LockDocument()) {
//Далее запросы пользователю и т.п. в активном документе
Editor ed = dwgFile.Editor;
PromptEntityOptions options = new PromptEntityOptions("\nВыберите однострочный текст ");
options.SetRejectMessage("\nОшибочный выбор. Это не однострочный текст");
options.AddAllowedClass(typeof(DBText), true);
PromptEntityResult pEResult = ed.GetEntity(options);
if (pEResult.Status == PromptStatus.OK) {
ed.WriteMessage("\nOK!");
}
}
Application.DocumentManager.MdiActiveDocument = activeDoc;
dwgFile.CloseAndDiscard();
}
}
}