使用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#调用c++方法介绍,window api

    c#调用c++方法介绍,window api

    c#在调用c++方法或者window api时不能象调用c#本身写的dll类库那样直接通过引用dll就可以调用相应的方法, 而是要把要引用的dll放到bin中,现通过[DllImport("um_web_client.dll")]引用
    2013-10-10
  • C# 实现与现有.NET事件桥接简单实例

    C# 实现与现有.NET事件桥接简单实例

    这篇文章主要介绍了C# 实现与现有.NET事件桥接简单实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • 利用C#/VB.NET实现PPT转换为HTML

    利用C#/VB.NET实现PPT转换为HTML

    利用PowerPoint可以很方便的呈现多媒体信息,且信息形式多媒体化,表现力强。但难免在某些情况下我们会需要将PowerPoint转换为HTML格式,本文就为大家整理了转换方法,希望对大家有所帮助
    2023-05-05
  • Unity使用LineRender断笔写字

    Unity使用LineRender断笔写字

    这篇文章主要为大家详细介绍了Unity使用LineRender断笔写字效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Unity Shader片段着色器使用基础详解

    Unity Shader片段着色器使用基础详解

    顶点-片段着色器是Unity Shader中最基础的着色器类型,用于控制3D模型的渲染效果。通过顶点着色器计算模型的顶点位置和法线方向,再通过片段着色器计算模型表面的颜色、光照、阴影等效果
    2023-05-05
  • C#基础之数组排序、对象大小比较实现代码

    C#基础之数组排序、对象大小比较实现代码

    C#基础之数组排序、对象大小比较实现代码,学习c#的朋友可以参考下。
    2011-08-08
  • C#知识整理

    C#知识整理

    本文主要介绍了C#的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 详解C#如何实现读写ini文件

    详解C#如何实现读写ini文件

    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置。本文将介绍C#读写ini文件的方法,需要的可以参考一下
    2022-01-01
  • c# 实现窗体拖到屏幕边缘自动隐藏

    c# 实现窗体拖到屏幕边缘自动隐藏

    让窗体拖到屏幕边缘自动隐藏的原理,通过Form1_LocationChanged的方法,当窗体位置发生改变时,判断其是否在屏幕边缘,在则隐藏。再通过Timer控件经过指定时间判断出鼠标的位置,若鼠标在屏幕左边、上边或右边,这根据窗体的位置,调出窗体。
    2009-02-02
  • unity AudioSource播放完声音后要执行的函数或条件操作

    unity AudioSource播放完声音后要执行的函数或条件操作

    这篇文章主要介绍了unity AudioSource播放完声音后要执行的函数或条件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论