尝试利用revit的管网功能解决水利工程的引水管道建模,但是它的管道不能自定义,就尝试开发自动添加底座功能。
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Plumbing;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using System;
using System.Collections.Generic;
namespace IECOMMAND
{
/// <summary>
/// revit的管道没法加底座,针对已有的管道,自动添加底座
/// </summary>
[Transaction(TransactionMode.Manual)]
class GuanWangDC : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
Selection sel = uidoc.Selection;
//获取一根管道
Reference rePip = sel.PickObject(ObjectType.Element, new PipeSelectionFilter(), "选择一根管道");
if (rePip == null) return Result.Failed;
Pipe pip = doc.GetElement(rePip) as Pipe;
//获取管道的基准线
Line locLine = (pip.Location as LocationCurve).Curve as Line;
//获取管道的外径
double outDia = pip.get_Parameter(BuiltInParameter.RBS_PIPE_OUTER_DIAMETER).AsDouble();
//创建端部平面
XYZ oldP1 = locLine.GetEndPoint(0);
XYZ oldP2 = locLine.GetEndPoint(1);
XYZ newP2 = new XYZ(oldP2.X, oldP2.Y, ol