Мы пытаемся получить список и иерархию всех связанных внешних файлов. В настоящий момент мы пропустили следующий код:Как получить список и иерархию связанных и подзаголовнных файлов Revit
FilteredElementCollector collectorI = new FilteredElementCollector(DocChild);
IList<Element> elemsI = collectorI.OfCategory(BuiltInCategory.OST_RvtLinks).OfClass(typeof(RevitLinkInstance)).ToElements();
foreach (Element eI in elemsI)
{
if (eI is RevitLinkInstance)
{
RevitLinkInstance InstanceType = eI as RevitLinkInstance;
RevitLinkType type = DocChild.GetElement(InstanceType.GetTypeId()) as RevitLinkType;
TaskDialog.Show("Debug", "IsNestedLink=" + type.IsNestedLink.ToString() + " IsLinked=" + DocChild.IsLinked.ToString());
if (!type.IsNestedLink)
{
TaskDialog.Show("Debug", "Children=" + InstanceType.GetLinkDocument().PathName.ToString());
}
}
}
Нам удалось получить список всех связанных файлов, но нет иерархии. Мы не знаем, какой файл является дочерним элементом какого родителя.
Это структура Link мы пытаемся получить:
Благодарим вас за отличный ответ. Это помогло лисице значительную часть моей проблемы, но у меня осталась еще одна проблема: как получить полное имя пути для всех экземпляров. В некоторых случаях один и тот же файл повторно используется два раза в иерархии ссылок Revit. С уважением, – Philippe
, для этого вам потребуется имя PathName объекта Document из связанного файла. Он должен работать –
Извините, но в RevitLinkType не удается получить доступ к имени только для имени пути. А в сборке AttachmentType всегда оверлей .. – Philippe