2014-10-07 1 views
0

Я пытаюсь загрузить файлы 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); 
    } 

, но это не позволяет мне помещать символ. Любая помощь пожалуйста.

+0

Вы видите какие-либо сообщения об ошибках и другую полезную информацию для отладки? Пожалуйста, предоставьте дополнительную информацию о вашей проблеме, чтобы другие могли помочь. –

+0

Нет ошибки. Создайте код и запустите Revit 2014. Затем я загружаю revit-файл с внешнего сайта и загружаю загрузочный файл (loadrevitfamily()), который загружает загруженные файлы в мой список перетаскивания Drag n , и после этого я просто на Revit проекта. По какой-то причине функция PromptForFamilyInstancePlacement не работает. –

+0

Можете ли вы добавить что-то к своему коду между циклом foreach и вызовом PromptForFamilyInstancePlacement, чтобы гарантировать, что familyFound не является нулевым? Что-то вроде if (familyFound == null) {TaskDialog.Show («Ошибка», «familyFound is null»); } –

ответ

0

Я считаю, что это связано с тем, как устроена семья, которую вы пытаетесь разместить (лицо, рабочая плоскость, вертикальное лицо и т. Д.). В Revit 2014 & ранее PromptForFamilyInstancePlacement не позволяет пользователю изменять метод хостинга, изменять представления и т. Д. Попробуйте поместить недостроенное семейство и посмотреть, получится ли у вас тот же результат. Вы также можете взглянуть на это обходное решение.

http://thebuildingcoder.typepad.com/blog/2015/03/postrequestforelementtypeplacement.html

 Смежные вопросы

  • Нет связанных вопросов^_^