EaBIM

标题: Boundary的妙用(以设置文字的宽度为例) [打印本页]

作者: 萧闫子    时间: 2014-1-9 11:42
标题: Boundary的妙用(以设置文字的宽度为例)
不知大家注意到没有,在Revit视图中的文字的宽度在不同的视图比例下,同一个文字兑现给的TextNote.Width 属性值是变换的。这就给大家造成一个麻烦,那就是如何在不同的比例下,创建文字,且是文字编辑器的宽度刚好容纳下文字的宽度呢?

文字是编程中大量使用的功能,所以这个应该对大家的工作有启发意义。

Revit API提供了Element..Boundary(view)属性 用于获取在指定视图下的外包box,我们可以利用这个属性来获取文字的实际宽度,然后把这个值赋给TextNote.Width属性,达到文字的编辑器宽度正好容纳下所有文字。这样当客户双击文字进行编辑时,文字不会换行。

请看下面的实现代码。


  1. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">[csharp] view plaincopy</span>
  2. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">Transaction transaction = new Transaction(activeDoc, "create text note"); //created by Joe Ye  </span>
  3. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            transaction.Start();  </span>
  4. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">  </span>
  5. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            string str = "ABCDabcd1234";  </span>
  6. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            TextNote tn = activeDoc.Create.NewTextNote(activeDoc.ActiveView, new XYZ(0, 0, 0), new XYZ(1, 0, 0), new XYZ(0, 1, 0),0.001, TextAlignFlags.TEF_ALIGN_LEFT, str);  </span>
  7. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">                     </span>
  8. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">              </span>
  9. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            BoundingBoxXYZ bounding = tn.get_BoundingBox(activeDoc.ActiveView);  </span>
  10. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            tn.Width = (bounding.Max.X - bounding.Min.X) * (1.0 + 1.0 / str.Length); //增加一个文字的宽度,防止编辑时变成两行  </span>
  11. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">              </span>
  12. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            //show the bounding in the view to see the calculated boundary of the text.,you can remove it.  </span>
  13. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            Line line1 = activeDoc.Application.Create.NewLineBound(bounding.Min, new XYZ(bounding.Max.X,bounding.Min.Y,0));  </span>
  14. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            Line line2 = activeDoc.Application.Create.NewLineBound(new XYZ(bounding.Max.X, bounding.Min.Y, 0), bounding.Max);  </span>
  15. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            Line line3 = activeDoc.Application.Create.NewLineBound(bounding.Max,new XYZ(bounding.Min.X, bounding.Max.Y, 0) );  </span>
  16. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            Line line4 = activeDoc.Application.Create.NewLineBound(new XYZ(bounding.Min.X, bounding.Max.Y, 0), bounding.Min);  </span>
  17. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">  </span>
  18. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            activeDoc.Create.NewModelCurve(line1, activeDoc.ActiveView.SketchPlane);  </span>
  19. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            activeDoc.Create.NewModelCurve(line2, activeDoc.ActiveView.SketchPlane);  </span>
  20. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            activeDoc.Create.NewModelCurve(line3, activeDoc.ActiveView.SketchPlane);  </span>
  21. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            activeDoc.Create.NewModelCurve(line4, activeDoc.ActiveView.SketchPlane);  </span>
  22. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">  </span>
  23. <span style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">            transaction.Commit();  </span>
复制代码
使用这个方法,你可以获得Revit中任何一个对象的外包box
作者:叶雄进 转自:http://blog.csdn.net/joexiongjin/article/details/6977984

作者: 欧宝    时间: 2014-2-20 15:11
顶!!!!!!!!!!
作者: dgren    时间: 2014-2-25 10:28
(*^__^*) 嘻嘻……
作者: 飞天舞    时间: 2014-2-25 10:31
顶起来…………
作者: 一梦千寻    时间: 2014-2-25 10:33
顶...... 楼下跟上.....
作者: 风浪子    时间: 2014-3-4 13:59
顶起来…………
作者: 悠悠筱荷    时间: 2014-3-10 10:47
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 千里独行    时间: 2014-3-10 16:20
顶!!!!!!!!!!
作者: NetBeetle    时间: 2014-3-10 16:23
顶起来…………
作者: levin    时间: 2014-3-10 16:32
顶起来…………
作者: ★の风の☆    时间: 2014-3-10 16:33
顶!!!!!!!!!!!!
作者: 冰山    时间: 2014-3-10 16:48
谢谢!!!
帮顶……
作者: 雁田佬    时间: 2014-3-10 16:49
看看啥…………
作者: lw7511    时间: 2014-3-10 16:55
了解下BIM.....
作者: 茶神idg    时间: 2014-3-10 17:15
谢谢BIM大神…
作者: best    时间: 2014-3-10 17:20
顶!!!!!!!!!!
作者: 教父    时间: 2014-3-11 10:28
顶!!!!!!!!!!
作者: 悠悠筱荷    时间: 2014-3-11 10:31
谢谢BIM大神…
作者: audigy    时间: 2014-3-11 10:34
谢谢老师…
作者: 楚客    时间: 2014-3-11 10:37
非常感谢!!
作者: 一梦千寻    时间: 2014-3-13 11:59
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: chen_0003    时间: 2014-3-13 12:04
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 车奴    时间: 2014-3-13 12:11
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 莞人莞事    时间: 2014-3-13 12:14
顶!!!!!!!!!!
作者: dglei88    时间: 2014-3-13 12:27
(*^__^*) 嘻嘻……
作者: best    时间: 2014-3-13 12:30
路过!!!
帮顶……
作者: dgpeihua    时间: 2014-3-14 10:56
顶起来…………
作者: 慕容柔晴    时间: 2014-3-14 11:02
顶!!!!!!!!!!
作者: 老鼠仔CH    时间: 2014-3-18 11:00
(*^__^*) 嘻嘻……
作者: 蓝天POLO    时间: 2014-3-18 11:06
顶!!!!!!!!!!
作者: 秦惑    时间: 2014-3-20 10:52
路过!!!
帮顶……
作者: dgren    时间: 2014-3-20 10:56
路过!!!
帮顶……
作者: 爬爬``PA    时间: 2014-3-26 15:50
(*^__^*) 嘻嘻……
作者: 沧海冷月    时间: 2014-3-28 09:46
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: ben7    时间: 2014-3-28 09:50
(*^__^*) 嘻嘻……
作者: 静儿    时间: 2014-3-28 09:52
顶......
楼下跟上.....
作者: 悠悠筱荷    时间: 2014-3-28 09:57
(*^__^*) 嘻嘻……
作者: 入樽    时间: 2014-3-31 16:34
顶......
楼下跟上.....
作者: levin    时间: 2014-3-31 16:37
顶起来…………
作者: 等你回来    时间: 2014-4-2 16:02
顶!!!!!!!!!!
作者: 欧宝    时间: 2014-4-8 10:29
顶!!!!!!!!!!
作者: 极HONDA速    时间: 2014-4-8 10:34
顶!!!!!!!!!!
作者: 车奴    时间: 2014-4-8 10:35
路过!!! 不发表意见……
作者: MIMDxFzL    时间: 2014-4-10 15:48
路过!!! 不发表意见……
作者: 茶神idg    时间: 2014-4-10 15:50
顶!!!!!!!!!!
作者: 飞天舞    时间: 2014-4-10 15:54
路过!!!
帮顶……
作者: 沧海冷月    时间: 2014-5-14 14:04
顶......
楼下跟上.....
作者: 爬爬``PA    时间: 2014-5-14 14:06
路过!!!
帮顶……
作者: MIMDxFzL    时间: 2014-5-14 14:07
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: dison    时间: 2014-5-14 14:14
顶!!!!!!!!!!
作者: 乖乖仔    时间: 2014-6-12 09:45
(*^__^*) 嘻嘻……
作者: dgpeihua    时间: 2014-6-17 14:38
顶!!!!!!!!!!
作者: 严英华    时间: 2014-6-17 14:44
路过!!!
帮顶……
作者: 冰雨    时间: 2014-6-17 14:46
路过!!!
帮顶……
作者: 順順    时间: 2014-6-17 14:54
路过!!!
不发表意见……
作者: dgpeihua    时间: 2014-6-17 15:02
(*^__^*) 嘻嘻……
作者: 萧闫子    时间: 2014-6-19 10:57
赞一个
作者: 爆爆侠    时间: 2014-7-5 15:01
研究研究
作者: 萧闫子    时间: 2014-7-17 11:27
感谢分享
作者: 冰山    时间: 2014-7-31 10:23
老师讲得好




欢迎光临 EaBIM (https://eabim.net/) Powered by Discuz! X3.2