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, -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的更多相关文章
随机推荐
- 对需要聚类的数据使用canopy做初步的计算
K值聚类的时候,需要自己指定cluster的数目. 这个cluster数目一般是通过canopy算法进行预处理来确定的. canopy具体描述可以参考这里. 下面是 golang语言的一个实现(对经纬 ...
- ios开发 通讯录
一.通信录开发 通信录开发主要是获取用户手机中的联系人 通过获取用户的通信录,可以在应用中添加好友等 二.如何访问用户的通讯录 在iOS9之前,有2个框架可以访问用户的通讯录 目前需要适配iOS8,所 ...
- html meta中的viewport指令
viewport含义: ViewPort <meta>标记用于指定用户是否可以缩放Web页面,如果可以,那么缩放到的最大和最小缩放比例是什么.使用 ViewPort <meta> ...
- IIS访问提示您不具备查看该目录或页面的权限,因为访问控制列表 (ACL) 对 Web 服务器上的该资源进行了配置
1. 检查IIS权限,webmail目录权限. 2. 在本地安全策略中,设置从网络访问本地服务器与拒绝从网络访问本地服务器.中查看相关用户的权限 3. 如果上面的步骤还是有问题.使用下面的步骤进行设置 ...
- iOS 微信支付
相关资料 SDK下载:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1 APP端开发步骤说明:https://pay.weixin ...
- net SqlBulkCopy拷贝数据的问题
服务器配置:windows 2008 ,sql server 2008, oracle 10g. 在本地和同样配置的其他服务器上同样的程序,数据200万都很快就采集过来了,但是在发布的服务器上,如果b ...
- WordPaster-Chrome浏览器控件安装方法
将WordPaster.crx拖到Chrome扩展面板中安装
- webdriver 获取元素焦点方法
--------------------------------------- http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2013/01 ...
- sublime text 3 技巧
sublime text 技巧 学习目的:熟悉sublime快捷键和功能,改进自己的工作方式. 学习流程:先把视频中涉及到的技巧记录下,再完整的看一遍所有的菜单和功能. 前端开发工具技巧介绍-Subl ...
- 解决修改密码报错‘passwd:Authentication token’
1.修改密码时报错: 错误信息:'passwd: Authentication token manipulation error' [root@localhost test]# ' | passwd ...