RME二次开发之“修改矩形风管为圆形风管”即实现“天圆地方”连接。
生活随笔
收集整理的這篇文章主要介紹了
RME二次开发之“修改矩形风管为圆形风管”即实现“天圆地方”连接。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當兩個矩形風管用彎頭連接的時候,如果把其中一個修改成圓形風管。 就會自動創建天圓地方。所以這里的問題就轉移到,怎樣修改矩形風管為圓形風管。 [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;
????????????//得到選擇的對象
????????????Selection?selection?=?uidoc.Selection;
????????????ElementSet?collection?=?selection.Elements;
????????????//遍歷得到所有風管類型
????????????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?形三通")//屬于圓形風管
????????????????????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
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
[Regeneration(RegenerationOption.Automatic)]
public?class?ChangeDuctKind?:?IExternalCommand
{
????public?Result?Execute(ExternalCommandData?commandData,?ref?string?messages,?ElementSet?elements)
????{
????????try
????????{
????????????UIDocument?uidoc?=?commandData.Application.ActiveUIDocument;
????????????//得到選擇的對象
????????????Selection?selection?=?uidoc.Selection;
????????????ElementSet?collection?=?selection.Elements;
????????????//遍歷得到所有風管類型
????????????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?形三通")//屬于圓形風管
????????????????????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;
????}
}
| 此法已過時,Revit2012可以直接使用NewEblowFitting()創建天圓地方連接。 |
總結
以上是生活随笔為你收集整理的RME二次开发之“修改矩形风管为圆形风管”即实现“天圆地方”连接。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几个常用shell脚本命令
- 下一篇: wrf文件怎么打开(电脑网页打开太慢或者