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

news2024/11/19 19:33:17

前言

这个例子介绍如何通过 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]);

创建风机的接头

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

// 风管接头的例子,创建及设置参数
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);

创建机电接头的接口

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);
    }
}

其它

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL-入门-BMP像素图glReadPixels(1)实现读取屏幕中间的颜色和获取屏幕上鼠标点击位置的颜色

glReadPixels函数用于从帧缓冲区中读取像素数据。它可以用来获取屏幕上特定位置的像素颜色值或者获取一块区域内的像素数据。下面是该函数的基本语法: void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *da…

LeetCode——字母异位词分组(中等)

题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat&quo…

java八股文面试[多线程]——Synchronized优化手段:锁膨胀、锁消除、锁粗化和自适应自旋锁

1.锁膨胀 (就是锁升级) 我们先来回顾一下锁膨胀对 synchronized 性能的影响,所谓的锁膨胀是指 synchronized 从无锁升级到偏向锁,再到轻量级锁,最后到重量级锁的过程,它叫锁膨胀也叫锁升级。 JDK 1.6 之前…

springdoc-openapi-ui 整合 knife,多模块分组,脚手架

pom文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…

2023年京东箱包行业数据分析(京东数据运营)

当前&#xff0c;旅游业全面复苏&#xff0c;这一现象也带动了周边产业的火爆。在全国游客的出行热带动下&#xff0c;箱包产业迎来消费热潮。 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;2023年7月&#xff0c;京东箱包大盘整体的销量为266万&#xff0c;同比增长…

知识图谱笔记:TransH

1 TransE存在的问题 一对多 假设有一个关系 "是父亲"&#xff0c;其中一个父亲&#xff08;头实体&#xff09;可能有多个孩子&#xff08;尾实体&#xff09; 父亲 A -> 孩子 1父亲 A -> 孩子 2在 TransE 中&#xff0c;这两个关系会被建模为&#xff1a; A是…

【pytorch】tensorboard + transforms的使用

一、tensorboard的使用 1. 加载一张图片转化为tensor类型&#xff0c;并通过tenboard可视化 from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transformsimg_path "dataset/train/ants_image/0013035.jpg"img …

ESXi 6.7添加螃蟹2.5g网卡支持

安装了ESXi 6.7&#xff0c;结果机器两块网卡只能识别一块&#xff0c;然后想着不能让另一块浪费啊&#xff0c;开始折腾&#xff0c;看着网上都是找的驱动然后封装进iso&#xff0c;可是我已经装完了&#xff0c;怎么办&#xff0c;然后找到了下面解决方法 1.找驱动 下载RTL81…

DEAP库文档教程四——操作与算法

本节将将在初始化的基础上&#xff0c;进一步说明操作与算法。 1、Using the Toolbox toolbox(base.Toolbox())是包含所有进化操作的工具箱&#xff0c;从目标初始化到适应度计算。它允许在每个算法中实现简单的构造。toolbox基本上由两种方法组成&#xff0c;register()和un…

工服穿戴检测联动门禁开关算法

工服穿戴检测联动门禁开关算法通过yolov8深度学习框架模型&#xff0c;工服穿戴检测联动门禁开关算法能够准确识别和检测作业人员是否按照规定进行工服着装&#xff0c;只有当人员合规着装时&#xff0c;算法会发送开关量信号给门禁设备&#xff0c;使门禁自动打开。YOLO的结构…

msvcp71.dll丢失怎样修复和msvcr71.dll丢失的解决方法介绍

今天&#xff0c;我将为大家分享一个关于电脑msvcp71.dll丢失的问题及其解决方法。希望这些方法能够帮助到正面临同样问题的朋友们。 首先&#xff0c;让我们来了解一下msvcp71.dll丢失的原因。msvcp71.dll是Microsoft Visual C 2008 Redistributable Package的一个组件&#…

内网隧道代理技术(十九)之 CS工具自带上线不出网机器

CS工具自带上线不出网机器 如图A区域存在一台中转机器,这台机器可以出网,这种是最常见的情况。我们在渗透测试的过程中经常是拿下一台边缘机器,其有多块网卡,边缘机器可以访问内网机器,内网机器都不出网。这种情况下拿这个边缘机器做中转,就可以使用CS工具自带上线不出网…

leetcode55.跳跃游戏 【贪心】

题目&#xff1a; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例…

DEAP库文档教程二-----创建类型

本节将展示如何通过creator创建类型以及如何使用toolbox进行初始化。 1、Fitness 已经提供的Fitness类是一个抽象类&#xff0c;它需要weight来使得它成为一个函数。一个最小化的适应度是通过负权重构建的&#xff0c;而一个最大化适应度则需要正权重。 creator.create(&quo…

渗透测试漏洞原理之---【失效的访问控制】

文章目录 1、失效的访问控制1.1、OWASP Top 101.1.1、A5:2017-Broken Access Control1.1.2、A01:2021 – Broken Access Control 1.2、失效的访问控制类别1.2.1、水平越权1.2.2、垂直越权 1.3、攻防案例1.3.1、Pikachu靶场 Over Permision1.3.2、DVWA越权利用失效的访问控制漏洞…

QT listWidget 中实现元素的自由拖拽

QListWIdget中拖拽元素移动 setMovement(QListView::Movement::Free);setDragEnabled(true); setDragDropMode(DragDropMode::DragDrop); setDefaultDropAction(Qt::DropAction::MoveAction);

稳定性建设框架 | 京东物流技术团队

一、为什么要做稳定性建设 1、从熵增定律引出稳定性建设的必要性 物理学上&#xff0c;用“熵”来描述一个体系的混乱程度。卡尔弗里德曼提出熵增定律&#xff0c;他认为在一个封闭的系统内&#xff0c;如果没有外力的作用&#xff0c;一切物质都会从有序状态向无序状态发展。…

CSRF与XSS结合利用

文章目录 修改cms网站后台管理员密码成功登录总结 修改cms网站后台管理员密码 CSRF和XSS结合的JS代码&#xff1a; <script> xmlhttp new XMLHttpRequest(); xmlhttp.open("post","http://10.4.7.130/cms/admin/user.action.php",false); xmlhttp…

2023第二届中国绿色钢铁国际峰会 演讲嘉宾预告:Meranti Steel

2023第二届中国绿色钢铁国际峰会将于9月21日-22日在上海举办&#xff0c;本次会议线上线下同步举行&#xff0c;会场提供中英同声传译。 钢铁是当今世界上最常用的金属&#xff0c;普遍应用于世界各国基础设施建设与机械、汽车、飞机、船舶、家电等产品的生产制造中。但是&…

中级深入--day15

案例&#xff1a;使用BeautifuSoup4的爬虫 我们以腾讯社招页面来做演示&#xff1a;搜索 | 腾讯招聘 使用BeautifuSoup4解析器&#xff0c;将招聘网页上的职位名称、职位类别、招聘人数、工作地点、发布时间&#xff0c;以及每个职位详情的点击链接存储出来。 # bs4_tencent.p…