RME二次开发之“修改矩形风管为圆形风管”即实现“天圆地方”连接。
生活随笔
收集整理的這篇文章主要介紹了
RME二次开发之“修改矩形风管为圆形风管”即实现“天圆地方”连接。
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)兩個(gè)矩形風(fēng)管用彎頭連接的時(shí)候,如果把其中一個(gè)修改成圓形風(fēng)管。 就會(huì)自動(dòng)創(chuàng)建天圓地方。所以這里的問題就轉(zhuǎn)移到,怎樣修改矩形風(fēng)管為圓形風(fēng)管。 [Transaction(TransactionMode.Automatic)]
[Regeneration(RegenerationOption.Automatic)]
public?class?ChangeDuctKind?:?IExternalCommand
{
????public?Result?Execute(ExternalCommandData?commandData,?ref?string?messages,?ElementSet?elements)
????{
????????try
????????{
????????????UIDocument?uidoc?=?commandData.Application.ActiveUIDocument;
????????????//得到選擇的對(duì)象
????????????Selection?selection?=?uidoc.Selection;
????????????ElementSet?collection?=?selection.Elements;
????????????//遍歷得到所有風(fēng)管類型
????????????FilteredElementCollector?collector?=?new?FilteredElementCollector(uidoc.Document);
????????????collector.OfClass(typeof(DuctType));
????????????//if?(collector?!=?null)
????????????//????collector.OfCategory(BuiltInCategory.OST_Walls);
????????????IList<Element>?list?=?collector.ToElements();
????????????DuctType?dType?=?null;
????????????for?(int?i?=?0;?i?<?list.Count;?i++)
????????????{
????????????????if?(list.ElementAt(i).Name?==?"T?形三通")//屬于圓形風(fēng)管
????????????????????dType?=?list.ElementAt(i)?as?DuctType;
????????????}
????????????if?(0?==?collection.Size)
????????????{
????????????????TaskDialog.Show("Revit",?"You?haven't?selected?any?elements");
????????????}
????????????else
????????????{
????????????????foreach?(Element?elem?in?collection)
????????????????{
????????????????????Duct?duct?=?elem?as?Duct;
????????????????????if?(duct?!=?null)
????????????????????{
????????????????????????duct.DuctType?=?dType;//通過修改DuctType可以修改DuctKind
????????????????????}
????????????????}
????????????}
????????}
????????catch?(Exception?e)
????????{
????????????messages?=?e.Message;
????????????return?Result.Failed;
????????}
????????return?Result.Succeeded;
????}
}
from:http://revit.5d6d.com/thread-865-1-4.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
[Regeneration(RegenerationOption.Automatic)]
public?class?ChangeDuctKind?:?IExternalCommand
{
????public?Result?Execute(ExternalCommandData?commandData,?ref?string?messages,?ElementSet?elements)
????{
????????try
????????{
????????????UIDocument?uidoc?=?commandData.Application.ActiveUIDocument;
????????????//得到選擇的對(duì)象
????????????Selection?selection?=?uidoc.Selection;
????????????ElementSet?collection?=?selection.Elements;
????????????//遍歷得到所有風(fēng)管類型
????????????FilteredElementCollector?collector?=?new?FilteredElementCollector(uidoc.Document);
????????????collector.OfClass(typeof(DuctType));
????????????//if?(collector?!=?null)
????????????//????collector.OfCategory(BuiltInCategory.OST_Walls);
????????????IList<Element>?list?=?collector.ToElements();
????????????DuctType?dType?=?null;
????????????for?(int?i?=?0;?i?<?list.Count;?i++)
????????????{
????????????????if?(list.ElementAt(i).Name?==?"T?形三通")//屬于圓形風(fēng)管
????????????????????dType?=?list.ElementAt(i)?as?DuctType;
????????????}
????????????if?(0?==?collection.Size)
????????????{
????????????????TaskDialog.Show("Revit",?"You?haven't?selected?any?elements");
????????????}
????????????else
????????????{
????????????????foreach?(Element?elem?in?collection)
????????????????{
????????????????????Duct?duct?=?elem?as?Duct;
????????????????????if?(duct?!=?null)
????????????????????{
????????????????????????duct.DuctType?=?dType;//通過修改DuctType可以修改DuctKind
????????????????????}
????????????????}
????????????}
????????}
????????catch?(Exception?e)
????????{
????????????messages?=?e.Message;
????????????return?Result.Failed;
????????}
????????return?Result.Succeeded;
????}
}
| 此法已過時(shí),Revit2012可以直接使用NewEblowFitting()創(chuàng)建天圓地方連接。 |
總結(jié)
以上是生活随笔為你收集整理的RME二次开发之“修改矩形风管为圆形风管”即实现“天圆地方”连接。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几个常用shell脚本命令
- 下一篇: 旋转填数