• cmdCreateViewTag


    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, -10);
            //得到视图名称,得到视图比例
            string strText = "视图名称:" + GetViewName(doc) + " 视图比例:" + GetViewScale(doc);
            //
            XYZ baseVec = new XYZ(000);
            XYZ upVec = new XYZ(000);
            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
  • 相关阅读:
    We7网站群系统中标胜利油田项目 开源CMS
    We7荣获“政府网站群建设最佳产品奖” 开源CMS
    JAVA中 成员变量和和实例变量区别 前行
    HTTPS 加密原理探究 前行
    zip mysql安装启动方式 前行
    如何获取监听iframe src属性的变化进行后续操作 前行
    js分割url提取参数 前行
    web跨域问题解决方案 前行
    作业3.18
    3.26作业
  • 原文地址:https://www.cnblogs.com/greatverve/p/CreateViewTag.html
Copyright © 2020-2023  润新知