Revit链接文件中的操作

# Revit链接文件中的操作

链接磁盘上的文件
        private void LinkRvt(Document doc, string filePath) {
             using(var trans=new Transaction(doc))
             {
                 trans.Start("链接文件");
             	 FilePath path = new FilePath(filePath);
            	 RevitLinkOptions options = new RevitLinkOptions(false);
             	 LinkLoadResult result = RevitLinkType.Create(doc, path, options);
            	 var instance=	RevitLinkInstance.Create(doc, result.ElementId);
                 trans.Commit();
             }
     }
判断链接文件的状态

     private LinkedFileStatus GetLinkFileState(RevitLinkType type) {
           return  type.GetLinkedFileStatus();
       }
卸载已经链接的文件
       private void UnLoadLinkFile(RevitLinkType type) {
           //需要传一个回调函数
           type.Unload(new Callback());
       }

   public class Callback : ISaveSharedCoordinatesCallback {
       public SaveModifiedLinksOptions GetSaveModifiedLinksOption(RevitLinkType link) {
           return SaveModifiedLinksOptions.DoNotSaveLinks;
       }
   }
重新设置路径找不到的链接的路径

to do

编辑链接文件

结论:理论上做不到编辑链接文件,会报错。但是有一个迂回的方法:

  1. 先卸载链接文件
  2. 修改该文件,并保存
  3. 重新链接进来

代码

亮显链接文件中的元素

先说结论:没办法亮显链接文件中的元素。下面的代码可以正常运行,但是没有亮显的效果

       private void HighLightLinkElement() {
           var reff = _uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
           var elem = _doc.GetElement(reff) as RevitLinkInstance;
           if (elem != null) {
               var doc = elem.GetLinkDocument();
               var elems = new FilteredElementCollector(doc).OfClass(typeof(Wall)).ToList();
               _uidoc.Selection.SetElementIds(elems.Select(x=>x.Id).ToList());
           }
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值