Тема: Импортировать фильтры слоев в чертеж

Как программно импортировать фильтры слоев в новые чертежи из других чертежей.
Autocad 2012 и выше

Дано.
Чертеж-1, в нем настроены фильтры слоев.

Задача.
Перенести все эти фильтры в другой Чертеж-2.

Решение
?
есть ли стандартные способы в самом автокаде?
если не получится прямой экспорт импорт фильтров из чертежа в чертеж средствами программирования, то может можно написать лисп, где хоть руками забивать все названия фильтров и входящие в него слои.

помогите если можете.
спасибо

Re: Импортировать фильтры слоев в чертеж

На лиспе можно сделать, но не получится увидеть вложенных фильтров. Увидим только верхний уровень.

Re: Импортировать фильтры слоев в чертеж

Попробовал на VB.NET, C# - импортирует без проблем
(для информации):

        [CommandMethod("infilt", CommandFlags.Session | CommandFlags.Modal)]
        public static void LFilterExportTest()
        {
            // set full path of container file that contains desired layer filter
            ImortLFilterFromFile(@"C:\Temp\WorkingDrawing.dwg")
        }

        public static void ImortLFilterFromFile(string sourcefile)
        {

            // Find the file containing layer filter to clone

            if (!File.Exists(sourcefile))
            {
                MessageBox.Show("Could not find file !");

                return;

            }

            DocumentCollection dm = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;

            Document doc = dm.MdiActiveDocument;

            Database db = doc.Database;

            Editor ed = doc.Editor;

            try
            {

                Document sourcedoc = dm.Open(sourcefile, false);

                // Needed for source document since the source database has to be active.

                dm.MdiActiveDocument = sourcedoc;

                Editor sourced = sourcedoc.Editor;

                Database sourcedb = sourcedoc.Database;

                using (Transaction sourcetr = sourcedb.TransactionManager.StartTransaction())
                {
                    BlockTable sourcebt = null;

                    sourcebt = sourcetr.GetObject(sourcedb.BlockTableId, OpenMode.ForRead) as BlockTable;

                    if (sourcedb.LayerFilters.Root==null)
                    {
                        MessageBox.Show("The Layer Filters aren't found !");

                        return;

                    }
                    
                    LayerFilterTree lt = sourcedb.LayerFilters;


                    using (DocumentLock doclock = doc.LockDocument())
                    {

                        using (Transaction tr = db.TransactionManager.StartTransaction())
                        {          

                            LayerFilterTree ltc = db.LayerFilters;

                            dm.MdiActiveDocument = doc;

                            db.LayerFilters = lt;
                      
                            sourcetr.Commit();

                            // Close source file without changes

                            sourcedoc.CloseAndDiscard();

                            tr.Commit();
                        }

                    }

                }
            }

            catch (System.Exception ex)
            {
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(string.Format("\n{0}\n{1}", ex.Message, ex.StackTrace));
            }
        }

[FONT=Arial]~'J'~[/FONT]

Re: Импортировать фильтры слоев в чертеж

fixo, Спасибо вам добрый человек, попробую ваш вариант

Re: Импортировать фильтры слоев в чертеж

Я проверял только в А2010  (для сведения)
Если что не так, дай знать :)

[FONT=Arial]~'J'~[/FONT]