public static void Plan2ImportLayerFilters()
        {
            var filePath = GetDwgName();

            if (string.IsNullOrEmpty(filePath))
            {
                return;
            }

            if (!System.IO.File.Exists(filePath))
            {
                return;
            }

            _AcAp.Document        doc    = _AcAp.Application.DocumentManager.MdiActiveDocument;
            _AcEd.Editor          ed     = doc.Editor;
            _AcDb.Database        destDb = doc.Database;
            _AcLm.LayerFilterTree lft    = destDb.LayerFilters;
            using (_AcDb.Database srcDb = new _AcDb.Database(false, false))
            {
                srcDb.ReadDwgFile(filePath, _AcDb.FileOpenMode.OpenForReadAndAllShare, false, String.Empty);
                ImportNestedFilters(srcDb.LayerFilters.Root, lft.Root, srcDb, destDb, false, ed);
            }
            destDb.LayerFilters = lft;
        }
        public void CreateLayerFilter()
        {
            _AcAp.Document doc = _AcAp.Application.DocumentManager.MdiActiveDocument;
            _AcDb.Database db  = doc.Database;
            _AcEd.Editor   ed  = doc.Editor;

            _AcLm.LayerFilterTree       filterTree = db.LayerFilters;
            _AcLm.LayerFilterCollection filters    = filterTree.Root.NestedFilters;
            // Lets find out about the root filter
            ed.WriteMessage(String.Format("\n(Root) Name : {0} Expr : {1}", db.LayerFilters.Root.Name,
                                          db.LayerFilters.Root.FilterExpression)
                            );
            // Lets find out about all the filters
            foreach (_AcLm.LayerFilter f in filters)
            {
                ed.WriteMessage(String.Format("\nName : {0} Expr : {1}", f.Name,
                                              f.FilterExpression)
                                );
            }
            // Lets find out about the current filter
            if (db.LayerFilters.Current != null)
            {
                ed.WriteMessage(String.Format("\n(Current) Name : {0} Expr : {1}",
                                              db.LayerFilters.Current.Name,
                                              db.LayerFilters.Current.FilterExpression)
                                );
            }

            // Create and add a new layer filter
            _AcLm.LayerFilter layerFilter = new _AcLm.LayerFilter();
            layerFilter.Name             = "MyLyFilter";
            layerFilter.FilterExpression = "NAME == \"*Test*\"";
            filters.Add(layerFilter);

            // Set the changed layer filters tree to the database
            db.LayerFilters = filterTree;
        }