建立雙跑樓梯(Revit二次開發)

2021-10-09 16:50:30 字數 2549 閱讀 8687

今天突然想到,revit中的雙跑樓梯對新手來說比較難繪製,於是寫了乙個小功能來達到這個目的,下面放出沒有wpf的**,如果需要新增wpf介面,請自行新增

此處需要輸入的單位為mm,已經轉換為英呎了

namespace personaltools

}return result.succeeded;

}private

elementid

createdoublerunstairs

(document document,

level levelbottom,

level leveltop,

int risernum,

double width,

double length,

double platformwidth,

xyz basepoint,

bool isornotstraight)

//樓梯中心線

xyz pathend0 =

(pnt1 + pnt3)

/2.0

;xyz pathend1 =

(pnt2 + pnt4)

/2.0

; pathcurves.

add(line.

createbound

(pathend0, pathend1));

// 建立樓梯1

stairsrun newrun1 = stairsrun.

createsketchedrun

(document, newstairsid, levelbottom.elevation, bdrycurves, risercurves, pathcurves)

;// 樓梯2引數

if(isornotstraight)

else

// 樓梯平台

curveloop landingloop =

newcurveloop()

;xyz p1 =

newxyz

(length + basepoint.x, width + basepoint.y,0)

;xyz p2 =

newxyz

(length + platformwidth + basepoint.x, width + basepoint.y,0)

;xyz p3 =

newxyz

(length + platformwidth + basepoint.x, basepoint.y - width,0)

;xyz p4 =

newxyz

(length + basepoint.x, basepoint.y - width,0)

;line curve_1 = line.

createbound

(p1, p2)

;line curve_2 = line.

createbound

(p2, p3)

;line curve_3 = line.

createbound

(p3, p4)

;line curve_4 = line.

createbound

(p4, p1)

; landingloop.

(curve_1)

; landingloop.

(curve_2)

; landingloop.

(curve_3)

; landingloop.

(curve_4)

;stairslanding newlanding = stairslanding.

createsketchedlanding

(document, newstairsid, landingloop, newrun1.topelevation)

; stairstrans.

commit()

;}// 忽略建立時失敗的事務【必須有】

newstairsscope.

commit

(new

failurespreprocessor()

);}return newstairsid;

}private list

filteredelement

(document doc,

builtincategory category,

type eletype)

}public

class

failurespreprocessor

:ifailurespreprocessor

if(fma.

getseverity()

== failureseverity.warning)

}return failureprocessingresult.proceedwithcommit;}}

}

Revit二次開發 建立Pipe

首先要建立乙個pipe,就需要看pipe有哪些建立的方法 由於我是需要在已知的兩個xyz建立管,所以選擇了第三個方法 create document document,elementid systemtypeid,elementid pipetypeid,elementid levelid,xyz ...

Revit二次開發 初學

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

Revit 二次開發建立牆的例項

1建立牆例項的方法一共5個過載 1 wall.create document document,ilistprofile,bool structural document 文件 profile 生成牆的定位線集合 structural 是否是結構 2 wall.create document doc...