/// <summary>
/// 创建管道
/// </summary>
/// <returns></returns>
public Pipe createPipe()
{
//过滤管道类型
FilteredElementCollector collector1 = new FilteredElementCollector(document);
List<PipeType> pipeTypes = collector1.OfClass(typeof(PipeType)).Cast<PipeType>().ToList();
PipeType pipeType = null;
foreach (PipeType item in pipeTypes)
{
if ("塑料管".Contains(item.Name))
{
pipeType = item;
break;
}
}
//过滤管道系统类型
FilteredElementCollector collector2 = new FilteredElementCollector(document);
List<PipingSystemType> pipingSystems = collector2.OfClass(typeof(PipingSystemType)).Cast<PipingSystemType>().ToList();
PipingSystemType pipingSystem = null;
foreach (PipingSystemType item in pipingSystems)
{
if ("家用冷水".Equals(item.Name))
{
pipingSystem = item;
break;
}
}
//标高
View view = document.ActiveView;
Level level = view.GenLevel;
//点
XYZ xyz1 = uIDocument.Selection.PickPoint();
XYZ xyz2 = uIDocument.Selection.PickPoint();
//创建
Pipe pipe = Pipe.Create(document, pipingSystem.Id, pipeType.Id, level.Id, xyz1, xyz2);
//修改偏移量
pipe.get_Parameter(BuiltInParameter.RBS_OFFSET_PARAM).Set(ToFoot(1800.0));
//修改直径
pipe.get_Parameter(BuiltInParameter.RBS_PIPE_DIAMETER_PARAM).Set(ToFoot(180.0));
return pipe;
}
/// <summary>
/// 毫米转英尺
/// </summary>
/// <param name="var">毫米</param>
/// <returns>英尺</returns>
public double ToFoot(double var)
{
double foot = UnitUtils.ConvertToInternalUnits(var, DisplayUnitType.DUT_MILLIMETERS);
return foot;
}
revit二次开发水管创建
于 2022-08-02 20:26:04 首次发布