我试图从revit文件中获取所有revit元素。我试图获取所有具有参数“编辑者”的元素。如何获取它,因为从其中获取所有元素。
FilteredElementCollector Fec = new FilteredElementCollector(revitDoc);
Parameter is giving null exception in some case.
FilteredElementCollector Fec = new FilteredElementCollector(revitDoc);
allElements.ForEach(element =>
{
Parameter parameter = <element.GetParameters("Edited by").FirstOrDefault();
string parameterValve = null;
if (parameter != null)
{
parameterValve = parameter.AsString();
}
elementModifiedInfo.Add(element, parameterValve);
});
参数在某些情况下会变为空。 怎么解决这个问题。
使用
FilteredElementCollector
绝对是正确的方法。 GetParameters 方法 返回一个列表。该列表可能为空。您还需要针对这种情况添加检查。
此外,如果不添加任何过滤条件,则无法检索所有元素。
FilteredElementCollector
需要至少一个过滤器。在这种情况下,一个明显的可能是 WhereElementIsNotElementType
,从过滤器中消除所有类型。
ElementParameterFilter
搜索特定参数值时可以显着提高性能。查看 Building Coder 示例,演示如何使用它: