尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

revit api 加载族文件+放置族实例 创建门图元

revit api  加载族文件+放置族实例 创建门图元
📅 发布时间:2026/6/19 15:47:06

revit api 加载族文件+放置族实例 创建门图元

string doorTypeName = "0762 x 2032 mm";
FamilySymbol doorType = null;// 在文档中找到名字为"0762 x 2032 mm"的门类型
ElementFilter doorCategoryFilter = new ElementCategoryFilter(BuiltInCategory.OST_Doors);
ElementFilter familySymbolFilter = new ElementClassFilter(typeof(FamilySymbol));
LogicalAndFilter andFilter = new LogicalAndFilter(doorCategoryFilter, familySymbolFilter);
FilteredElementCollector doorSymbols = new FilteredElementCollector(RevitDoc);
doorSymbols = doorSymbols.WherePasses(andFilter);
bool symbolFound = false;
foreach (FamilySymbol element in doorSymbols)
{if (element.Name == doorTypeName){symbolFound = true;doorType = element;break;}
}// 如果没有找到,就加载一个族文件
if (!symbolFound)
{string file = @"C:\ProgramData\Autodesk\RVT 2014\Libraries\Chinese_INTL\门\M_单-嵌板 4.rfa";Family family;bool loadSuccess = RevitDoc.LoadFamily(file, out family);if (loadSuccess){foreach (ElementId doorTypeId in family.GetValidTypes()){doorType = RevitDoc.GetElement(doorTypeId) as FamilySymbol;if (doorType != null){if (doorType.Name == doorTypeName){break;}}}}else{Autodesk.Revit.UI.TaskDialog.Show("Load family failed", "Could not load family file '" + file + "'");}
}// 使用族类型创建门
if (doorType != null)
{// 首先找到线形的墙ElementFilter wallFilter = new ElementClassFilter(typeof(Wall));FilteredElementCollector filteredElements = new FilteredElementCollector(RevitDoc);filteredElements = filteredElements.WherePasses(wallFilter);Wall wall = null;Line line = null;foreach (Wall element in filteredElements){LocationCurve locationCurve = element.Location as LocationCurve;if (locationCurve != null){line = locationCurve.Curve as Line;if (line != null){wall = element;break;}}}// 在墙的中心位置创建一个门if (wall != null){XYZ midPoint = (line.get_EndPoint(0) + line.get_EndPoint(1)) / 2;Level wallLevel = RevitDoc.GetElement(wall.LevelId) as Level;//创建门:传入标高参数,作为门的默认标高FamilyInstance door = RevitDoc.Create.NewFamilyInstance(midPoint, doorType, wall, wallLevel, Autodesk.Revit.DB.Structure.StructuralType.NonStructural);Autodesk.Revit.UI.TaskDialog.Show("Succeed", door.Id.ToString());Trace.WriteLine("Door created: " + door.Id.ToString());}else{Autodesk.Revit.UI.TaskDialog.Show("元素不存在", "没有找到符合条件的墙");}
}
else
{Autodesk.Revit.UI.TaskDialog.Show("族类型不存在", "没有找到族类型'" + doorTypeName + "'");
}

 

相关新闻

  • 一件有关山寨iPod shuffle 2的往事
  • revit api 过滤器获取元素
  • revit api 事务和事务组

最新新闻

  • MC9S08AC60 BDC与DBG调试模块深度解析:从单线通信到非侵入式追踪
  • 如何在HarmonyOS设备上快速配置MicroG位置服务权限
  • 畅捷通Helper 工具库:通用函数设计与最佳实践
  • SuperCom串口调试平台:模块化架构设计与性能优化实践
  • 2026滨州本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • 2026年新发布:聚焦佛山絮凝剂企业,如何做出明智选择? - 品牌鉴赏官2026

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号