メッシュ筋エリアとメッシュ

メッシュ筋は、通常はコンクリート スラブで使用され、壁建設で使用されることもある溶接金網のモデル表現を提供します。

通常、メッシュ筋は互いに重なる溶接金網シートのパターンで作成され、1 つのシートから次のシートに連続して荷重を転送できます。シートは、コンクリート要素内の 1 つまたは複数のレイヤになります。

一般的に、メッシュ筋は、それぞれの方向のグリッド間隔とワイヤ サイズで指定します。例: 米国のインチ/フィート単位の 6x6 - W2.9/W2.9 (SI 単位の 152x152-MW18.7/MW18.7)は、100 分の 2.9 平方インチ(0.029 平方インチ)のワイヤ面積を持つ、中央が 6" のワイヤ グリッドとして解釈されます。Revit では、これらのシートはメッシュ筋と呼ばれる Revit システム ファミリとして表されます。これらは、メッシュ筋を構成するワイヤと呼ばれる Revit システム ファミリとしてワイヤを参照します。

メッシュ筋にはそれぞれの方向におけるワイヤ間隔とパターンをコントロールするためのプロパティ、各方向に使用する FabricWire ファミリ、正確な構成をコントロールするその他のパラメータ、シートの重なりの参照位置をコントロールするパラメータが含まれます。重なりパラメータは、プロジェクト内の既存のシートに隣接するメッシュ筋を手動で簡単に配置するための、スナップ参照を提供します。

メッシュ筋はコンテナ(FabricArea クラスによって表される)でホストしたり、1 つのメッシュ筋として存在することもできます。1 つのメッシュ筋はホストされる要素であり、構造床、構造壁、構造基礎スラブ、いずれかのタイプの構造層から作成されるパーツでホストする必要があります。曲げメッシュ筋も、構造梁、柱、ブレースにホストすることができます。API では、FabricSheet クラスがメッシュ筋を表し、FabricWire クラスがメッシュ筋を構成する鉄筋を表します。

メッシュ筋を作成する

FabricArea クラスにはオーバーロードした Create()メソッドが備わっており、ホストの境界か曲線の配列から FabricArea を作成します。1 つのメッシュ筋がホストされた要素であるように、FabricArea も構造床、壁、基礎スラブ、これらのタイプの 1 つの構造層から作成されたパーツでホストする必要があります。FabricArea コンテナによってホストされる場合、メッシュ筋が個別に作成されることはありません。

FabricSheet クラスは、モデルに 1 つの新しいメッシュ筋を作成するための、オーバーロードした静的 Create() メソッドを提供します。FabricSheet.Create()の 1 回のオーバーロードで平坦なメッシュ筋が作成され、メッシュ筋が作成されるドキュメントへの参照、メッシュ筋をホストするホスト要素への参照、作成するメッシュ筋タイプの ElementId が必要になります。

FabricSheet.Create()をさらにオーバーロードすると、曲げメッシュ筋を作成できます。これは Revit ユーザ インタフェースでは実行できません。曲げメッシュ筋の作成には、上記と同じ入力と、曲げパスを定義する CurveLoop が必要になります。この曲げパスはメッシュ筋の曲げ形状を定義するプロファイルです。FabricWires には許容される曲げ半径を定義するパラメータがあるため、CurveLoop プロファイルをフィレット付きまたはフィレットなしで提供できます。つまり、U 形状のプロファイルが必要な場合は、3 つの線のみを指定する必要があり、作成されるメッシュ筋にはコーナーに適切な曲げ半径が適用されます。指定したプロファイルにハード コーナーがない場合は(曲線の終点以外のそれぞれの点に接線がある場合など)、最終的なメッシュ筋にはフィレットが作成されません。

指定した CurveLoop は曲げワイヤの中心線を定義するために使用します。FabricSheet の BentFabricBendDirection プロパティを使用すると、曲げを主筋か配力筋のどちらに設定するかを指定できます。また、BentFabricWiresOrientation プロパティでは、曲げない方向鉄筋が曲げ鉄筋の上にくるか下にくるかを指定できます。

GetBendProfile()を呼び出すと曲げシートの曲線を取得でき、SetBendProfile()を呼び出すと新しい曲線を設定できます。

IsBent プロパティは、メッシュ筋が曲げメッシュ筋であるかどうかを表します。平坦なメッシュ筋と曲げメッシュ筋を切り替えることはできません。

1 つのメッシュ筋を配置する

メッシュ筋を作成しても、ホストにはまだ配置されていません。FabricSheet.PlaceInHost()メソッドを呼び出し、ホスト要素と、メッシュ筋の最終的な位置を表す変換を渡す必要があります。ホストとして渡される要素はホストするメッシュ筋をサポートする必要があります。曲げメッシュ筋と平坦なメッシュ筋の両方とも構造床、壁、基礎スラブ、これらのタイプのいずれかの構造層から作成されたパーツでホストできますが、梁、柱、ブレースでホストできるのは曲げメッシュ筋のみであることに注意してください。

コード領域: 曲げメッシュ筋を作成し配置
private FabricSheet CreateBentFabricSheet(Document document, Element wall)
{
    RebarHostData rebarHostData = RebarHostData.GetRebarHostData(wall);
    if (rebarHostData == null)
        return null;

    CurveLoop bendingProfile = new CurveLoop();
    Line line1 = Line.CreateBound(new XYZ(2, 0.8, 0), new XYZ(6, 0.8, 0));
    Line line2 = Line.CreateBound(new XYZ(6, -0.8, 0), new XYZ(4, -2, 0));
    Arc arc = Arc.Create(line1.GetEndPoint(1), line2.GetEndPoint(0), new XYZ(7, 0, 0));
    bendingProfile.Append(line1);
    bendingProfile.Append(arc);
    bendingProfile.Append(line2);

    ElementId fabricSheetTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.FabricSheetType);
    FabricSheet bentFabricSheet = FabricSheet.Create(document, wall.Id, fabricSheetTypeId, bendingProfile);
    // Regeneration is required before setting any property to object that was created in the same transaction.
    document.Regenerate();

    bentFabricSheet.BentFabricBendDirection = BentFabricBendDirection.Major;

    AnalyticalModelSurface ams = wall.GetAnalyticalModel() as AnalyticalModelSurface;
    bentFabricSheet.PlaceInHost(wall, ams.GetLocalCoordinateSystem());

    // Give the user some information
    TaskDialog.Show("Revit", string.Format("Bent Fabric Sheet ID='{0}' created successfully.", bentFabricSheet.Id.IntegerValue));

    return bentFabricSheet;
}