private static void CreateLayoutCollectionFromBlockNames(Transaction trans, LayoutModelCollection layoutModelCollection, string[] blockNames) { DynamicBlockFinder dynamicBlocks = new DynamicBlockFinder(layoutModelCollection) { BlockNameToSearch = blockNames }; dynamicBlocks.GetLayoutsWithDynBlocks(trans); layoutModelCollection.DeleteEmptyLayout(); var blocksList = layoutModelCollection.LayoutModels.Select(x => x.BlocksObjectId).ToArray(); if (blocksList.Length == 0) { return; } layoutModelCollection.SetPrintModels(trans); layoutModelCollection.SetLayoutPlotSetting(); }
public void CreateTransmitallFromLayout() { string fileName = (string)Application.GetSystemVariable("DWGNAME"); string path = (string)Application.GetSystemVariable("DWGPREFIX"); string allPath = Path.Combine(path, fileName); Active.Database.SaveAs(allPath, true, DwgVersion.Current, Active.Database.SecurityParameters); List <Sheet> sheets = new List <Sheet>(); LayoutModelCollection layoutModelCollection = new LayoutModelCollection(); layoutModelCollection.ListLayouts("Model"); string[] blockNames = { "ФорматM25", "Формат" }; using (Transaction trans = Active.Database.TransactionManager.StartTransaction()) { DynamicBlockFinder dynamicBlocks = new DynamicBlockFinder(layoutModelCollection) { BlockNameToSearch = blockNames }; dynamicBlocks.GetLayoutsWithDynBlocks(trans); layoutModelCollection.DeleteEmptyLayout(); var blocksList = layoutModelCollection.LayoutModels.Select(x => x.BlocksObjectId).ToArray(); if (blocksList.Length == 0) { return; } layoutModelCollection.SetPrintModels(trans); layoutModelCollection.SetLayoutPlotSetting(); trans.Commit(); } using (Transaction trans = Active.Database.TransactionManager.StartTransaction()) { string[] viewNames = { "Форма 3 ГОСТ Р 21.1101-2009 M25", "Форма 3 ГОСТ Р 21.1101-2009" }; var packageCreator = new PrintPackageCreator(layoutModelCollection, viewNames); LayoutTreeView window = new LayoutTreeView(packageCreator.PrintPackageModels); Application.ShowModalWindow(window); if (!window.isClicked) { return; } var printPackages = window._printPackages; packageCreator.PrintPackageModels = printPackages; packageCreator.PublishAllPackages(); var blockIds = printPackages.SelectMany(x => x.Layouts.Select(y => y.BlocksObjectId)).ToArray(); Utils utils = new Utils(); GetSheetsFromBlocks(Active.Editor, sheets, trans, new ObjectIdCollection(blockIds)); utils.CreateJsonFile(sheets); } }