• Revit SDK 介绍:CreateAirHandler 创建户式风管机


    前言

    这个例子介绍如何通过 API 创建一个户式风管机族的内容,包含几何和接头。

    内容

    在这里插入图片描述

    效果

    在这里插入图片描述

    核心逻辑

    1. 必须打开机械设备的族模板
    2. 创建几何实体来表示风管机
    3. 创建风机的接头

    创建几何实体来表示风管机

    例子中创建了多个拉伸,下面仅截取一段代码:

    // 创建一个 curve 数组
    curves = app.NewCurveArray();
    curves.Append(Line.CreateBound(profileData[i, 0], profileData[i, 1]));
    curves.Append(Line.CreateBound(profileData[i, 1], profileData[i, 2]));
    curves.Append(Line.CreateBound(profileData[i, 2], profileData[i, 3]));
    curves.Append(Line.CreateBound(profileData[i, 3], profileData[i, 0]));
    
    // 创建一个轮廓,curve数组的数组
    profile = app.NewCurveArrArray();
    profile.Append(curves);
    
    // 创建参考平面
    plane = Plane.CreateByNormalAndOrigin(sketchPlaneData[i, 0], sketchPlaneData[i, 1]);
    sketchPlane = SketchPlane.Create(m_document, plane);
    
    // 创建一个拉伸
    extrusions[i] = f.NewExtrusion(isSolid[i], profile, sketchPlane,extrusionOffsets[i, 1]);
    extrusions[i].StartOffset = extrusionOffsets[i, 0];
    
    // 把拉伸加入数组,方便后续的几何合并
    m_combineElements.Append(extrusions[i]);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    创建风机的接头

    例子中有四个接头,两个风管,两个水管。

    // 风管接头的例子,创建及设置参数
    ConnectorElement connReturnAir = ConnectorElement.CreateDuctConnector(m_document, DuctSystemType.ReturnAir, ConnectorProfileType.Rectangular, m_planarFaces[0].Reference);
    param = connReturnAir.get_Parameter(BuiltInParameter.CONNECTOR_HEIGHT);
    param.Set(connectorDimensions[1, 0]);
    param = connReturnAir.get_Parameter(BuiltInParameter.CONNECTOR_WIDTH);
    param.Set(connectorDimensions[1, 1]);
    param = connReturnAir.get_Parameter(BuiltInParameter.RBS_DUCT_FLOW_DIRECTION_PARAM);
    param.Set(1);
    param = connReturnAir.get_Parameter(BuiltInParameter.RBS_DUCT_FLOW_CONFIGURATION_PARAM);
    param.Set(1);
    param = connReturnAir.get_Parameter(BuiltInParameter.RBS_DUCT_FLOW_PARAM);
    param.Set(flow);
    // 水管接头的例子,创建及设置参数
    ConnectorElement connSupplyHydronic = ConnectorElement.CreatePipeConnector(m_document, PipeSystemType.SupplyHydronic, m_planarFaces[0].Reference);
    param = connSupplyHydronic.get_Parameter(BuiltInParameter.CONNECTOR_RADIUS);
    param.Set(arcRadius);
    param = connSupplyHydronic.get_Parameter(BuiltInParameter.RBS_PIPE_FLOW_DIRECTION_PARAM);
    param.Set(2);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    创建机电接头的接口

    namespace Autodesk.Revit.DB
    {
        public class ConnectorElement : Element, IConnector
        {
            public virtual Transform CoordinateSystem { get; }
            public bool IsPrimary { get; }
            public MEPSystemClassification SystemClassification { get; set; }
            public XYZ Direction { get; }
            public virtual double Width { get; }
            public virtual ConnectorProfileType Shape { get; }
            public virtual XYZ Origin { get; }
            public virtual double Radius { get; }
            public virtual double Height { get; }
            public virtual Domain Domain { get; }
            public static ConnectorElement CreateCableTrayConnector(Document document, Reference planarFace, Edge edge);
            public static ConnectorElement CreateCableTrayConnector(Document document, Reference planarFace);
            public static ConnectorElement CreateConduitConnector(Document document, Reference planarFace, Edge edge);
            public static ConnectorElement CreateConduitConnector(Document document, Reference planarFace);
            public static ConnectorElement CreateDuctConnector(Document document, DuctSystemType ductSystemType, ConnectorProfileType profileShape, Reference planarFace);
            public static ConnectorElement CreateDuctConnector(Document document, DuctSystemType ductSystemType, ConnectorProfileType profileShape, Reference planarFace, Edge edge);
            public static ConnectorElement CreateElectricalConnector(Document document, ElectricalSystemType electricalSystemType, Reference planarFace);
            public static ConnectorElement CreateElectricalConnector(Document document, ElectricalSystemType electricalSystemType, Reference planarFace, Edge edge);
            public static ConnectorElement CreatePipeConnector(Document document, PipeSystemType pipeSystemType, Reference planarFace);
            public static ConnectorElement CreatePipeConnector(Document document, PipeSystemType pipeSystemType, Reference planarFace, Edge edge);
            public void AssignAsPrimary();
            public void FlipDirection();
            public ConnectorElement GetLinkedConnectorElement();
            public bool IsSystemClassificationValid(MEPSystemClassification systemClassification);
            public void SetLinkedConnectorElement(ConnectorElement otherConnector);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    其它

    创建几何实体来表示风管机和创建风机的接头之后都需要调用m_document.Regenerate来更新文档。

  • 相关阅读:
    华为OD机试真题 Java 实现【输出指定字母在字符串的中的索引】【2023 B卷 100分】,附详细解题思路
    使用FFmpeg+ubuntu系统转化flac无损音频为mp3
    一年顶十年
    【从0开发】百度BML全功能AI开发平台【实操:以部署情感分析模型为例】
    springboot物业公司收费车位报修管理系统tbr18-java-ssm
    python如何将日期字符串格式化年月日
    网络爬虫学习笔记 1 HTTP基本原理
    stdlib.h
    Java零基础入门-数组
    网络基础知识点
  • 原文地址:https://blog.csdn.net/weixin_44153630/article/details/132632371