0

我正在尝试使用 loadrevitfamily() 加载 Revit 文件,并希望用户在 Revit 中的当前项目上放置特定的族符号。我的代码如下:

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);
    }   

但它不允许我放置符号。请提供任何帮助。

4

1 回答 1

0

我相信这与您尝试放置的家庭的托管方式有关(面、工作平面、垂直面等)。在 Revit 2014 及更早版本中,PromptForFamilyInstancePlacement 不允许用户更改托管方法、更改视图等。尝试放置一个未托管的族,看看是否得到相同的结果。你也可以看看这个解决方法。

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

于 2015-06-20T14:28:30.320 回答