- A+
所属分类:revit
最近,在做管道连接的时候,生成阀门时,当即获取阀门的Connector时候,取到的结果为空。代码片断如下:
using (Transaction ts = new Transaction(m_Doc, "生成阀门"))
{
ts.Start();
fi = CreaetFamilyInstance(m_Doc, "闸阀", diameter.ToString(), Origin, 0);
ConnectorManager cm = fi.MEPModel.ConnectorManager;
ts.Commit();
}
但是,当阀门生成后,用RevitLookUp查看阀门,其ConnectorManager却是非空的。
反复查找问题的过程中,还发现了一个奇怪的现象,只要文档中已经放置有至少一个阀门的时候,运行上面代码后,cm是非空的。
经过以上分析,基本上可以得到一个结论,就是当文档中没有阀门的时候,生成阀门后要先提交事务,然后才能获取其的ConnectorManager。
把代码修改如下:
using (Transaction ts = new Transaction(m_Doc, "生成阀门"))
{
ts.Start();
fi = CreaetFamilyInstance(m_Doc, "闸阀", diameter.ToString(), Origin, 0);
ts.Commit();
}
ConnectorManager cm = fi.MEPModel.ConnectorManager;
果然,在这种情况下,无论文档中原来是否有阀门,cm都可以取到ConnectorManager。
这也说明在Revit中,某些族实例生成后,在事务提交之前,其的某些属性是不全的。
历史上的今天:
- 2024: 希沃怎么导出为ppt?
- 2024: pr瘦脸插件安装教程
- 2024: cdr缩略图无法显示该怎么解决?
- 2024: cad线型不显示怎么让其显示
- 2024: cad选择集怎么关闭呢?

自学设计网
微信扫一扫领取设计学习资料/本站会员