revit二次开发创建桥架、线管
创建桥架、线管
- 创建桥架
- 通过过滤器获取桥架类型
- 选择点
- 得到活跃视图标高
- 创建桥架
- 修改宽、高
- 完整代码
- 创建线管
- 获取线管类型
- 获取标高
- 获取点
- 创建
- 修改直径
- 完整代码
创建桥架
/// <summary>/// 创建桥架/// </summary>/// <returns></returns>public CableTray CreateCableTray(){}
通过过滤器获取桥架类型
FilteredElementCollector collector = new FilteredElementCollector(document);List<CableTrayType>cableTrayTypes = collector.OfClass(typeof(CableTrayType)).Cast<CableTrayType>().ToList();CableTrayType cableTrayType = null;foreach (CableTrayType item in cableTrayTypes){if (item.Name.Contains("默认")){cableTrayType = item;break;}}
//or//获取桥架类型FilteredElementCollector elements = new FilteredElementCollector(document);List<CableTrayType>cableTrayTypes = elements.OfClass(typeof(CableTrayType)).Cast<CableTrayType>().ToList();CableTrayType cableTrayType = cableTrayTypes.FirstOrDefault();
选择点
XYZ startPoint = uIDocument.Selection.PickPoint();XYZ endPoint = uIDocument.Selection.PickPoint();
得到活跃视图标高
View view = document.ActiveView;
Level level = view.GenLevel;
创建桥架
CableTray cableTray = CableTray.Create(document, cableTrayType.Id, startPoint,endPoint,level.Id) ;
修改宽、高
//修改宽度cableTray.get_Parameter(BuiltInParameter.RBS_CABLETRAY_WIDTH_PARAM).Set(600.ToFoot());//修改高度cableTray.get_Parameter(BuiltInParameter.RBS_CABLETRAY_HEIGHT_PARAM).Set(300.ToFoot());
完整代码
/// <summary>/// 创建桥架/// </summary>/// <returns></returns>public CableTray CreateCableTray(){FilteredElementCollector collector = new FilteredElementCollector(document);List<CableTrayType>cableTrayTypes = collector.OfClass(typeof(CableTrayType)).Cast<CableTrayType>().ToList();CableTrayType cableTrayType = null;foreach (CableTrayType item in cableTrayTypes){if (item.Name.Contains("默认")){cableTrayType = item;break;}}XYZ startPoint = uIDocument.Selection.PickPoint();XYZ endPoint = uIDocument.Selection.PickPoint();View view = document.ActiveView;Level level = view.GenLevel;CableTray cableTray = CableTray.Create(document, cableTrayType.Id, startPoint,endPoint,level.Id) ;Parameter width = cableTray.get_Parameter(BuiltInParameter.RBS_CABLETRAY_WIDTH_PARAM);width.Set(ToFoot(600.0));cableTray.get_Parameter(BuiltInParameter.RBS_CABLETRAY_HEIGHT_PARAM).Set(ToFoot(200.0));return cableTray;}
创建线管
/// <summary>/// 创建线管/// </summary>/// <returns></returns>public Conduit CreateConduit(){}
获取线管类型
FilteredElementCollector collector = new FilteredElementCollector(document);
List<ConduitType>conduits = collector.OfClass(typeof(ConduitType)).Cast<ConduitType>().ToList();ConduitType conduitId = null;foreach (ConduitType item in conduits)
{if (item.Name.Contains("刚性非金属导管(RNC Sch 40)") && item.FamilyName.Contains("无配件的线管")){conduitId = item;break;}
}//orFilteredElementCollector elements = new FilteredElementCollector(document);List<ConduitType> conduitTypes = elements.OfClass(typeof(ConduitType)).Cast<ConduitType>().ToList();//ConduitType conduitId = conduits.FirstOrDefault();
获取标高
View view = document.ActiveView;
Level level = view.GenLevel;
获取点
XYZ startPoint = uIDocument.Selection.PickPoint();XYZ endPoint = uIDocument.Selection.PickPoint();
创建
Conduit conduit = Conduit.Create(document, conduitType.Id, startPoint, endPoint, level.Id);
修改直径
Parameter parameter = conduit.get_Parameter(BuiltInParameter.RBS_CONDUIT_DIAMETER_PARAM);parameter.Set(100.ToFoot());
完整代码
/// <summary>/// 创建线管/// </summary>/// <returns></returns>public Conduit CreateConduit(){FilteredElementCollector elements = new FilteredElementCollector(document);List<ConduitType> conduitTypes = elements.OfClass(typeof(ConduitType)).Cast<ConduitType>().ToList();//ConduitType conduitId = conduits.FirstOrDefault();ConduitType conduitType = null;foreach (ConduitType item in conduitTypes){if (item.Name.Contains("刚性非金属导管(RNC Sch 40)")&&item.FamilyName.Contains("无配件的线管")){conduitType = item;break;} }View view = document.ActiveView;Level level = view.GenLevel;XYZ startPoint = uIDocument.Selection.PickPoint();XYZ endPoint = uIDocument.Selection.PickPoint();Conduit conduit = Conduit.Create(document, conduitType.Id, startPoint, endPoint, level.Id);Parameter parameter = conduit.get_Parameter(BuiltInParameter.RBS_CONDUIT_DIAMETER_PARAM);parameter.Set(100.ToFoot());return conduit;}
直接开启事务在事务里就可以创建了!
revit二次开发创建桥架、线管相关推荐
- Revit二次开发-创建IURibbon中使用相对地址
目录 前言 一.创建DLL文件 二.按钮类编写(UIRibbon) 1.程序集的引用 2.代码编写 3.完整代码 三.dll文件和addin文件的使用 四.最终效果 前言 我们在进行二次开发的时候 ...
- [Revit二次开发] 创建一个柱的族
完整项目代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- #Revit二次开发# 创建剖面视图
设置box的min和max只是设置box的范围大小.其中min和max的xyz方向的大小实际指的基于剖面视图坐标系.Box的原点和min,max可以确定位置关系:box的原点决定创建的剖面视图的原点. ...
- Revit二次开发之点、线
点(Point): 在Revit中一个点指的是在三维视图中的一个点,用XYZ表示. 如何获取元素的位置? 答:通过Element.Location属性获取. 代码实例: //选中元素 var refe ...
- revit二次开发 创建管道三通,管道四通。两根管、三根管、四根管
创建单跟水管 /// <summary>/// 创建水管Pipe/// </summary>/// <returns></returns>public ...
- revit二次开发-创建族
通过文件路径载入族 并点击任意一点创建实例 代码如下: using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk ...
- [Revit二次开发] 创建剖面并将视图切换至剖面
前言 在Revit建模过程及后期出图的时候都有需要用到剖面,然而每次我们都通过手动去创建剖面再去对剖面视图进行调整就会显得很麻烦,工作量也是相当的大. 如果我们通过使用RevitAPI只需要简单的代码 ...
- Revit二次开发“创建组遍历组Group”
group 就是吧一些有关系的对象放在一个组里面 [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manu ...
- revit二次开发 创建图纸图框,视图放到图框中心点位置
创建图纸 /// <summary>/// 创建图纸/// </summary>private void CreateViewSheet2(){FilteredElementC ...
最新文章
- 第一节 并发基础概念及实现、进程、线程基本概念
- 办公软件Office 2010下载安装介绍
- JAVA处理 M_一次Java内存泄露处理手记
- Mysql实现企业级日志管理、备份与恢复
- DataWorks功能实践速览 05——循环与遍历
- oracle诊断,Oracle 诊断事件列表
- 前端radio单选框默认选中_开发记录篇前端内容1
- 电脑提示0xc0000719设备未迁移如何解决
- java 本季度_Java获取当天、本周、本月、本季度、本年等 开始及结束时间
- 史密斯圆图串并联口诀_最近终于把阻抗匹配和史密斯圆图搞懂了,总结了一下!...
- 一些基本的灰度变换函数
- 菜鸡帆并不算长の编程之旅回顾
- Flex弹性盒子的项目属性
- 24岁小伙跟女友回家 与41岁准丈母娘畸恋私奔
- 猿编程python分为几个阶段_各个阶段的python学习路线?
- 创建一个简单的workflow工作流(WF4)
- 几种常见波形的傅里叶级数展开式
- 牛皮癣的肠-脑-皮轴
- BGP MPLS VPN(OPTION A)实验笔记
- 计算机程序存储在哪里,计算机正在运行的程序存放在哪里?