Revit 二次開發之 結構層次


Revit 二次開發之 結構層次

 

 

  1. 結構層次

對於樓板和牆體來說,其都具有一定的層次類型,其層次編輯器主要通過以下界面進行添加和刪減,如下圖1-1所示:

 

 

在程序中,要獲取當前牆體、樓板的結構層次,需要到當前牆體、樓板的類型定義中獲取,其代碼如下:

FloorType floorType = floor.FloorType;

//獲取樓板的結構層

CompoundStructure compoundStructure = floorType.GetCompoundStructure();

CompoundStructure類描述着當前構件的結構層次。

  1. 2.   CompoundStructureLayer

CompoundStructure類是描述當前構件層次的類,其主要是有一個集合IList<CompoundStructureLayer> layers  記錄着所有的層次信息,主要通過類CompoundStructureLayer來描述一個層次,CompoundStructureLayer類有8中類型,其主要通過當前類的Function屬性定義,這8種類型分別是:

編號

名稱

描述

1

None

沒有再使用

2

Structure

Priority = 1 結構層,最高優先級

3

Substrate

Priority = 2 襯底,作為其他材質基礎的材質(例如膠合板或石膏板)

4

Insulation

Priority = 3 保溫層/空氣層,隔絕並防止空氣滲透,

5

Finish1

Priority = 4 面層 1 通常是外層。

6

Finish2

Priority = 5 面層 2 通常是內層。

7

Membrane

塗膜層:通常用於防止水蒸氣滲透的薄膜。塗膜層的厚度應該為零。

8

StructuralDeck

標識壓型板,表示層是結構層

CompoundStructureLayer定義對應的集合屬性如下:

編號

名稱

描述

1

DeckEmbeddingType

壓型板的類型信息,

StructDeckEmbeddingType枚舉,其包含MergeWithLayerAbove、Standalone兩種方式

2

DeckProfileId

壓型板的族的ElementId-僅適用於功能為structural deck的層

3

Function

層次類型

4

IsValidObject

是否是可驗證對象

5

LayerCapFlag

標識圖層是否參與在端點封口和/或插入處的環繞

6

LayerId

層的id,這可能不同於CompoundStructure中層數組中的索引

7

MaterialId

當前層次對應的材質

8

Width

為了保持和牆體的同意,其實表示層次的厚度,在這里用寬度描述

其與界面的關聯信息如下:

 

 

 

  1. 3.   CompoundStructure

通過CompoundStructure類,我們可以對當前的層次進行操作,如創建層次,刪除層次,獲取層次的信息等,其主要函數定義如下:

編號

名稱

描述

1

AddWallSweep

向復合結構添加新牆飾條或分隔縫。WallSweepInfo類

2

AssociateRegionWithLayer

將區域與指定的圖層進行關聯。

3

CanLayerBeStructuralMaterial

判斷指定層次是否是結構材質

4

CanLayerBeVariable

標識輸入層是否可以指定為可變厚度層

5

CanLayerWidthBeNonZero

標識將現有層的寬度從零更改為正值是否會創建矩形區域

6

ChangeRegionWidth

調整現有簡單區域的寬度

7

ClearWallSweeps

從復合結構中刪除所有放樣或分隔縫。

8

CreateSimpleCompoundStructure

創建由平行層組成的非垂直復合結構。

9

CreateSingleLayerCompoundStructure(MaterialFunctionAssignment, Double, ElementId)

創建包含單個層的CompoundStructure。

10

CreateSingleLayerCompoundStructure(Double, MaterialFunctionAssignment, Double, ElementId)

創建包含單個層的CompoundStructure。

11

DeleteLayer

從此復合結構中刪除指定的層。

12

FindEnclosingRegionAndSegments

給定一對網格坐標和分割方向,返回封閉區域和通過網格點的直線相交的兩段。

13

GetAdjacentRegions

獲取綁定到指定段的區域的ID。

14

GetCoreBoundaryLayerIndex

返回核心邊界正下方層的索引。

15

GetDeckEmbeddingType

檢索用於指定結構層組的層組嵌入類型。

16

GetDeckProfileId

檢索用於指定結構層面板的輪廓循環。

17

GetExtendableRegionIds

獲取復合結構的可擴展區域ID。

18

GetFirstCoreLayerIndex

獲取第一個核心層的索引。

19

GetLastCoreLayerIndex

獲取最后一個核心層的索引。

20

GetLayerAssociatedToRegion

獲取與特定區域關聯的層。

21

GetLayerFunction

檢索指定層的函數。

22

GetLayers

定義此復合結構的層的副本。

23

GetLayerWidth

檢索指定層的寬度。

24

GetMaterialId

檢索指定層的材質元素id。

25

GetMinimumLayerThickness

獲得最小允許層厚度。

26

GetNumberOfShellLayers

檢索內部或外部殼層的數量。

27

GetOffsetForLocationLine

返回從復合結構中心到給定位置行值的偏移量。

28

GetPreviousNonZeroLayerIndex

返回此層之前最接近的非零寬度層的索引。

29

GetRegionEnvelope

獲取指定區域跨越的封套。

30

GetRegionIds

獲取此復合結構的區域ID。

31

GetRegionsAlongLevel

返回當垂直復合結構在應用此結構的牆底部上方的固定高度上遍歷時遇到的區域的ID

32

GetRegionsAssociatedToLayer

獲取與特定層關聯的區域ID集。

33

GetSegmentCoordinate

獲取線段的坐標。

34

GetSegmentEndPoints

獲取段的端點。

35

GetSegmentIds

獲取此復合結構的段ID。

36

GetSegmentOrientation

獲取段的方向。

37

GetSimpleCompoundStructure

通過應用此復合結構的示例牆獲取水平切片,並返回描述該切片的簡單復合結構,即一系列平行層。

38

GetWallSweepsInfo

獲取此復合結構中內在牆飾條或分隔縫的列表。

39

GetWidth()

這個復合結構所暗示的寬度。

40

GetWidth(Int32)

計算指定區域的封套(二維邊界框)的寬度。

41

IsCoreLayer

檢查指定的層是否為核心層。

42

IsLayerValid

驗證此層中的數據是否內部一致。

43

IsRectangularRegion

確定指定區域是否為矩形。

44

IsSimpleRegion

確定區域是否是此復合結構中的簡單區域。

45

IsStructuralDeck

確定指定層是否為結構層面板。

46

IsValid

檢查此復合結構中的數據是否存在錯誤或不一致。

47

IsValidRegionId

確定指定的整數是否實際是此CompoundStructure中某個區域的id。

48

IsValidSampleHeight

指定的高度是否是此復合結構的有效樣本高度?

49

IsValidSegmentId

確定指定的整數是否實際是此CompoundStructure中某個段的id。

50

IsVerticallyHomogeneous

指示此CompoundStructure是否表示單個平行層集。

51

MergeRegionsAdjacentToSegment

合並共享指定段的兩個區域。

52

ParticipatesInWrapping

標識層是否包含在鑲件和末端的環繞中。

53

RemoveWallSweep

從復合結構中刪除單個放樣或分隔縫。

54

SetDeckEmbeddingType

設置要用於指定結構層面板的層面板嵌入類型。

55

SetDeckProfileId

設置要用於指定結構層面板的輪廓回路。

56

SetExtendableRegionIds

設置復合結構的可擴展區域ID。

57

SetLayer

為此復合結構設置單個層。

58

SetLayerFunction

設置指定圖層的功能。

59

SetLayers

完全重置此復合結構並應用一組新層。

60

SetLayerWidth

設置指定圖層的寬度。

61

SetMaterialId

設置指定圖層的材質元素。

62

SetNumberOfShellLayers

設置內部或外部殼層的數量。

63

SetParticipatesInWrapping

指定層是否包含在插入和結束處的環繞中。

64

SplitRegion(UV, RectangularGridSegmentOrientation)

將包含指定柵格點的區域拆分為具有指定方向的線。

65

SplitRegion(UV, RectangularGridSegmentOrientation, Int32%)

將包含指定柵格點的區域拆分為具有指定方向的線。

 

對應的屬性信息如下:

編號

名稱

描述

1

CutoffHeight

低於或位於截斷高度處的水平段與牆底部的距離固定,高於截斷高度處的水平段與牆頂部的距離固定。

2

EndCap

指示定義哪些殼層將參與端部包裹的端蓋條件。

3

HasStructuralDeck

檢查復合結構是否具有結構面板。

4

IsEmpty

檢查此復合結構是否為空。

5

IsValidObject

指定.NET對象是否表示有效的Revit實體。

6

IsVerticallyCompound

標識此復合結構是否表示比一組簡單的平行層更復雜的布局。

7

LayerCount

返回此CompoundStructure中包含的層數。

8

MinimumSampleHeight

由當前采樣高度和水平段確定的最小采樣高度。

9

OpeningWrapping

指示洞口環繞條件,用於定義在平面視圖中牆的哪些殼層在插入件和洞口處環繞。

10

SampleHeight

樣本高度是應用此復合結構中數據的牆的假定高度。

11

StructuralMaterialIndex

指定當前對應的是否是核心結構材質,對應關系如下圖

12

VariableLayerIndex

表示指定為變量的層的索引。

StructuralMaterialIndex對應的是當前的打勾層次:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM