BIM建筑网
更专业的BIM技术学习网站!


Revit二次开发_载入族前对族进行检查

免费的Ai上线啦!
BIM建筑网自主研发,你想要Ai功能都在这里!
Ai·提升效率 技术答疑

       前段时间想到一个点,为了保证项目数据的统一,应当禁止载入未知来源的族,所有可以载入的族应由管理员审核通过存放在企业族库内。那么就需要Revit在族载入前对族进行检查,匹配路径或其他信息。其实严格的来讲还需要禁止编辑族,以及在拒绝载入后需要向管理员反馈信息。这里通过二次开发先简单实现载入族时进行对族进行自检的这么一个简单的功能,后面如果有机会希望可以对整个功能进行深化。

       思路是通过API中FamilyLoadingIntoDocument这个事件实现这个功能。当族载入的时候,触发事件,判断族是否满足条件,满足则允许载入,否则取消载入族的事务。判断的方法有很多,我这里检查的是族的路径以及检查族文件内的一个参数,实际应用的时候可以选择更加合适的一些条件。

以下代码:

 public class Class1 : IExternalApplication
 {
 public Result OnStartup(UIControlledApplication application)
 {
 //注册事件
 application.ControlledApplication.FamilyLoadingIntoDocument += new EventHandler<FamilyLoadingIntoDocumentEventArgs>(checkFamily);
 return Result.Succeeded;
 }

 public Result OnShutdown(UIControlledApplication application)
 {
 //注销事件
 application.ControlledApplication.FamilyLoadingIntoDocument -= new EventHandler<FamilyLoadingIntoDocumentEventArgs>(checkFamily);
 return Result.Succeeded;
 }

 private void checkFamily(object sender, FamilyLoadingIntoDocumentEventArgs e)
 {
 //获取族的存放路径
 string familyPath = e.FamilyPath;
 if (familyPath != @"D:Test")
 {
 e.Cancel();
 TaskDialog.Show("错误", "禁止载入未审核的族,请联系管理员XXX");
 }
 else
 {
 //获取族的文档
 Document familyDoc = e.Document.Application.OpenDocumentFile(familyPath + "//" + e.FamilyName + ".rfa");
 //创建族管理器
 FamilyManager familyManager = familyDoc.FamilyManager;
 //获取族类型
 FamilyType familyType = familyManager.CurrentType;
 if (familyType == null)
 {
 familyType = familyManager.NewType("标准");
 }
 //获取参数
 FamilyParameter familyParameter = familyManager.get_Parameter("测试参数");
 //判断
 if (familyParameter == null || familyType.AsString(familyParameter) != "允许载入")
 {
 if (e.Cancellable)
 {
 e.Cancel();
 TaskDialog.Show("错误", "禁止载入未审核的族,请联系管理员XXX");
 }
 }
 familyDoc.Close();
 } 
 }
 }

微信公众号:xuebim
关注建筑行业BIM发展、研究建筑新技术,汇集建筑前沿信息!
← 微信扫一扫,关注我们+
赞(0) 打赏
BIM建筑网 » Revit二次开发_载入族前对族进行检查

评论 抢沙发

评论前必须登录!

 

BIM建筑网,更专业的BIM技术学习网站!

关注建筑新动态,分享建筑新技术

联系我们关于BIM建筑网

觉得文章有用就打赏一下小编吧

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

扫码登录

微信「关注」,快捷登录
扫码关注后会自动登录
注册登录代表您已同意《用户许可协议》
账号登录 | 其他登录

|登录

找回密码

|账号登录注册