加载或创建新的族实例时获取null

问题描述 投票:-1回答:2

在使用插件时,以下代码段一直存在问题:

doc.LoadFamilySymbol(@"[filepath here]", "[filename here]", out FamilySymbol symbol);
doc.Create.NewFamilyInstance(mid, symbol, d, GetLevelInformation(d), StructuralType.NonStructural);

据我在调试时所知道的,在我通过第一行之后,FamilySymbol变量符号为空。 middGetLevelInformation都可以工作并包含期望值,因此我怀疑问题出在第一行。

c# revit
2个回答
0
投票

LoadFamilySymbol method overloads,我看不到采用您指定的两个参数。要加载特定的家庭符号,您至少需要指定所需的家庭名称和家庭类型名称。您正在使用哪个版本的Revit?

要解决此问题,请查看大量可用的示例代码,例如,在Revit SDK示例和loading a family上的Building Coder主题组中。


0
投票

图我会为有类似问题的人更新,因为我确实为自己解决过。答案是,我试图在收集器中加载带有FamilyName参数而不是Name参数的Family。

此问题的解决方法是将x.Name更改为x.FamilyName,如下所示:

FilteredElementCollector collector = new FilteredElementCollector(doc);
            FamilySymbol symbol = collector.OfClass(typeof(FamilySymbol))
                .WhereElementIsElementType()
                .Cast<FamilySymbol>()
                .First(x => x.FamilyName == "[Family Name]");

有区别!感谢您的回答,杰里米。

© www.soinside.com 2019 - 2024. All rights reserved.