使用revit api画垂直于风管的风管示例

 更新时间:2014年03月03日 09:47:33   作者:  
这篇文章主要介绍了使用revit api画垂直于风管的风管示例,需要的朋友可以参考下

复制代码 代码如下:

/// <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, "https://www.jb51.net");
        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;
    }
}

相关文章

  • C#使用ZXing.Net实现识别二维码和条码

    C#使用ZXing.Net实现识别二维码和条码

    ZXing用Java实现的多种格式的一维二维条码图像处理库,而ZXing.Net是其.Net版本的实现,本文主要为大家详细介绍了如何使用ZXing.Net实现识别二维码和条码,需要的可以参考下
    2024-01-01
  • Unity实现注册登录模块

    Unity实现注册登录模块

    这篇文章主要为大家详细介绍了Unity实现注册登录模块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C#特性 迭代器(下) yield以及流的延迟计算

    C#特性 迭代器(下) yield以及流的延迟计算

    这篇文章主要介绍了C#特性 迭代器(下) yield以及流的延迟计算,需要的朋友可以参考下
    2014-12-12
  • C# 泛型数组学习小结

    C# 泛型数组学习小结

    C# 泛型数组学习中我们需要注意什么事项呢?C# 泛型数组的使用又是如何呢?那么本文就向你详细介绍这方面的内容
    2012-09-09
  • C#基于Socket的网络通信类你了解吗

    C#基于Socket的网络通信类你了解吗

    这篇文章主要为大家详细介绍了C#基于Socket的网络通信类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C#实现洗牌游戏实例

    C#实现洗牌游戏实例

    这篇文章主要介绍了C#实现洗牌游戏实例,对于数据结构与算法的学习有不错的借鉴参考作用,需要的朋友可以参考下
    2014-08-08
  • 桌面浮动窗口(类似恶意广告)的实现详解

    桌面浮动窗口(类似恶意广告)的实现详解

    本篇文章是对桌面浮动窗口的实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • c#简单工厂、工厂方法与抽象工厂的区别分析

    c#简单工厂、工厂方法与抽象工厂的区别分析

    看了网络上很多关于设计模式的方法,有的模式看起来相似,但本质还是区别很大的.像简单工厂,工厂方法和抽象工厂就有很明显的区别.
    2013-03-03
  • unity实现贴图矩阵运算(旋转平移缩放)

    unity实现贴图矩阵运算(旋转平移缩放)

    这篇文章主要为大家详细介绍了unity实现贴图矩阵运算,旋转平移缩放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • 详解C# Protobuf如何做到0分配内存的序列化

    详解C# Protobuf如何做到0分配内存的序列化

    这篇文章主要介绍了详解C# Protobuf如何做到0分配内存的序列化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论