Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过请求门的hostID返回空指针_C#_Nullreferenceexception_Revit_Revit Api - Fatal编程技术网

C# 通过请求门的hostID返回空指针

C# 通过请求门的hostID返回空指针,c#,nullreferenceexception,revit,revit-api,C#,Nullreferenceexception,Revit,Revit Api,我有以下代码片段: var familyInstanceFilter = new ElementClassFilter(typeof(FamilyInstance)); var doorsCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_Doors); var doorInstancesFilter = new LogicalAndFilter(familyInstanceFilter, doorsCategoryfil

我有以下代码片段:

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();
var familyInstanceFilter=newelementclassfilter(typeof(FamilyInstance));
var doorsCategoryfilter=新元素类别过滤器(内置类别.OST_Doors);
var DoorInstanceFilter=新逻辑AlandFilter(familyInstanceFilter、doorsCategoryfilter);
列表门=新过滤器删除收集器(doc)
.其中通过(门实例过滤器)
.ToList();
FamilyInstance门FI=(FamilyInstance)门[0];
ElementId wallid=doorFI.Symbol.get_参数(内置参数.HOST_ID_参数)
.AsElementId();
我试图获取包含门的墙的ID。但是,如果我运行此代码,那么行
ElementId wallid=doorFI.Symbol.get_参数(BuiltInParameter.HOST_ID_PARAM).AsElementId()引发空指针异常。我已经检查了相关的门是否确实位于墙内,并且应该有一个父对象

我运行的测试场景是一个简单的两个房间,两个房间之间有一扇门的测试用例

注意,我知道空引用表达式是什么,我知道doorFI.Symbol.get_参数(BuiltInParameter.HOST_ID_PARAM)返回null,我想知道它如何/为什么返回null。
如果还有什么不清楚的地方,请随时发表评论,以便我可以改进此问题。

我相信您不需要符号:

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

不应
(家庭立场)门[0]be<代码>(家庭立场)门[0]?是的,你是对的,我更改了它。可能与否重复。它不是,我知道什么是nullreferenceException,以及它是如何导致的,显然是Symbol。get_参数(BuiltInParameter.HOST_ID_PARAM)为null,但我想知道为什么/如何;当门需要parrent对象时,s为null。正如我们所看到的,@Augusto Goncalves能够以一种完全没有意义的方式回答这个问题,而这个问题应该是重复的。是的,没错!符号是门类型,而不是门实例。