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的更多相关文章
随机推荐
- linux学习之——数据操作:添加与查询
说明: 在linux系统中,利用搭建的服务器,编写两个页面,一个添加信息,一个展现信息: 主要涉及到:php+mysql的操作: 数据添加页面: <html> <head> & ...
- sublime text保存时删除行尾空格
打开sublime text,点击在Preferences, Settings-User打开的用户配置中加入以下一行: "trim_trailing_white_space_on_save& ...
- Android AppWidget
AppWidget不知道大家使用这个多不多,这个在手机上也叫做挂件,挂件也就是放在桌面方便用户进行使用的,从android1.6开始挂件支持一些简单的lauout和view,到了android4.0之 ...
- ng中的过滤器
angular中对输出的值提供过滤器,用法如下: {{name | currency:"¥"}}</p> 这是在在html中的用法,用 | 来添加过滤器,过滤器后面通过 ...
- StringBuffer
1.StringBuffer StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串 ...
- JS的循环、复杂运算符
一.循环语句 特点:可以重复完成同样的事情 1.while(条件语句/boolean){ 重复执行的代码块 } while的两种写法 var a= prompt("请输入第 ...
- (Python) 安装、基本语法
从今天起,我将开启python学习模式,并用博客记录学习的过程和相关知识点 1.Python下载安装 可以在官网:https://www.python.org/downloads/ 中下载各种版本的P ...
- Python模拟C++输出流
看到一Python例子,挺有意思的,用Python模拟C++的输出流OStream.单纯只是玩. 原理: 利用Python __lshift__左移内建函数<<,调用时将输出内容,如果内容 ...
- [f]JQ cookie插件
jQuery.cookie = function(name, value, options) { if (typeof value != 'undefined') { options = option ...
- 取td里面的内容
var rowLength = document.getElementById("table名字").rows.length; for(var i=0;i<rowLeng ...