床、天井、基礎

床、天井、基礎

床、天井、基礎関連の 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 と Ceiling は CeilingAndFloor クラスから派生したものです。

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 クラスを使用すると、スラブベースの要素のフォームを修正できます。このクラスを使用すると次の操作が可能です。

  • 選択したスラブベース要素上の 1 つまたは複数の点やエッジを操作する
  • 要素に点を追加して要素のジオメトリを変更する
  • 直線状エッジを追加して、スラブの既存の面をより小さなサブ領域に分割する
  • 形状モディファイヤを削除して、要素ジオメトリをリセットし、修正されていない形状に戻す。

ここでは、選択した修正済みの床を元の形状に戻す例を紹介します。

コード領域 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 サンプル アプリケーションを参照してください。