Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
            }
        }