Как добавить связь с файлом Revit
В Revit можно создать связь с другим файлом Revit в помощью команды Вставка > Связать с Revit.
А как можно сделать то же самое, но используя API?
Сначала я подумал, что может быть есть методы типа Link или Load для класса Document. К сожалению, они есть, но только с помощью них можно связать лишь с DWG, DGN и т.д. Но никак ни с файлом Revit.
А метода Document.Create.NewRevitLinkInstance не существует.
Однако, я покопался еще и нашел метод RevitLinkInstance.Create. Но тут другая проблема. В качестве аргумента нужно передать ElementId, который является идентификатором для экземпляра класса RevitLinkType. А как его создать?
Тут мне в голову пришло, что может быть можно использовать для этого метод LoadFamilySymbol, но в документации сказано, что его можно лишь использовать для загрузки файлов семейств rfa.
Поискав получше, я нашел метод RevitLinkType.Create. Хорошо. Но в метод необходимо передать ModelPath в качестве одного из аргументов. Но ModelPath никак не создать. Ни с помощью конструктора, ни с помощью Application.Create или Document.Create. Так все же как его создать?
К счастью, я наткнулся на класс ModelPathUtils, в котором есть метод ModelPathUtils.ConvertUserVisiblePathToModelPath. Вот и все!
Вот код, который получился в итоге:
- ModelPath mp = ModelPathUtils.ConvertUserVisiblePathToModelPath(
- @"D:\Wall.rvt");
- RevitLinkOptions rlo = new RevitLinkOptions(false);
- var linkType = RevitLinkType.Create(RevitDoc, mp, rlo);
- var instance = RevitLinkInstance.Create(RevitDoc, linkType.ElementId);
Источник: http://adndevblog.typepad.com/aec/2015/02/revitapi-how-to-insert-revit-link-file.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=1895
Опубликовано 25.02.2015