• Revit API画垂直于风管的风管


    start
    /// <summary>
    /// 选择风管与风管外一点,画与风管垂直的风管。
    /// </summary>
    [Transaction(TransactionMode.Manual)]
    [Regeneration(RegenerationOption.Manual)]
    public class cmd : IExternalCommand
    {
        public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
        {
            UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
            UIApplication uiApp = cmdData.Application;
            Document doc = uiDoc.Document;
            Selection selection = uiDoc.Selection;

            Transaction ts = new Transaction(doc, "http://revit.5d6d.com");
            ts.Start();
            //得到一种风管类型
            DuctType ductType = null;
            FilteredElementCollector collector = new FilteredElementCollector(doc);
            collector.OfClass(typeof(DuctType));
            foreach (Element el in collector.ToElements())
            {
                ductType = el as DuctType;
                break;
            }
            //
            Reference refDuct = selection.PickObject(ObjectType.Element, "选择一根风管:");
            Duct duct = doc.GetElement(refDuct) as Duct;
            XYZ xyz = selection.PickPoint();//选择一点
            LocationCurve lCurve = duct.Location as LocationCurve;
            IntersectionResult interResult = lCurve.Curve.Project(xyz);//点在直线上的投影
            if (interResult != null)
            {
                doc.Create.NewDuct(xyz, interResult.XYZPoint, ductType);
            }
            ts.Commit();
            return Result.Succeeded;
        }
    }
    url:http://greatverve.cnblogs.com/p/Curve-Project.html
  • 相关阅读:
    第12组 Alpha冲刺(4/6)
    第12组 Alpha冲刺(3/6)
    第12组 Alpha冲刺(2/6)
    2019软件工程实践——第四次作业
    2019软件工程实践——第三次作业
    2019软件工程实践——第二次作业
    2019软件工程实践——第一次作业
    博客园 自定义背景图片(包括动图)
    软件工程 实验一 GIT代码版本管理
    WordCounter项目(基于javase)
  • 原文地址:https://www.cnblogs.com/greatverve/p/Curve-Project.html
Copyright © 2020-2023  润新知