cmdCreateViewTag

时间:2021-10-11 00:41:38

start

//把当前视图名称与比例标注在最低的轴网下面
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdCreateViewTag : IExternalCommand
{
    /// <summary>
    /// 得到最下面的轴网
    /// </summary>
    /// <param name="doc"></param>
    /// <returns></returns>
    public Grid GetLowestGrid(Document doc)
    {
        FilteredElementCollector collector = new FilteredElementCollector(doc);
        collector.OfClass(typeof(Grid)).OfCategory(BuiltInCategory.OST_Grids);//
        Grid grid = null;
        foreach (Element el in collector)
        {
            if (grid == null)
            {
                grid = el as Grid;
            }
            else
            {
                Grid gridTmp = el as Grid;
                if (gridTmp.Curve.get_EndPoint(0).Y < grid.Curve.get_EndPoint(0).Y)
                {
                    grid = gridTmp;
                }
            }
        }
        return grid;
    }
    /// <summary>
    /// 得到当前视图名称
    /// </summary>
    /// <param name="doc"></param>
    /// <returns></returns>
    public string GetViewName(Document doc)
    {
        return doc.ActiveView.Name;
    }
    /// <summary>
    /// 得到视图比例
    /// </summary>
    /// <param name="doc"></param>
    /// <returns></returns>
    public string GetViewScale(Document doc)
    {
        return "1 : " + doc.ActiveView.get_Parameter(BuiltInParameter.VIEW_SCALE).AsInteger().ToString();
    }
    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
    {
        Document doc = cmdData.Application.ActiveUIDocument.Document;         Transaction ts = new Transaction(doc, "http://revit.5d6d.com");
        ts.Start();
        //得到最低的轴网,得到原点
        Grid grid = GetLowestGrid(doc);
        if (grid == null)
        {
            ts.RollBack();
            return Result.Cancelled;
        }
        XYZ xyzOrigin = grid.Curve.get_EndPoint(0) + new XYZ(0, -1, 0);
        //得到视图名称,得到视图比例
        string strText = "视图名称:" + GetViewName(doc) + "\n视图比例:" + GetViewScale(doc);
        //
        XYZ baseVec = new XYZ(0, 0, 0);
        XYZ upVec = new XYZ(0, 0, 0);
        double dWidth = 0.16;
        TextAlignFlags textAlign = TextAlignFlags.TEF_ALIGN_LEFT | TextAlignFlags.TEF_ALIGN_TOP;
        TextNote textNote = doc.Create.NewTextNote(doc.ActiveView, xyzOrigin, baseVec, upVec, dWidth, textAlign, strText);         ts.Commit();         return Result.Succeeded;
    }
}

end

cmdCreateViewTag的更多相关文章

    随机推荐

    1. Linux之源码包安装软件

      安装准备      安装c语言编辑器 gcc      压缩包  node-v6.2.0-linux-x64.tar.gz   源码包保存位置  /usr/local/src/ 源码包安装位置 /us ...

    2. 关于SharPoint2013一点细节的深究

      在进行SharePoint2013的开发过程中我发现在开启了某些功能,或者说是创建了个人站点之后有很多地方变了比如下面这个地方:     当然相应的URL地址也发生改变.也许很明确的我就打开了Welc ...

    3. Java容器类接口的选择

      我们知道Java容器类实际提供了四类接口:Map,List,Set和Queue,如下图所示,每种接口都有不止一个版本的实现,如果在实际编写程序时需要使用某种接口时该如何选择. 从Oracle的Java ...

    4. poj 2253 Frogger dijkstra算法实现

      点击打开链接 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21653   Accepted: 7042 D ...

    5. WebService到底是什么?(转)

      一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

    6. 开源 免费 java CMS - FreeCMS2&period;0 会员我的评论

      项目地址:http://www.freeteam.cn/ 我的评论 从左側管理菜单点击我的评论进入. 在这里能够查看当前登录会员的全部评论记录. 删除评论 选择评论然后点击删除button能够完毕删除 ...

    7. (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找

      环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...

    8. &lbrack;原&rsqb;Jenkins&lpar;二十一&rpar; jenkins再出发Build periodically和Poll SCM

      缘由: 使用jenkins的目的需要固定时间构建和间隔固定时间构建,所以才会用到这两个功能. 位置:这两个功能的位置位于每个job的config项中,如下图: [重要的注意点:]           ...

    9. Oracle课程档案,第一天。

      sys是Oracle最高权限者 DBSNMP:简单网络管理系统 ctrl+d回到oracle目录 在SQL中输入 exit也可以 select:列 where:行 sqlplus / as sysdb ...

    10. string函数的一些实现

      /************************************************************************* > File Name: test.cpp ...

    相关文章