Revit二次开发 管道系统布置

本文介绍了在机电开发中如何利用Revit API进行管道系统配置,包括选择管道、获取弯头族信息、修改布管系统规则等操作。通过示例代码展示了如何创建和修改管道规则,以实现自定义的布管系统设置。此外,作者还分享了一个名为MagicTools的Revit插件,包含通用功能、土建、机电、审图和出图等功能,旨在提升BIM工程师的工作效率。插件下载链接和企鹅群号一并提供,供有需要的人士使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在机电开发的过程中,往往要用到管道布管系统配置相关的API,所以下面简单介绍一下管道系统配置,直接上代码:请添加图片描述
获取数据

//选择管道
            Reference selRef = uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
            Pipe selPipe = doc.GetElement(selRef) as Pipe;
            PipeType selPipeType = selPipe.PipeType;
            //已知的一个弯头FamilySymbol Id是我直接用lookup取的。示例使用
            FamilySymbol nwElowsFS = doc.GetElement(new ElementId(211606)) as FamilySymbol;
            //得到布管系统信息
            RoutingPreferenceManager routing = selPipeType.RoutingPreferenceManager;

            #region 获取弯头族信息
            //示例得到弯头的族类型
            RoutingPreferenceRule routingRule = routing.GetRule(RoutingPreferenceRuleGroupType.Elbows, 0);
            //获取弯头设置的familysymbol
            FamilySymbol mid = doc.GetElement(routingRule.MEPPartId) as FamilySymbol;
            PrimarySizeCriterion primarySize = routingRule.GetCriterion(0) as PrimarySizeCriterion;//获取弯头的尺寸设置值
            double minSize = primarySize.MinimumSize;
            double maxSize = primarySize.MaximumSize;
            MessageBox.Show($"族名称{mid.FamilyName} 族类型名称{mid.Name}, 最小尺寸{minSize * 304.8} , 最大尺寸{maxSize * 304.8}");
            #endregion

其中RoutingPreferenceRuleGroupType是一个枚举值,对应参数的枚举值可以自己去试一下就知道了。每一个RoutingPreferenceRule参数代表着一行数据。
下面是添加一行自己定义的规则的代码

 Transaction createTrans = new Transaction(doc, "改变管道系统里面的数值");
            createTrans.Start();
            //设置尺寸
            PrimarySizeCriterion nwPriSize = new PrimarySizeCriterion(25 / 304.8, 150 / 304.8);
            //创建新的布管规则
            RoutingPreferenceRule nwRule = new RoutingPreferenceRule(nwElowsFS.Id, "新建");
            //添加尺寸信息
            nwRule.AddCriterion(nwPriSize);
            //添加新的布管规则
            routing.AddRule(RoutingPreferenceRuleGroupType.Elbows, nwRule, 0);
            createTrans.Commit();

下面是修改第一个规则的族为自己想要的族类型

Transaction replaceTrans = new Transaction(doc, "替换");
            replaceTrans.Start();
            //创建新的布管规则
            RoutingPreferenceRule nwRule = new RoutingPreferenceRule(nwElowsFS.Id, "替换");
            //添加尺寸信息
            nwRule.AddCriterion(primarySize);
            //添加新的布管规则
            routing.AddRule(RoutingPreferenceRuleGroupType.Elbows, nwRule, 0);
            routing.RemoveRule(RoutingPreferenceRuleGroupType.Elbows, 1);
            replaceTrans.Commit();

以上就是管道系统布置的介绍,希望能帮到你。
分享一个自制Revit插件,本人是个BIM工程师,该插件是根据自己做工程一些经验和对插件功能的频繁度,自己整合开发功能,初衷是提高效率。
目前MagicTools的功能包括通用功能、土建、机电、审图、出图功能。还有好多功能都想做,如果有好的需求也可以提,后续有新增继续增加上去,努力弄个实用的插件,希望能帮到真正有需要的BIMer。
如有需要的可以加企鹅群:630552940

插件下载地址,免费试用
链接:https://pan.baidu.com/s/1GDnHeWwZ5r_HrnT3Mo7twA?pwd=jhlt
提取码:jhlt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值