Revit二次開發 所有管道和軸網建立標註

2021-10-05 07:29:18 字數 1781 閱讀 5312

篩選當前檢視中所有的管道和軸網,建立橫向和縱向的尺寸標註,

拾取乙個點作為橫向和縱向尺寸標註放置位置:

filteredelementcollector collector = new filteredelementcollector(doc, doc.activeview.id);

elementcategoryfilter filter1 = new elementcategoryfilter(builtincategory.ost_grids);

elementcategoryfilter filter2 = new elementcategoryfilter(builtincategory.ost_pipecurves);

logicalorfilter orfilter = new logicalorfilter(filter1, filter2);

collector.wherepasses(orfilter);

referencearray refarrayx = new referencearray();

referencearray refarrayy = new referencearray();

xyz xdir = new xyz(1, 0, 0);

xyz ydir = new xyz(0, 1, 0);

double miny = double.maxvalue;

double maxy = double.minvalue;

xyz minpoint = null;

xyz maxpoint = null;

double minx = double.maxvalue;

double maxx = double.minvalue;

xyz minpointx = null;

xyz maxpointx = null;

foreach (element elem in collector.toelements())

else if (y > maxy)

}else if (gdir.isalmostequalto(ydir) || gdir.isalmostequalto(-ydir))

else if (x > maxx)}}

else if (elem is pipe)

else if (y > maxy)

}else if (pdir.isalmostequalto(ydir) || pdir.isalmostequalto(-ydir))

else if (x > maxx)}}

}//拾取乙個點,基於該點的x、y放置標註

xyz selectpoint = uidoc.selection.pickpoint(objectsnaptypes.none);

xyz ypoint1 = new xyz(selectpoint.x, miny, 0);

xyz ypoint2 = new xyz(selectpoint.x, maxy, 0);

line yline = line.createbound(ypoint1,ypoint2);

xyz xpoint1 = new xyz(minx, selectpoint.y, 0);

xyz xpoint2 = new xyz(maxx, selectpoint.y, 0);

line xline = line.createbound(xpoint1, xpoint2);

using (transaction trans = new transaction(doc))

Revit二次開發 管道打斷

早就想寫點東西和大家分享了,但是介於自己的水平有限,遲遲沒有發布技術文章和大家交流。進入正題之前給大家先奉上一碗心靈雞湯,我的revit二次開發之路,走的非常的不順暢,走了非常多的彎路,經歷了很多艱苦的時刻,但是我沒有放棄,每個人也不一樣,相信你們很快的入門並且很快進步的,只要你們也和我一樣不放棄不...

Revit二次開發 軸網快速標註

通過revit二次開發實現對平行軸網的快速標註。互動操作是框選軸網 點選尺寸標註出現的位置 生成兩道尺寸標註。要達到設想的結果一些地方需要特殊考慮 框選操作容易誤選軸網,起碼要把與所選軸網不平行的軸網過濾出來。選用了第二步操作所選點的最近軸網作為軸網平行的參考基準。遍歷所有框選的軸網,如果軸網與基準...

Revit二次開發 初學

前言 由於工作需要,近期開始學習revit二次開發知識。學習的同時將學習過程與小夥伴們一起分享,希望後來的小夥伴在看到我的學習筆記的時候有所幫助。說明由於revit的版本在不斷更新中,所以我在學習revit的時候選擇了從revit自帶的幫助檔案開始學習,不同版本的revit,就看相應的help檔案。...