public void RevitLinksInfo() { UIDocument uidoc = this.ActiveUIDocument; Document doc = uidoc.Document; //select all the link instances FilteredElementCollector collector = new FilteredElementCollector(doc); collector.OfClass(typeof(RevitLinkInstance)); //create a string to store the results System.Text.StringBuilder linkedDocs = new System.Text.StringBuilder(); foreach (Element elem in collector) { try{ //link instance RevitLinkInstance instance = elem as RevitLinkInstance; //link type ElementId rvtLinkTypeId = instance.GetTypeId(); RevitLinkType rvtLinkType = doc.GetElement(rvtLinkTypeId) as RevitLinkType; //Loaded/Unloaded/Locally Unloaded string linkStatus = rvtLinkType.GetExternalFileReference().GetLinkedFileStatus().ToString(); //Overlay or Attachment Parameter referenceType = rvtLinkType.get_Parameter(BuiltInParameter.RVT_LINK_REFERENCE_TYPE); //Get File Path ExternalFileReference externalLink = rvtLinkType.GetExternalFileReference(); string path = ModelPathUtils.ConvertModelPathToUserVisiblePath(externalLink.GetAbsolutePath()); linkedDocs.AppendLine(String.Format("{0},{1},{2},{3},{4} ",rvtLinkType.Name,linkStatus,referenceType.AsValueString(),rvtLinkType.PathType.ToString(), path)); } catch(Exception ex){ TaskDialog.Show("error", ex.Message); } } // TaskDialog.Show("Revit Links in Document", linkedDocs.ToString()); using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Temp\RevitLinks.txt")) { sw.WriteLine(linkedDocs); } TaskDialog.Show("Done", "The file has been saved to C:\\Temp\\RevitLinks.txt"); }