Revit机电二次开发之如何打断机电管线

本文介绍了在Revit机电二次开发中,如何利用C# API实现打断Duct、Pipe和CableTray等机电管线。由于Revit API没有直接提供打断功能,开发者采取了复制管件并缩短的间接方法,确保与原有管路系统的连接正确。
摘要由CSDN通过智能技术生成

本文开发环境为C#,Revit2014
Revit机电二次开发API并没有提供打断管件的方法,只能采用间接的办法实现,思路就是将需要打断的管件就地复制一根,然后将两根管件缩短并放置在合适的位置,同时应当考虑管件与原管路系统的连接问题,以风管Duct为例,C#实现的代码如下:

[TransactionAttribute(TransactionMode.Manual)]
public class Test : IExternalCommand
{
    Autodesk.Revit.ApplicationServices.Application application;
    Autodesk.Revit.DB.Document document;
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        UIApplication revit = commandData.Application;
        application = revit.Application;
        UIDocument uiDocument = revit.ActiveUIDocument;
        document = uiDocument.Document;
        using (Transaction transaction = new Transaction(document, "风管打断"))
        {
            transaction.Start();
            DuctSelectionFilter ductSelectionFilter=new DuctSelectionFilter();
            IList<Duct> ductList=new List<Duct>();
            //选取一个风管
            Duct duct = PickMEPCurve(uiDocument, ductSelectionFilter, "请选择一个风管") as Duct;
            XYZ pointOnDuct = PickPointOnMEPCurve(uiDocument, duct as MEPCurve, "请选择一个打断点");
 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值