当前位置: 首页 > news >正文

Python+DRVT 从外部调用 Revit:批量创建梁(2)

接着昨天的示例,继续创建梁,这次展示以椭圆弧、Nurbs为轴线。

创建以椭圆弧为轴线的梁

椭圆弧曲线的创建:

# 创建椭圆弧
def CreateEllipse(ctx : MyContext, z: float) -> DB.Curve:"""create a horizontal partial ellipse instance with specified z coordinate value"""session = ctx.sessioncenter = DB.XYZ.ctor(session, m2feet(15), m2feet(-10), z);radX = m2feet(3.0)radY = m2feet(5.0)xVec = DB.XYZ.ctor(session, 1, 0, 0);yVec = DB.XYZ.ctor(session, 0, 1, 0);param0 = deg2rad(0)param1 = deg2rad(180)ellpise = DB.Ellipse.CreateCurve(session, center, radX, radY, xVec, yVec, param0, param1)return ellpise

批量创建梁:

与昨天的一样,只需要将curve = CreateArc(ctx, levelZ) 替换为 curve = CreateEllipse(ctx, levelZ)即可。生成结果:

3D

创建以Nurbs为轴线的梁

Nurbs的创建:

# 创建Nurbs曲线
def CreateNurbSpline(ctx : MyContext, z: float) -> DB.Curve:"""create a horizontal nurbspline instance with specified z coordinate value"""session = ctx.sessionnumPoints = 5;outerRadius = 5.0;innerRadius = outerRadius * math.cos(math.pi / 10) / math.cos(3 * math.pi / 10)startAngleDeg = 90.0;weights = Revit.ListDouble.ctor(session)# create control points with same z valuectrPoints = DB.ListXYZ.ctor(session)for i in range(numPoints * 2):angleDeg = startAngleDeg - i * 360.0 / (numPoints * 2)angleRad = angleDeg * math.pi / 180.0if i % 2 == 1:radius = outerRadiuselse:radius = innerRadiusx = radius * math.cos(angleRad)y = radius * math.sin(angleRad)ctrPoints.Add(DB.XYZ.ctor(session, m2feet(x), m2feet(y), z))weights.Add(1)nurbSpline = DB.NurbSpline.CreateCurve(session, ctrPoints, weights)return nurbSpline

批量创建梁:

同样,只需要将curve = CreateArc(ctx, levelZ) 替换为 curve = CreateNurbSpline(ctx, levelZ)即可(注:不同的Nurbs几何形状/大小会影响FamilySymbol实例的创建,可能会因约束不满足而创建失败。这是正常的与手工创建无异。生成结果:

3D

自动完成:启动Revit => 创建项目 => 批量创建 => 保存项目文档 => 结束Revit 全程无需手工操作。有了DRVT的加持,Revit插件的核心能力可以在外面用Python脚本轻松驾驭。


相关文章

Python+DRVT 从外部调用 Revit:从外部启动 Revit-CSDN博客

Python+DRVT 从外部调用 Revit:打开项目文件-CSDN博客

Python+DRVT 从外部调用 Revit:获取项目信息-CSDN博客

Python+DRVT 从外部调用 Revit:更新项目信息-CSDN博客

Python+DRVT 从外部调用 Revit:第一个完整示例-CSDN博客

Python+DRVT 从外部调用 Revit:创建新项目-CSDN博客

Python+DRVT 从外部调用 Revit:创建族文档-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建轴网-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建标高-CSDN博客

Python+DRVT 从外部调用 Revit:创建风管系统加劲肋-CSDN博客

Python+DRVT 从外部调用 Revit:创建剖面-CSDN博客

Python+DRVT 从外部调用 Revit:创建桁架族-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建墙-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建门-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建门和窗-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建梁-CSDN博客

深度嵌入数字化工作流:DRVT 的思考与实践-CSDN博客

从插件化走向系统集成——Revit-CSDN博客

Revit变身智能组件,BIM未来可期-CSDN博客

#SystemIntegration #Revit #RevitAPI #Python #Automation #DesignAutomation #BIM #Interop #AEC #DigitalTwin #Workflow

http://www.xdnf.cn/news/1482103.html

相关文章:

  • 【PCIe EP 设备入门学习专栏 -- 8.1.1 PCIe EP 接口总结】
  • 解决 Git Push 失败:处理“非快进”与“非相关历史”问题
  • 从零到一构建企业级AI向量服务:AntSK-PyApi深度技术解析
  • 超文本的定义
  • 专项智能练习(教育科学研究的基本方法)
  • 视频动作识别-VideoSwin
  • FPGA学习笔记——SDR SDRAM的读写(调用IP核版)
  • 【LLM】Openai分析大模型出现幻觉的原因
  • 检查权限与申请权限
  • 为什么LIO-SAM的残差项使用对数映射
  • 动态规划题目
  • MotionSound-简单易用的文本转语音工具
  • Linux--命名管道
  • 【大语言模型 44】创造力评估:开放域生成质量测试
  • 【C++/STL】优先级队列,仿函数和反向迭代器
  • 阿喀琉斯之踵:从神话传说到现代隐喻的致命弱点
  • 【Kubernetes】知识点总结6
  • 2025高教社国赛数学建模竞赛B题完整参考论文(含模型和代码)
  • MQTT 与 Java 框架集成:Spring Boot 实战(二)
  • 自注意力机制解析
  • 我用Claude Code 开发了一个浏览器插件
  • Storybook:多框架兼容的前端组件开发工具,高效解决组件隔离开发与文档管理问题
  • ElasticSearch 基础内容深度解析
  • 网站管理后台
  • cifar10下载太慢,解决使用第三方链接或迅雷下载
  • VSCode下载安装与汉化
  • NAND Flash块擦除与数据状态解析
  • 【视网膜分割】一种基于结构自适应模型的空洞残差网络
  • 基于大数据+python的肾脏疾病风险教育与数据可视化系统源码 基于数据挖掘的肾脏疾病风险分析与决策支持系统(调试、开题、LW、PPT)
  • 芯片ATE测试PAT(Part Average Testing)学习总结-20250916