Revit二开--Revit管线随板功能

Revit二次开发之CAD线的翻模--梁的翻模 最近开始翻模旅程,根据跟群友讨论和网上的搜寻。初步方法为先拾取CAD梁的线段,根据线段所在图层,取得所有梁的最长的那2段线。这样情况下,一条梁仅有2段相等的且平行的直线(不在是一个矩形),具体如图1-1所示!。                                                              图 1- 1  测试模型中对于梁的整图 这里要感谢一下优快云... 阅读详情

Revit二开--Revit管线随板功能


今天在这里解密一个管线随板的功能

在这里插入图片描述

代码如下

  class Cmd_MepsAlongFloor : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            var uidoc = commandData.Application.ActiveUIDocument;
            var doc = uidoc.Document;
            var sel = uidoc.Selection;

            //选择管线
            var mep = sel.PickObject(ObjectType.Element,
                doc.GetSelectionFilter(m => m is MEPCurve && !(m is InsulationLiningBase)),"选择管线").GetElement(doc) as MEPCurve;
             
            //选择楼板
            var floor =
                sel.PickObject(ObjectType.Element, doc.GetSelectionFilter(m => m is Floor),"选择楼板").GetElement(doc) as Floor;

            var bottomfaceref = HostObjectUtils.GetBottomFaces(floor).First();

            var bottomface = floor.GetGeometryObjectFromReference(bottomfaceref) as Face;

            var planarFace = (bottomface as PlanarFace);

            var planeNorm = planarFace.FaceNormal;
            var planeOrigin = planarFace.Origin;
            var plane = Plane.CreateByNormalAndOrigin(planeNorm, planeOrigin);

            Transform trs = Transform.Identity;
            trs.Origin = planeOrigin;
            trs.BasisX = planarFace.XVector;
            trs.BasisY = planarFace.YVector;
            trs.BasisZ = planeNorm;
             
            var inputboxStr = Microsoft.VisualBasic.Interaction.InputBox("输入距离楼板距离","距离","0");

            var distance = default(double);
             
            var parseresult =double.TryParse(inputboxStr, out distance);
            if (!parseresult) return Result.Cancelled;

            distance = distance.MetricToFeet();

            var locationline = mep.LocationLine();
            var startpo = locationline.StartPoint();
            var endpo = locationline.EndPoint();

            var startpo_intrans = trs.Inverse.OfPoint(startpo);
            var endpo_intrans = trs.Inverse.OfPoint(endpo);

            var startpo_proj = new XYZ(startpo_intrans.X, startpo_intrans.Y,0);
            var endpo_proj = new XYZ(endpo_intrans.X, endpo_intrans.Y, 0); ;

            startpo_proj = trs.OfPoint(startpo_proj);
            endpo_proj = trs.OfPoint(endpo_proj);
             
            var dir = (endpo - endpo_proj).Normalize();

            var newstart = startpo_proj + dir * distance;
            var newend = endpo_proj + dir * distance;

            Transaction ts = new Transaction(doc, "更改管线到楼板距离");
             
            ts.Start();

            (mep.Location as LocationCurve).Curve = Line.CreateBound(newstart, newend);

            ts.Commit();
             
            return Result.Succeeded;
        }

里面封装的方法请参照 https://github.com/binbinstrong/tangsengjiewa

更多revit二开知识 请关注 唐僧课堂
唐僧课堂BIM开发


在这里插入图片描述

Revit中管道系统样式控制及【管线快速对齐】功能   Revit管道系统样式的控制及【管线快速对齐】   今天简要介绍一下REVIT的入门知识——管道系统样式控制。   管道系统,先看类型属性。   图形替换:控制线型和颜色,这就不多说了。   上升/下降:决定不同情况下的立管(横管必须同时存在,双线除外)显示符号。首先说明上升和下降,即立管顶部标高是否达到视图范围的主要范围顶部。达到就是上升,不达到就是下降。   双线表示精细状态,单线表示粗略和中等。三通向上/向下表示立管通过三通与横管连接。   顶部达到顶:   ①剖面图。 . 阅读详情

相关推荐

revit机电建模【管线连接】自动两根管线相连的步骤

  revit机电建模【管线连接】自动两根管线相连的步骤。Revit是如何实现自动选择合适的管件进行连接的?如果是常规的做法,会涉及到Revit中的“布管系统配置”,单击“管道”,再打开“属性”面板,然后单击,编辑类型”打开“类型属性”框。   上面这一套下来是不是很麻烦?现在和大家分享一个简单的做法,两根管线轻轻一点即可自动连接,revit机电建模的不要错过了。   revit机电建模 → 管线连接   1. 选择【管线连接】功能。   2. 选择管线的连接角度【60°】。 ..

zh_BIM的博客 2455

Revit 2018二次开发 创建草图平面SketchPlane

Revit 2018二次开发 创建草图平面SketchPlane,分为两步。先做Plane,后做SketchPlane。

wula1994的博客 1067

Revit插件打包.rar

Revit插件打包.rar

Revit二次开发,transaction代码中遇到的问题解决

Revit二次开发进行元素创建时遇到的问题如下: 问题1: “不包含采用的两个参数的构造函数”问题解决: 解决如下:对应的new plane 改写成Plane.CreateByNormalAndOrigin即可; doc.FamilyCreate.NewExtrusion(true, curveArr, SketchPlane.Create(doc, Plane.CreateByNormalAn...

Cyril1996的博客 1196

Revit二开根据导入CAD管道图生产管道(弯头、三通、四通)

revite 二次开发。用于导入的CAD图纸的管道翻模,生成包括弯头、三通、四通的管道

CentOS 7 安装 Python 3.10

我这里已经软链接了,正常未链接之前是python->python2.7而不是python3.10。python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用。2. 安装 Python 3.10 必需的 openssl >= 1.1.1。默认的centos7是没有安装pip,先添加epel扩展源。/usr/bin/python 修改为如下。添加软链接,将原来的链接备份。添加python3的软链接。

bensonyang888的博客 2904

Revit二次开发之梁随板

Revit二次开发之梁随板 这个demo实现了梁随斜板的功能: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.DB; using Autodesk.Revit.UI.Sel...

yasenRK的博客 1483

美亚杯取证比赛必备:Veracrypt挂载+检材解压保姆级教程(附常见错误排查)

本文提供美亚杯数字取证竞赛的Veracrypt挂载与检材解压保姆级教程。详细解析从分卷压缩包解压(密码格式为MeiyaCup+年份)到使用Veracrypt正确挂载加密容器的全流程,并附有常见错误排查与高级应急方案,帮助选手高效突破技术门槛,顺利进入取证分析阶段。

alice7model的博客 1026

Revit放样的问题:为何生成的模型和预期不一致,轮廓好像被旋转了?

本人在开发时,调用扫略放样建模时,出现了几次创建出来的模型扭曲,轮廓被旋转,和期望严重不符的情形。 尽管路径曲线和轮廓线看起来是一样的,某些情形下,总是得到不一致的结果。查找资料后,发现是因为路径的草图平面不同导致的。即:放样时,同样的路径和轮廓,当路径的草图平面不同时,可能会得到不同的结果。 下面给出一个简单的实例,图中两个立方体,是下面的代码创建的。注意,在这段代码中,轮廓线和路径都是一样的,只是路径的草图平面不同,生成的模型就不一样。 我想,这足以说明问题了。希望对遇到此问题的程序猿有所帮助。

zzutt的专栏 1535

搞定ESD(五):静电放电问题分析与调试

前面深入分析了静电放电的干扰机理、耦合路径,从现在开始将进入下一个大家非常关注的环节:静电放电问题分析与调试,掌握静电放电问题的分析方法,快速锁定敏感设备或者耦合路径,可以达到事半功倍的效果。

记得诚 2792

FX5U PLC运动控制库安装(PLCopen Motion Control FB参考)

下面我们介绍三菱FX5U PLC的运动控制库PLCopen Motion Control FB的安装。

RXXW_Dor的博客 1523

Revit二开--管线打断功能

Revit二开–管线打断功能 [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] [Journaling(JournalingMode.UsingCommandData)] class Cmd_MepCurveBreak : IExternalCommand ...

binbinstrong的博客 1511

【人工智能】拒绝焦虑,理性突围:AI 时代 Java 工程师的职业重构与进化指南

摘要:在AI技术快速发展的背景下,Java工程师面临职业转型挑战。本文通过MECE原则解构工作内容,划分高替代风险区(如CRUD开发)、高增效潜能区(如逻辑优化)和高核心壁垒区(如架构设计),指出AI对不同任务的影响程度。从劳动经济学视角分析行业将呈现K型分化,初级执行者被替代,而精通AI协作的全栈工程师需求增长。文章强调警惕过度依赖AI导致认知能力退化,并提出转型路径:掌握AI驱动开发(AIDD)、深耕领域驱动设计(DDD)、拓展全流程能力及AI原生应用开发。最终结论指出,未来的核心竞争力在于结合AI工具

奶爸的编程之路,也就一周冷个三天 131

Revit二开--管线分布 功能解密

Revit二开–管线分布 功能解密 本案例以 按管中心排列的方式 来用代码实现 ,按管外壁的原理是一样的在此不做赘述。 本例以 esc 键 来结束选择 如果要实现上图效果可以在 一键分布按钮里面 向revit主窗口发送esc按键即可,时间有限不再多说,好了上代码! [Transaction(TransactionMode.Manual)] [Regeneration(Regenera...

binbinstrong的博客 871

LangChain4j + MCP:从工具协议到生产级 Agent

这两年,很多团队都已经把「大模型问答」接入到系统里了:前端一个输入框,后端调一下 OpenAI / DeepSeek / 本地模型,返回一段回答——这类 「简单问答型」AI 功能它只能说,不会做:不会主动查数据库,不会调用你的接口,不会帮你真正执行脚本;面对复杂一点的需求,比如「帮我生成这个报表的 SQL 并执行一下」,普通 ChatGPT 式的问答就开始力不从心了。而Agent 智能体想解决的,就是这件事:不只是回答你「怎么做」,而是能自己思考、自己决定要不要用工具、再用工具把事做完。

OFFTime_we的博客 1150

【Java基础知识 19】Java接口的作用和意义

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

学Java,找哪吒 2万+

Revit二开--管线分段解密

Revit二开–管线分段解密 关注本博客功能解密陆续进行中 解密结束有免费工具献上,敬请期待 [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] [Journaling(JournalingMode.UsingCommandData)] public clas...

binbinstrong的博客 669

redhawk如何看高toggle rate instance

1.图形界面View-Power Map - Toggle Map of Instances。redhawk通过报告和图形界面两种方式查看高toggle rate的instance。2.看warning log,在adsRpt/Warn里,搜toggle rate。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 609

Revit二开——管线升降符号 显示 隐藏

Revit二开——管线升降符号 显示 隐藏 Revit管线升降符号的管理,涉及到类别的隐藏显示,只需要将类别中 相关的类别隐藏或者显示就可以控制升降符号。 管线升降符号涉及到的类别 包含 //风管上升 BuiltInCategory.OST_DuctCurvesRiseDrop; //风管下降 BuiltInCategory.OST_DuctCurvesDrop; //水管上升 BuiltInCategory.OST_PipeCurvesRiseDrop; //水管下降 BuiltInCategory.

binbinstrong的博客 784

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Revit二次开发之管线随板

管线随板 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.DB.Mecha...

yasenRK的博客 494

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Revit二开--管线标注 附源码

Revit二开–管线标注 前几天有朋友问我 如何用程序来实现标注管道长度,他的思路是获取管道的locationcurve 然后获取两个端点的引用然后进行标注,但是管道的locationcurve 没有端点引用,所以用这种方法无法实现管道的长度标注。今天恰好有点时间,就把管道长度标注的方法放出来供大家参考。 代码已经集成到唐僧解瓦项目) 唐僧解瓦 项目 github地址:https://github...

binbinstrong的博客 1058

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2020版revit机电管线功能及如何快速管线排布

  最近接触了一个用Revt2020版本的机电项目,小编之前用的比较多的是2018版本,觉得2018版本挺好,后来用了2020版本之后,发现了这个版本有一个对机电非常赞的功能升级,推荐给不知道的小伙伴们,相信我,用过都说好!   这个功能就是可以直接输入管线(管道、风管、桥架的顶部中部、底部高度),如图1所示   单看这个功能可能还没觉得有什么,举个例子。在调管综的过程中,经常有要这么将管线分层,那么一般来说,要控制两个管线之间的净距,如图2所示   就这两个排风管来说,单击选择上..

zh_BIM的博客 1518

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

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

Fantasy 5588

Revit二次开发插件:BIMAI功能介绍

Revit插件:BIMAI 这是一款用AI人工智能自主开发的Revit工具,偏向于管线综合,可以帮助你方便快捷的完成项目的管线综合、出图等功能。BIMAI的亮点功能有自动保存、管综工具、VV可见性、管线贴梁、净高分析等,VIP用户还可以获得更多Revit免费插件。另外,软件还配备了AI助手,可以帮助二次开发人员编写代码。

ZHANGXUEKUN2的博客 2515

Revit二次开发——管线分布

[Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] [Journaling(JournalingMode.UsingCommandData)] class Cmd_MepCurveRank : IExternalCommand { p...

文三胖的博客 1463

Revit二开学习-多排管道标注

Revit二开学习-多排管道标注 管道标注摘自: https://blog.youkuaiyun.com/qq_43026206/article/details/84256346?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159152319919725219929766%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=1

weixin_44581042的博客 2516
上一篇: Revit二开--Revit集合转LINQ--一句代码查找指定元素
下一篇: Revit二开--解析几何 计算垂直向量
binbinstrong
博客等级 码龄16年 317粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值