Revit api 加载族的坑:FamilySymbol偶尔载入失败

1、在Revit 中,如果需要把一个已存在的族改个名字,那只能把这个族SaveAs后,然后再Load

2、这其中如果使用LoadFamilySymbol时会有时load的不进去。

3、那么这时候需要检查下SaveAs下面是否存在与其他FamilySymbol同名的,如果同名那么载入失败的。这时候需要先LoadFamily。

 Family family2 = null;ToolCommon.LoadFileFamily(FamilyName, ref family2, m_Cmd.Apc.VersionNumber, m_Cmd.Doc);if (family2 != null){List list = new List();foreach (var item in family2.GetFamilySymbolIds().ToList()){FamilySymbol familySymbol = m_Cmd.Doc.GetElement(item) as FamilySymbol;if (familySymbol == null) continue;if (familySymbol.Name.Equals(FamilySymolName)){dafFamilySymbol = familySymbol;break;}list.Add(familySymbol);}if (dafFamilySymbol == null){dafFamilySymbol = list.FirstOrDefault();try{SysTransaction.TransStart(m_Cmd.Doc, "载入族");dafFamilySymbol.Family.Name = FamilyName;dafFamilySymbol.Name = FamilySymolName;var deleteIds = family.GetFamilySymbolIds().ToList().Where(m => m != dafFamilySymbol.Id).ToList();m_Cmd.Doc.Delete(deleteIds);SysTransaction.TransEnd();}catch (Exception){SysTransaction.RollBack();}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部