欢迎来到我的博客
Civil 3D开发与应用,欢迎加入QQ群:484124761
AutoCAD开发,欢迎加入QQ群:193522571

将曲面移至指定文件夹

参照这个帖子

简单修改了一下,

 

改成了扩展方法:

public static void MoveTo(this TinSurface sur,string folderName)
{
    var surfRootFolderId = Autodesk.Civil.DatabaseServices.FolderUtil.GetNonAlignmentRootFolder(RXClass.GetClass(typeof(Autodesk.Civil.DatabaseServices.Surface)), sur.Database);
    using (Transaction tr = sur.Database.TransactionManager.StartTransaction())
    {
        var surfRootFolder = (Folder)tr.GetObject(surfRootFolderId, OpenMode.ForWrite);
        Folder folder = null;
        foreach (ObjectId id in surfRootFolder.GetSubFolders())
        {
            var f = (Folder)tr.GetObject(id, OpenMode.ForRead);
            if (f.Name == folderName)
            {
                folder = f;
                folder.UpgradeOpen();
                break;
            }
        }
        if (folder == null)
            folder = (Folder)tr.GetObject(surfRootFolder.CreateFolder(folderName), OpenMode.ForWrite);
        if (sur.FolderId != folder.ObjectId)
            folder.AddEntity(sur.ObjectId);
        tr.Commit();
    }
}

 

 
 
 
posted @ 2024-04-10 10:21  david96007  阅读(20)  评论(0编辑  收藏  举报