2014-10-07 45 views
0

我嘗試使用loadrevitfamily()加載Revit文件,並希望用戶在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

您是否看到任何錯誤消息或其他有用的調試信息?請提供有關您的問題的更多信息,以便其他人可以幫助 – 2014-10-07 01:40:07

+0

沒有error.i生成代碼並運行Revit 2014.然後我從外部網站下載revit文件並使用loadrevitfamily()將下載的文件加載到我的Drag n Drop列表中。之後我只是在Revit項目上。 PromptForFamilyInstancePlacement由於某種原因不起作用。 – 2014-10-07 02:55:07

+0

您可以在foreach循環和PromptForFamilyInstancePlacement調用之間添加一些代碼以確保familyFound不爲null?就像if(familyFound == null){TaskDialog.Show(「Error」,「familyFound is null」); } – 2014-10-08 03:57:31

回答