Revit API导入尺寸查找表至管道附件/卫生器具族报错求助
问题解决:Revit API导入尺寸查找表CSV到Pipe Accessory/Plumbing Fixture族
问题场景
使用以下C#代码尝试将loookuptabledata.csv导入不同族时,仅“Pipe Fitting”族可成功导入,“Pipe Accessory”或“Plumbing Fixture”族会抛出空引用异常:
Document DstnctFamEdt = actvDoc.EditFamily(DstnctFam); FamilySizeTableManager fstm = FamilySizeTableManager.GetFamilySizeTableManager(DstnctFamEdt,DstnctFamEdt.OwnerFamily.Id);
错误提示:
lookupTableResult Exception: System.NullReferenceException: Object reference is not set to an instance object.
手动导入该CSV到这类族时,Revit 2022无报错。
可行解决方案
1. 修正尺寸表管理器的获取逻辑
原代码中第二个参数使用DstnctFamEdt.OwnerFamily.Id有误,OwnerFamily指向的是项目中的族实例,而非当前编辑的族文档内的族对象。应从编辑文档中直接获取族ID:
Document DstnctFamEdt = actvDoc.EditFamily(DstnctFam); Family editedFamily = DstnctFamEdt.OwnerFamily; FamilySizeTableManager fstm = FamilySizeTableManager.GetFamilySizeTableManager(DstnctFamEdt, editedFamily.Id); // 先校验管理器实例再执行导入 if (fstm != null) { fstm.ImportLookupTable(@"你的CSV文件路径\loookuptabledata.csv"); DstnctFamEdt.Save(); DstnctFamEdt.Close(); }
2. 提前初始化族的尺寸表结构
部分族类型默认未初始化尺寸查找表相关结构,手动导入时Revit会自动处理,但API调用需显式触发初始化:
Document DstnctFamEdt = actvDoc.EditFamily(DstnctFam); Family editedFamily = DstnctFamEdt.OwnerFamily; // 检查族是否已支持尺寸表,未支持则创建空表 if (!editedFamily.HasSizeTable) { SizeTableDefinition.Create(DstnctFamEdt, editedFamily.Id); } // 再次获取管理器并执行导入 FamilySizeTableManager fstm = FamilySizeTableManager.GetFamilySizeTableManager(DstnctFamEdt, editedFamily.Id); if (fstm != null) { fstm.ImportLookupTable(@"你的CSV文件路径\loookuptabledata.csv"); DstnctFamEdt.Save(); DstnctFamEdt.Close(); }
3. 校验族编辑状态与类别适配
确保族编辑文档处于有效状态,并针对特定族类别做适配:
Document DstnctFamEdt = actvDoc.EditFamily(DstnctFam); if (DstnctFamEdt == null) return; Family editedFamily = DstnctFamEdt.OwnerFamily; Category cat = editedFamily.Category; if (cat == null) return; // 针对Pipe Accessory和Plumbing Fixture族做特殊校验 var targetCats = new List<ElementId> { new ElementId(BuiltInCategory.OST_PipeAccessory), new ElementId(BuiltInCategory.OST_PlumbingFixtures) }; if (!targetCats.Contains(cat.Id)) return; // 后续初始化与导入逻辑同前
内容的提问来源于stack exchange,提问作者Fawzi Masri
相关产品推荐
相关产品推荐

