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; }