Revit二開演算法 根據圓弧上的點分割圓弧

2021-10-04 23:45:33 字數 1750 閱讀 7298

在revit二開工作中,基礎演算法很重要,例如有同學問,怎麼用圓弧上的點分割圓弧,這是基本演算法,根據圓弧上的點與圓弧中心和起點構成的角度依次排序,並生成新的圓弧線 刪除舊的圓弧線即可。

實現效果如下

**如下:

[

transaction

(transactionmode.manual)

]class

cmd_splictarc

:iexternalcommand

catch

}var arc =

(arcline.

location

as locationcurve)

.curve

as arc;

var arccenter = arc.center;

var arcradius = arc.radius;

//排除不在弧上點

points = points.

where

(m =

> m.

distanceto

(arccenter)

- arcradius <

1e-3).

tolist()

;var arcstartpo = arc.

getendpoint(0

);var arcendpo = arc.

getendpoint(1

);var arcnorm = arc.normal;

//將圓弧起始點加入列表

points.

add(arcstartpo)

; points.

add(arcendpo)

;var poanpairlist =

newlist

<

poanglepair

>()

;"共有點數:"+points.count.tostring());

foreach

(var point in points)

//排序 點角度對排序

poanpairlist = poanpairlist.

orderby

(m =

>).

tolist()

;var arclist =

newlist

<

arc>()

;for

(int i =

1; i < poanpairlist.count; i++

) doc.

invoke

(m =

>

doc.

delete

(arcline.id);}

,"分割圓弧線");

return result.succeeded;}}

public

class

poanglepair

public

arc originalarc;

public

xyz point;

public

double

angle()

}

更多revit二開知識盡在唐僧課堂!

初識revit二開

把對應的dll和addin拷貝到c programdata autodesk revit addins 2017即可。2.以類庫形式編寫程式 c windows 類庫 新增兩個引用revitapi.dll和revitapiui.dll,在revit安裝路徑下 以下是我電腦中位置 e revit201...

Revit二開 Schemachema擴充套件資料

一.什麼是schema 二.schema架構 建立revit擴充套件資料第一步是建立schema 類似建立架構設計,設計schema儲存結構,類似設計db 資料表結構 第二步是將擴充套件資料放入entity,最終儲存的位置在element。三.schemamaager public class sc...

Revit二開 剪下專題之二

revit二次開發課程 在revit的開發過程中用到的剪下有很多種,例如,牆和梁的剪下,洞口和牆的剪下,空心族的剪下等等,每種剪下採用的方法並不一樣。本例詳解空心剪下 instancevoidcututils remark utilities for cutting elements by unat...