通过询问门的 hostID 返回 NULL 指针

NULL pointer is returned by asking for the hostID of a door

我有以下代码片段:

var familyInstanceFilter = new ElementClassFilter(typeof(FamilyInstance));
var doorsCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_Doors);
var doorInstancesFilter = new LogicalAndFilter(familyInstanceFilter, doorsCategoryfilter);
List<Element> doors = new FilteredElementCollector(doc)
    .WherePasses(doorInstancesFilter)
    .ToList();
FamilyInstance doorFI = (FamilyInstance)doors[0];
ElementId wallid = doorFI.Symbol.get_Parameter(BuiltInParameter.HOST_ID_PARAM)
    .AsElementId();

我尝试获取包含门的墙的 ID。但是,如果我 运行 这段代码,那么 ElementId wallid =doorFI.Symbol.get_Parameter(BuiltInParameter.HOST_ID_PARAM).AsElementId(); 行会抛出一个空指针异常。我已经检查过有问题的门确实在墙内,因此应该有一个父对象。

我正在 运行 的测试场景是一个简单的 2 个房间,中间有 1 个门的测试用例。

注意,我知道什么是null reference expcetion,我知道doorFI.Symbol.get_Parameter(BuiltInParameter.HOST_ID_PARAM) returns null,我想知道how/why它returns 空。 如果还有什么不清楚的地方,请随时发表评论,以便我改进这个问题。

我相信你应该不需要符号:

doorFI.get_Parameter(BuiltInParameter.HOST_ID_PARAM).AsElementId();