创建桥架、线管
创建桥架通过过滤器获取桥架类型选择点得到活跃视图标高创建桥架修改宽、高完整代码 创建线管获取线管类型获取标高获取点创建修改直径完整代码创建桥架
/// <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;}
直接开启事务在事务里就可以创建了!