Revit二开–删除所有导入cad文件
在Revit中cad文件的实例可以被删除,而生成cad连接实例依据的cad样板在revit里面无法删除。删除所有的cad实例之后,在 可见性/图形替换 对话框里面cad模板文件依然显示,仍然占用revit文件的存储空间。
删除方法:创建两个过滤器 一个是 importinstance 的filter ,另一个是 cadlinktype的过滤器。
代码如下:
class Cmd_DeleteAllDwgs:IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var uiapp = commandData.Application;
var uidoc = uiapp.ActiveUIDocument;
var doc = uidoc.Document;
var sel = uidoc.Selection;
var collector = new FilteredElementCollector(doc);
///实例过滤器 用于过滤文档中的cad图纸实例
var elementfilter1 = new ElementClassFilter(typeof(ImportInstance));
///类型过滤器 用于过滤cad模板
var elementfilter2 = new ElementClassFilter(typeof(CADLinkType));
var Orfilter = new LogicalOrFilter(elementfilter1, elementfilter2);
var cadsCollector = collector.WherePasses(Orfilter);
doc.Invoke(m =>
{
doc.Delete(cadsCollector.Select(n => n.Id).ToList());
},"删除所有cad图纸");
return Result.Succeeded;
}
}