Revit二次开发 钢筋生成API(一)

news/2025/9/17 14:59:47/文章来源:https://www.cnblogs.com/minhost/p/19096778

1、自由钢筋生成API

  创建不受约束的自由形式钢筋。以后不能将约束添加到此钢筋。

public static Rebar CreateFreeForm(Document doc,RebarBarType barType,Element host,IList<CurveLoop> curves,out RebarFreeFormValidationResult error
)

通过此方法,可以创建一个或者多个钢筋,钢筋创建完成后,无法修改钢筋的约束,意思如下图,钢筋的约束定义将无法修改

image

以上钢筋创建的案例代码如下:

using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using System;
using System.Collections.Generic;namespace RebarExample.Cmds
{[Transaction(TransactionMode.Manual)][Regeneration(RegenerationOption.Manual)]public class CreateFreeForm2 : IExternalCommand{public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements){try{Document doc = commandData.Application.ActiveUIDocument.Document;if (doc == null)return Result.Failed;//查找到钢筋类型FilteredElementCollector fec = new FilteredElementCollector(doc).OfClass(typeof(RebarBarType));if (fec.GetElementCount() <= 0)return Result.Failed;RebarBarType barType = fec.FirstElement() as RebarBarType;//启动事务using (Transaction tran = new Transaction(doc, "CreateFreeForm2")){Element host = null;Selection sel = commandData.Application.ActiveUIDocument.Selection;try{//选择主体对象Reference hostRef = sel.PickObject(ObjectType.Element, "Select Host");host = doc.GetElement(hostRef.ElementId);if (host == null)return Result.Failed;}catch (Exception e){message = e.Message;return Result.Failed;}tran.Start();this.CreateFreeForm(doc, barType, host);tran.Commit();}return Result.Succeeded;}catch (Exception ex){message = ex.Message;return Result.Failed;}}/// <summary>/// 创建钢筋/// </summary>/// <param name="doc"></param>/// <param name="barType"></param>/// <param name="host"></param>private void CreateFreeForm(Document doc, RebarBarType barType, Element host){IList<CurveLoop> curves = new List<CurveLoop>();if (host is Wall wall){//创建钢筋var wline = (wall.Location as LocationCurve).Curve;if (wline != null){for (var i = 0; i < 5; i++){CurveLoop p = new CurveLoop();var start = wline.GetEndPoint(0);var end= wline.GetEndPoint(1);p.Append(Line.CreateBound(new XYZ(start.X,start.Y,start.Z+i*0.1),new XYZ(end.X,end.Y,end.Z+i*0.1)));curves.Add(p);}}}RebarFreeFormValidationResult error;Rebar rebar = Rebar.CreateFreeForm(doc, barType, host, curves, out error);}}
}

 

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

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

相关文章

方法

什么是方法 方法是程序中最小的执行单位 实际开发中:重复的代码,具有独立功能的代码可以抽取到方法当中 实际开发中方法的好处:可以提高代码的复用性 提高代码的可维护性 最简单的方法定义和调用 方法的格式:把一些代码打包在一起,用到时候就调用 方法定义:把一些代码打包在…

详细介绍:PHP基础-语法初步(第七天)

详细介绍:PHP基础-语法初步(第七天)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importan…

如何通过Python SDK 删除 Collection

本文介绍如何通过Python SDK删除一个已创建的Collection。 重要 删除Collection后,该Collection所有数据将删除且不可恢复,请谨慎操作。 前提条件已创建Cluster:创建Cluster已获得API-KEY:API-KEY管理已安装最新版SDK:安装DashVector SDK接口定义 Python示例: Client.del…

Inventor Professional 2026.1.1 产品设计与工程制图

描述 Autodesk Inventor提供了专业级机械设计、文档编制和产品仿真工具。参数化建模、直接建模、自由形状建模和基于规则的设计功能的强大组合。用于钣金、结构件设计、三维布管、电缆和线束、演示、渲染、仿真、机床设计等的集成工具。值得信赖的 DWG™ 兼容性,强大的基于模型…

叮当计步微信小程序系统

1. 概述总结 叮当计步小程序系统是基于微擎系统交付的应用,微擎系统是一款基于 PHP 开发的开源应用生态系统,主要用于快速搭建微信公众号、小程序等应用,同时支持 Web 系统开发与部署。该计步系统历经数月研发,投入 20 多万研发费用,注重数据可靠性、系统扩展性和高并发支…

叮当计步微信小程序系统

1. 概述总结 叮当计步小程序系统是基于微擎系统交付的应用,微擎系统是一款基于 PHP 开发的开源应用生态系统,主要用于快速搭建微信公众号、小程序等应用,同时支持 Web 系统开发与部署。该计步系统历经数月研发,投入 20 多万研发费用,注重数据可靠性、系统扩展性和高并发支…

maven项目连接DM数据库和基本sql使用

maven项目连接DM数据库和基本sql使用直接引入Maven依赖<!-- DM数据库JDBC驱动 --> <dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.3.140</version> </dependency>dem…

maven项目连接DM数据库和基本sql使用

maven项目连接DM数据库和基本sql使用直接引入Maven依赖<!-- DM数据库JDBC驱动 --> <dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.3.140</version> </dependency>dem…

【中国计算机学会CCF主办】第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026)

第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026) 2026 6th International Conference on Artificial Intelligence, Big Data and Algorithms (CAIBDA 2026)重要信息 大会时间:2026年6月12-14日 大会地点:天津(线上同步进行) 大会官网:www.caibda.org *为报名…

【中国计算机学会CCF主办】第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026)

第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026) 2026 6th International Conference on Artificial Intelligence, Big Data and Algorithms (CAIBDA 2026)重要信息 大会时间:2026年6月12-14日 大会地点:天津(线上同步进行) 大会官网:www.caibda.org *为报名…

仿腾讯会议——退出房间

客户端 1、添加绘图成员 2、 实现视频的重绘事件 3、实现关闭函数 定义信号和函数 关闭函数实现 添加清空列表功能 在房间内添加用户映射表 中介者退出函数 移除用户展示界面 离开房间请求处理 服务端

蓝桥杯分享经验

系列文章目录 提示&#xff1a;小白先看系列 第一章 蓝桥杯的钱白给吗 文章目录 系列文章目录前言一、自我介绍二、经验讲解:1.基础知识2.进阶知识3.个人观点 三、总结四、后续 前言 第十六届蓝桥杯已经省赛已经结束了&#xff0c;相信很多小伙伴也已经得到自己的成绩了。接下…

C++:面试题汇总

C 基础 指针和引用的区别 指针是一个变量&#xff0c;存储的另一个变量的内存地址&#xff0c; 可以重复赋值执行不同的对象&#xff0c;运行为nullptr 适合动态分配&#xff0c;例如使用new,delete时&#xff1b; 用在实现链表、树等数据结构时&#xff1b; 以及明确没有对象…

python调wfdb库读心电数据库的注释文件中NUL问题

切入点如题。开始使用字符串中通配符&#xff0c;没用。查找DeepSeek给出下面结果&#xff1a; 在 Python 中&#xff0c;字符串中出现 [NUL] 表示字符串包含一个 ASCII 空字符&#xff08;ASCII 值为 0 的字符&#xff0c;即 \x00&#xff09;。这个符号通常是某些编辑器或调…

iOS Runtime与RunLoop的对比和使用

Runtime 机制 核心概念 Objective-C 的动态特性&#xff1a;Objective-C 是一门动态语言&#xff0c;很多工作都是在运行时而非编译时决定的消息传递机制&#xff1a;方法调用实际上是发送消息 objc_msgSend(receiver, selector, ...)方法决议机制&#xff1a;动态方法解析、…

【信息系统项目管理师】第16章:项目采购管理 - 23个经典题目及详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…

fscan教程1-存活主机探测与端口扫描

实验目的 本实验主要介绍fscan工具信息收集功能&#xff0c;对同一网段的主机进行存活探测以及常见服务扫描。 技能增长 通过本次实验的学习&#xff0c;了解信息收集的过程&#xff0c;掌握fscan工具主机探测和端口扫描功能。 预备知识 fscan工具有哪些作用&#xff1f; …

kafka在线增加分区副本数

1、问题来源 线上有一个物联网项目依赖kafka集群中指定主题消费&#xff0c;前些天kafka集群中的某一台机器出现了故障&#xff0c;导致kafka这个主题的数据一直无法消费&#xff0c;经查发现为了保证消息的顺序性此主题仅设置了一个分区&#xff0c;但是副本也仅有一个&#…

高等数学-积分

一、不定积分 定理&#xff1a;如果函数f(x)在区间I上连续&#xff0c;那么f(x)在区间I上一定有原函数&#xff0c;即一定存在区间I上的可导函数F(x)&#xff0c;使得F(x)f(x) &#xff0c;x∈I 简单地说&#xff1a;连续函数必有原函数。 极限lim*0->x {[∫*0^x sin(t^2)…

Java 多线程编程:解锁高性能应用开发的密钥

在计算机编程的广袤领域中&#xff0c;Java 凭借其跨平台性、丰富的类库和强大的生态系统&#xff0c;成为众多开发者&#xff0c;尤其是大学生入门编程的热门选择。而在 Java 的众多特性里&#xff0c;多线程编程宛如一颗璀璨的明珠&#xff0c;掌握它对于开发高性能、响应迅速…