コード例 #1
0
        public static List <IVisualBlock> LoadVisuals(string file, Func <string, string> filter)
        {
            var visualBlocks = new List <IVisualBlock>();

            using var dbTemp = new Database(false, true);
            dbTemp.ReadDwgFile(file, FileOpenMode.OpenForReadAndReadShare, true, string.Empty);
            using (var t = dbTemp.TransactionManager.StartTransaction())
            {
                var bt = (BlockTable)dbTemp.BlockTableId.GetObject(OpenMode.ForRead);
                foreach (var idBtr in bt)
                {
                    var btr   = (BlockTableRecord)idBtr.GetObject(OpenMode.ForRead);
                    var group = filter(btr.Name);
                    if (@group != null)
                    {
                        var visualBl = new VisualBlock(btr)
                        {
                            File = file, Group = @group
                        };
                        visualBlocks.Add(visualBl);
                    }
                }

                t.Commit();
            }

            var alpha = NetLib.Comparers.AlphanumComparator.New;

            visualBlocks.Sort((v1, v2) => alpha.Compare(v1.Name, v2.Name));

            return(visualBlocks);
        }
コード例 #2
0
ファイル: VisualInsertBlock.cs プロジェクト: vildar82/AcadLib
 public static List<IVisualBlock> LoadVisuals(string file, Predicate<string> filter)
 {
     var visualBlocks = new List<IVisualBlock>();
     using (var dbTemp = new Database(false, true))
     {
         dbTemp.ReadDwgFile(file, FileOpenMode.OpenForReadAndReadShare, true, "");
         using (var t = dbTemp.TransactionManager.StartTransaction())
         {
             var bt = dbTemp.BlockTableId.GetObject(OpenMode.ForRead) as BlockTable;
             foreach (var idBtr in bt)
             {
                 var btr = idBtr.GetObject(OpenMode.ForRead) as BlockTableRecord;
                 if (filter(btr.Name))
                 {
                     var visualBl = new VisualBlock(btr);
                     visualBl.File = file;
                     visualBlocks.Add(visualBl);
                 }
             }
             t.Commit();
         }
         var alpha = Comparers.AlphanumComparator.New;
         visualBlocks.Sort((v1, v2) => alpha.Compare(v1.Name, v2.Name));
     }
     return visualBlocks;
 }