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);
}
但它不允许我放置符号。请任何帮助。
您是否看到任何错误消息或其他有用的调试信息?请提供有关您的问题的更多信息,以便其他人可以帮助 – 2014-10-07 01:40:07
没有error.i生成代码并运行Revit 2014.然后我从外部网站下载revit文件并使用loadrevitfamily()将下载的文件加载到我的Drag n Drop列表中。之后我只是在Revit项目上。 PromptForFamilyInstancePlacement由于某种原因不起作用。 – 2014-10-07 02:55:07
您可以在foreach循环和PromptForFamilyInstancePlacement调用之间添加一些代码以确保familyFound不为null?就像if(familyFound == null){TaskDialog.Show(“Error”,“familyFound is null”); } – 2014-10-08 03:57:31