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的更多相关文章
随机推荐
- Java核心知识点学习----线程中如何创建锁和使用锁 Lock,设计一个缓存系统
理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...
- python安装pycrypto报错error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
系统3.19.0-15-generic #15-Ubuntu 安装pycrypto提示error: command 'x86_64-linux-gnu-gcc' failed with exit st ...
- POJ 3181 Dollar Dayz DP
f[i][j]=f[i-j][j]+f[i][j-1],结果很大需要高精度. //#pragma comment(linker, "/STACK:1024000000,1024000000& ...
- QEMU/KVM功能测试
最近在对QEMU/KVM在HP服务器进行功能测试,项目刚刚启动,遇到不少问题,从Git上拿到最新的source build进行测试,在RHEL7.0a3 + Kernel version3.10 + ...
- jquery上传图片插件plupload
官方网站:http://plupload.com/ jquery.plupload.queue插件,是上传图片组件很强大的插件.plupload 前端根据浏览器不同选择使用Html5. Gears, ...
- 【洛谷P1080】国王游戏
我们按照左右手数的乘积升序排序,就能使最多金币数最小了 为什么呢? 我们知道: 1)如果相邻的两个人交换位置,只会影响到这两个人的值,不会影响他人 2)假设相邻的两个人i, i + 1.设A[i] B ...
- lua 入门学习
-- 1.Hello world print( "--------------1--------------") print("Hello world"); - ...
- Map:containsKey、containsValue 获取Map集合的键值的 值
get(Object key) 返回与指定键关联的值: containsKey(Object key) 如果Map包含指定键的隐射,则返回true: containsValue(Object valu ...
- 理解RHEL上安装oracle的配置参数
无论安装什么版本的oracle,在安装之前,都需要配置 /etc/pam.d/login /etc/profile /etc/security/limits.conf这三个文件 那这三个文件究 ...
- iOS开发零基础--Swift篇:逻辑分支
一. 分支的介绍 分支即if/switch/三目运算符等判断语句 通过分支语句可以控制程序的执行流程 二. if分支语句 和OC中if语句有一定的区别 判断句可以不加() 在Swift的判断句中必须有 ...