RevitAPI之在机械设备和风管终端间创建风管系统

=========【更多高级应用请关注公众号】========


==================================

水暖电系统类MEPSystem也是Element。MEPSystem 的子类有 MechanicalSystem,PipeingSystem,ElectricalSystem,分别对应风管系统,水管系统和电器系统。


风管系统通常是为了便于计算风管中送风流向和流量而设定的一个逻辑概念。只要将风道末端和机械设备放置在工程中,就可以创建补给系统、返回系统和废气系统,用于连接各个不同的部件。

水管系统是为了便于计算设备的流量和流速而设定的一个逻辑概念。水管系统独立于工程文件中的水管,仅用于显示各个卫浴装置间连接方式和水流方向。只要将卫浴装置放在工程中就可以创建家用热水、家用冷水及卫浴系统来连接各个不同的装置。

在机械设备和风管终端间创建风带系统系列代码:
 
public void CreateMechanicalSystem(Document doc, DuctSystemType systemType,FamilyInstance equipment, params FamilyInstance[] airTerminals)
        {
            var me = equipment.MEPModel as MEPModel;
            if (me != null)
            {
                // 获取符合条件的设备上的电气连接件 
                var connsOfEquipment = GetConnector(me.ConnectorManager, systemType).ToList();
                if (connsOfEquipment.Count > 0)
                {
                    // 选取设备上的第一个电气连接件 
                    var equipmentConn = connsOfEquipment[0];


                    var connsOfTerminals = new ConnectorSet();
                    foreach (var terminal in airTerminals)
                    {
                        // 获取符合条件的散流器上的电气连接件,取第一个 
                        var airTerminalEquipment = terminal.MEPModel as MEPModel;
                        var airConns = GetConnector(airTerminalEquipment.ConnectorManager,systemType);
                        var airConn = airConns.FirstOrDefault();
                        if (airConn != null)
                            connsOfTerminals.Insert(airConn);
                    }


                    // 创建风管系统 
                    using (Transaction transaction = new Transaction(doc))
                    {
                        transaction.Start("Create System");
                        doc.Create.NewMechanicalSystem(equipmentConn, connsOfTerminals,systemType);
                        transaction.Commit();
                    }
                }
            }
        }


        // 获取符合管道系统的电气连接件 
        private static IEnumerable<Connector> GetConnector(ConnectorManager conMgr,
        DuctSystemType systemType)
        {
            foreach (Connector conn in conMgr.Connectors)
            {
                // Domain为Hvac,否则DuctSystemType属性会抛出异常 
                if (conn.Domain == Domain.DomainHvac && conn.DuctSystemType == systemType)
                {
                    yield return conn;
                }
            }
        }

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值