Я пытаюсь загрузить файлы Revit с помощью loadrevitfamily() и хочет, чтобы пользователь помещал определенный семейный символ в текущий проект в Revit. мой код выглядит следующим образом:Revit 2014 API PromptForFamilyInstancePlacement метод
public void loadRevitFamily(String f)
{
//Filename without extension
String fname = Path.GetFileNameWithoutExtension(f);
Family family = null;
FamilySymbol familyFound = null;
Transaction t = new Transaction(s_document, "Test");
t.Start();
s_document.LoadFamily(f, out family);
t.Commit();
FilteredElementCollector familyCollector = new FilteredElementCollector(s_document);
familyCollector.OfClass(typeof(FamilySymbol));
foreach (FamilySymbol sym in familyCollector)
{
if (sym.Family.Name == fname)
{
familyFound = sym;
}
}
UIDocument uidoc = new UIDocument(s_document);
uidoc.PromptForFamilyInstancePlacement(familyFound);
}
, но это не позволяет мне помещать символ. Любая помощь пожалуйста.
Вы видите какие-либо сообщения об ошибках и другую полезную информацию для отладки? Пожалуйста, предоставьте дополнительную информацию о вашей проблеме, чтобы другие могли помочь. –
Нет ошибки. Создайте код и запустите Revit 2014. Затем я загружаю revit-файл с внешнего сайта и загружаю загрузочный файл (loadrevitfamily()), который загружает загруженные файлы в мой список перетаскивания Drag n , и после этого я просто на Revit проекта. По какой-то причине функция PromptForFamilyInstancePlacement не работает. –
Можете ли вы добавить что-то к своему коду между циклом foreach и вызовом PromptForFamilyInstancePlacement, чтобы гарантировать, что familyFound не является нулевым? Что-то вроде if (familyFound == null) {TaskDialog.Show («Ошибка», «familyFound is null»); } –