床、天井、基礎関連の API には次の項目が含まれます。
表 28: API における床、天井、基礎
オブジェクト |
要素タイプ |
ElementType タイプ |
要素の作成 |
その他 |
Floor |
Floor |
FloorType |
NewFloor()/NewSlab() |
FloorType.IsFoundationSlab = false |
スラブ |
Floor |
FloorType |
NewSlab() |
FloorType.IsFoundationSlab = false |
Ceiling | Ceiling | CeilingType | なし |
Category = OST_Ceilings |
連続基礎 |
ContFooting |
ContFootingType |
なし |
Category = OST_StructuralFoundation |
独立基礎 |
FamilyInstance |
FamilySymbol |
NewFamilyInstance() |
Category = OST_StructuralFoundation |
基礎スラブ |
Floor |
FloorType |
NewFloor() |
Category = OST_StructuralFoundation FloorType.IsFoundationSlab = true |
Floor には次の規則が適用されます。
NewFloor を使用して床や基礎スラブを作成するために、FloorType を取得するときには、次のメソッドを使用します。
図 35: 基礎、床/スラブを作成
現在、API では Floor クラスの床の勾配矢印にアクセスできません。ただし、Revit Structure では、次のように NewSlab() を使用して傾斜したスラブを作成することができます。
コード領域 11-1: NewSlab() |
public Floor NewSlab(CurveArray profile, Level level, Line slopedArrow, double slope, bool isStructural); |
勾配矢印は slopedArrow パラメータを使用して作成します。
図 36: NewSlab の slopedArrow パラメータ
NewSlab()の勾配パラメータの単位は高さ/水平距離です。
Floor.GetTypeId()メソッドを使用する代わりに、Floor.FloorType プロパティを使用することもできます。GetSpanDirectionSymbolIds()メソッドや SpanDirectionAngle プロパティといった構造関連のメンバーの詳細は、「Revit Structure」を参照してください。
Revit で独立基礎を編集するときは、次の操作を実行できます。
図 37: FoundationSlab (FamilyInstance)のホストを選択
API では連続基礎は、ContFooting クラスで表されます。API では、GetAnalyticalModel()メソッドを使用する場合を除いて、ContFooting と ContFootingType へのアクセスはともに制限されます(詳細については、「AnalyticalModel」(「Revit Structure」セクション)を参照してください)。たとえば、Revit Architecture ではアタッチされた壁は使用できません。Revit Structure では、Wall クラスと ContFooting クラスの関係性は、AnalyticalModel クラスの GetAnalyticalModelSupports()メソッドを使用して表示できます。詳細は、「AnalyticalModelSupport」(「Revit Structure」セクション)を参照してください。
図 38: 壁の ContFooting
SlabShapeEditor クラスを使用すると、スラブベースの要素のフォームを修正できます。このクラスを使用すると次の操作が可能です。
ここでは、選択した修正済みの床を元の形状に戻す例を紹介します。
コード領域 11-2: スラブの形状を戻す |
private void ResetSlabShapes(Autodesk.Revit.DB.Document document) { UIDocument uidoc = new UIDocument(document); Selection choices = uidoc.Selection; ElementSet collection = choices.Elements; foreach (Autodesk.Revit.DB.Element elem in collection) { Floor floor = elem as Floor; if (floor != null) { SlabShapeEditor slabShapeEditor = floor.SlabShapeEditor; slabShapeEditor.ResetSlabShape(); } } } |
SlabShapeEditor と関連するクラスのさらに詳しい使用例については、Revit SDK に付属の SlabShapeEditing サンプル アプリケーションを参照してください。