RevitAPIを開始するときに読むドキュメント(日本語版)
はじめに
Revitアドインを作成するための開発者ツールキット「Revit 2026.2 SDK」内のコンテンツ「Getting Started with the Revit API.doc」を日本語翻訳してみました。
ドキュメントもチュートリアルも日本語版が無く、英語できない人にはつらいし英語圏の人はこの膨大なリソースにネイティブでアクセスできる環境が羨ましいです。
結構重要な内容も書かれているので、web検索等で誰かの課題解決になれば幸いです。
具体的な始め方は、「Revit2026アドインの始め方【🔰初心者向け】」を参照してください。
概要
Autodesk Revit は、パワーユーザーや外部アプリケーション開発者が Autodesk Revit、Revit Structure、Revit Architecture、Revit MEP と統合できるよう設計された API を提供しています。各製品の API は非常に類似しており、まとめて「Autodesk Revit 2026.2 API」または「Autodesk Revit API」と呼びます。Revit Architecture、Structure、MEP の機能に慣れてから Revit API を使用することを強く推奨します。トレーニングは Autodesk Developer Network (ADN) で提供されています。
Revit API でできること
API が適している主な領域は次のとおりです。
- Autodesk Revit の UI で繰り返し作業を自動化するアドインの作成
- プロジェクト設計標準の適用(自動エラーチェック)
- プロジェクトデータの抽出(解析・レポート生成)
- 外部データのインポート(新しい要素作成やパラメータ値の設定)
- 解析アプリなど他アプリケーションの Revit 製品への統合
- Autodesk Revit のプロジェクトドキュメントの自動生成
開始に必要なもの
- Autodesk Revit の実務的な理解
- Autodesk Revit ベース製品のインストール(Software Development Kit を含む)
- MS Visual Studio 2019 または MS Visual Studio 2019 Express Edition、または Visual Studio のフルインストール
- .NET ベース言語の経験(Revit API のサンプルは C# と Visual Basic .NET で提供)
- 自由時間 2 日
Autodesk Revit の理解
Revit 系製品はすべてパラメトリック BIM ツールです。これは複数の図面ファイルを作るのではなく、3D モデルを構築する CAD のようなものと考えられます。Revit のモデリングは、柱、壁、ドア、窓など実世界の要素で行います。モデルから平面図、断面図、詳細呼び出しなどのビューを作成でき、これらはすべて 3D 物理モデルから直接生成されるため、1 つのビューの変更は他のすべてのビューに自動反映されます。これにより、モデル変更時に複数の図面や詳細を更新する必要がほぼなくなります。
Revit API はプログラムの GUI と同じユーザー操作パラダイムを反映するよう設計されています。したがって API を理解する第一歩は、プログラムの使い方を学ぶことです。Revit 初心者の方には、ヘルプメニューからアクセスできるチュートリアルから始めることをおすすめします。ローカルの Autodesk リセラーが提供するトレーニングも受講すると、短期間で習得が進みます。
Autodesk リソース:
- http://www.autodesk.com/products/revit-family/overview
- http://www.autodesk.com/solutions/building-information-modeling/overview
- http://forums.autodesk.com/
その後の選択
外部リソース:
Autodesk Revit API のインストール
Revit ベース製品のデフォルトインストールにより、Revit API は自動的にインストールされます。Revit API SDK は、インストール DVD の「Tools and Utilities」セクションからインストールします。
開発要件
Revit API には Microsoft .NET Framework v4.8 が必要です。API アプリを編集・デバッグするには、Microsoft Visual Studio 2019 または C# / VB.NET 向け Visual Studio Express Edition などの IDE が必要です。Revit API で開発する際は、プロジェクトで Autodesk Revit プログラムディレクトリ内の RevitAPI.dll と RevitAPIUI.dll の 2 つの DLL を参照してください。
API を効果的に使用するには一定のプログラミングスキルが必要です。初心者の方は、Visual Studio 2019 と C# または VB.NET の習得を強く推奨します。入門書や講座が多数あります。
リソース(オンライン):
- Free Visual Studio - http://msdn.microsoft.com/VStudio/Express/
- http://www.codeguru.com/
- http://devx.com/
- http://www.msdn.microsoft.com/
書籍:
- Steve McConnell『Code Complete 第2版』
- Steve McConnell『Software Project Survival Guide』
Revit API の利用 — Revit SDK とオンラインヘルプ
ADN またはインストール DVD から Revit SDK を入手します。Revit 2026.2 SDK は、インストール DVD の「Tools and Utilities」から展開・インストールできます。SDK には API の理解と利用に役立つサンプルが含まれています。各サンプルには、起動時に Revit が参照する Revit プログラムフォルダ内の revit.ini に転記すべき情報を示すサンプル revit.ini が付属しています。
- SDK をローカルドライブに解凍
- SDK の Read Me First.doc を読む
RevitAPI.chm は Revit API のリファレンスドキュメントで、SDK パッケージの「\Revit 2026.2 SDK\」フォルダに含まれます。
リンク集
- www.autodesk.com/adn(ADN ホーム)
- www.autodesk.com/developrevit(Revit 開発リソース)
-
http://discussion.autodesk.com(Autodesk 製品ディスカッショングループ)
- Select = Autodesk Revit Architecture
- Then Select = Autodesk Revit API
- http://thebuildingcoder.typepad.com/blog/(The Building Coder:Revit コーディングに特化した ADN ブログ)
- http://bimapps.typepad.com/(Bim Apps:BIM アプリ専用ブログ)
ドキュメント表記規則
このドキュメントでは、Autodesk.Revit.DB.Element のような名前空間形式の名前を使用します。
デプロイメントオプション
Revit API はインプロセス DLL のみをサポートします。つまり、API アプリは Revit のプロセスに読み込まれる DLL としてコンパイルされます。
Revit API はシングルスレッドアクセスのみをサポートします。API 呼び出しはすべてメインスレッド(Revit が各 API エントリポイントから呼び出すスレッド)で実行する必要があり、他スレッドで実行中の処理から任意のタイミングで Revit API を呼び出すことはできません。
Revit API で作成できる DLL は 2 種類あります。
1. 外部コマンド(External Commands)
Revit の UI に新しいコマンドを追加できます。これらのコマンドは「アドイン」タブの「External Tools」プルダウンに表示されます(図1参照)。外部ツールコマンドは、Revit のデータベースおよび現在選択されている要素にアクセスできます。

図1 — Revit に追加された External Tool
2. 外部アプリケーション(External Applications)
外部アプリケーションは、Revit の起動・終了時に呼び出されます。「アドイン」タブに新しいパネルを作成できます(図2参照)。また、Revit の UI で発生するイベントに反応するハンドラを登録できます。

図2 — Revit に追加された新しいパネルとコントロール
アドインの登録
Revit API では、.addin マニフェストファイルで API アプリケーションを登録できます。
マニフェストファイルは、ユーザーのシステム上の次の 2 箇所に配置すると Revit により自動的に読み込まれます。
- 非ユーザー固有の「アプリケーションデータ」場所:
- C:\ProgramData\Autodesk\Revit\Addins\2026.2\
- ユーザー固有の「アプリケーションデータ」場所:
- C:\Users<user>\AppData\Roaming\Autodesk\Revit\Addins\2026.2\
これらの場所にある拡張子 .addin のすべてのファイルは、Revit の起動時に読み込まれて処理されます。
外部コマンドを 1 つ追加する基本ファイル例(原文準拠のテキスト):
<?xml version="1.0" encoding="utf-16" standalone="no"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>c:\MyProgram\MyProgram.dll</Assembly>
<AddInId>76eb700a-2c85-4888-a78d-31429ecae9ed</AddInId>
<FullClassName>Revit.Samples.SampleCommand</FullClassName>
<Text>Sample command</Text>
<VisibilityMode>NotVisibleInFamily</VisibilityMode>
<VisibilityMode>NotVisibleInMEP</VisibilityMode>
<AvailabilityClassName>Revit.Samples.SampleAccessibilityCheck</AvailabilityClassName>
</AddIn>
</RevitAddIns>
外部アプリケーションを 1 つ追加する基本ファイル例:
<?xml version="1.0" encoding="utf-16" standalone="no"?>
<RevitAddIns>
<AddIn Type="Application">
<Name>My sample application</Name>
<Assembly>c:\MyProgram\MyProgram.dll</Assembly>
<AddInId>604B1052-F742-4951-8576-C261D1993107</AddInId>
<FullClassName>Revit.Samples.SampleApplication</FullClassName>
</AddIn>
</RevitAddIns>
1 つのマニフェストファイルに複数の AddIn 要素を記述できます。
マニフェストで使用できる主な XML タグ
| タグ | 説明 |
|---|---|
| Assembly | アドインのアセンブリファイルへのフルパス。外部コマンド/外部アプリの両方で必須。 |
| FullClassName | アセンブリ内で IExternalCommand または IExternalApplication を実装するクラスの完全名。外部コマンド/外部アプリの両方で必須。 |
| AddInId | このアプリケーションの ID を表す GUID。AddInId は Revit のセッション内で一意である必要がある。Autodesk は登録する各アプリ/コマンドごとに一意の GUID を生成することを推奨。外部コマンド/外部アプリの両方で必須。必要に応じて UIApplication.ActiveAddInId プロパティからプログラム的に参照可能。 |
| Name | アプリケーション名。外部アプリのみ必須。 |
| Text | ボタン名。外部コマンドのみ任意。既定は「External Tool」。 |
| Description | コマンドの短い説明。ボタンのツールチップとして使用。外部コマンドのみ任意。既定はコマンドテキストのみのツールチップ。 |
| VisibilityMode | コマンドがプロジェクト文書・ファミリ文書・文書なしのどこで表示されるかを指定。さらに表示対象のディシプリン(分野)も指定可能。複数値の設定可。外部コマンドのみ任意。既定ではアクティブ文書がない場合も含め、すべてのモード/分野で表示。アクティブ文書を前提とする既存のコマンドは、文書なし呼び出しに対応するようコードを修正するか、NotVisibleWhenNoActiveDocument を適用。 |
| AvailabilityClassName | IExternalCommandAvailability を実装するクラスの完全名。コンテキストに応じてコマンドボタンを使用不可(グレーアウト)にできる。外部コマンドのみ任意。既定では表示されているとき常に使用可能。 |
| LargeImage | External Tools プルダウンのボタン用アイコンへのパス。推奨アイコンサイズは 32×32 ピクセル。外部コマンドのみ任意。既定はアイコンなしのボタン。 |
| LongDescription | コマンドの長い説明。ボタンの拡張ツールチップの一部として使用。マウスを一定時間ホバーすると表示。複数段落に分割するには各段落を <p> タグで囲む。外部コマンドのみ任意。LongDescription と TooltipImage のいずれも指定しない場合、拡張ツールチップは表示されない。 |
| TooltipImage | 拡張ツールチップに表示する画像ファイルへのパス。マウスを長時間ホバーすると表示。外部コマンドのみ任意。LongDescription と TooltipImage のどちらも指定されない場合、拡張ツールチップは表示されない。 |
| LanguageType | Text、Description、LargeImage、LongDescription、TooltipImage のローカライズ設定。指定した言語リソース DLL から値を読み込む。値は Revit がサポートする 11 言語のいずれか。LanguageType を指定しない場合、現在の Revit セッションの言語リソースが自動的に読み込まれる。 |
外部コマンド
- 特定のインタフェース(Autodesk.Revit.UI.IExternalCommand)を実装する
- 外部コマンドを記述するエントリを Revit.ini に 1 つ以上追加する
技術的には、外部コマンドは Autodesk.Revit.UI.IExternalCommand をサポートする公開 .NET オブジェクトです。さらに Revit.ini に、Revit がコマンドを認識・使用できるよう各オブジェクトに対するエントリが必要です。
IExternalCommand インタフェース
VB.NET による宣言:
Function Execute(ByVal commandData As Autodesk.Revit.UI.ExternalCommandData,
ByRef message As String,
ByVal elements As Autodesk.Revit.DB.ElementSet)
As Result
パラメータ
- commandData: 実行中のコマンドに重要な情報を含むオブジェクト。Revit Application オブジェクトや現在のアクティブビューなどを含む。
- message: コマンド終了時にユーザーへ特定のメッセージを提示するために設定できる文字列。表示方法は戻り値に依存。
- elements: 当初は空のセット。コマンド終了時、戻り値に応じてこのセット内の要素が表示される場合がある。
戻り値
- Success: 予期どおり成功し、未処理エラーがない場合。外部コマンドは Revit UI 上で取り消し可能操作として扱われる。
- Cancelled: ユーザーがコマンドのキャンセルを要求した場合。外部コマンドの実行中に行われた Revit オブジェクトの変更は取り消される。メッセージの表示可。
- Failure: 復旧不能な失敗。実行中に行われた変更は取り消され、メッセージが表示される。
備考
- Cancelled: コマンドがキャンセルされ、message が設定されていれば、制御が Revit に戻った際にメッセージが表示される。未設定ならメッセージは表示されず静かに終了。
- Failed: 失敗した場合、message の内容が表示される。elements セットに Revit 要素が含まれていれば、エラーメッセージ表示時にそれらがハイライトされ、問題の要素をユーザーに示せる。
外部コマンドの利用手順
- ユーザーが Revit でプロジェクトを開く/作成する
- 「アドイン」タブの「External Tools」プルダウンから外部コマンドを選択
- 実行前にユーザーが要素を選択済みの場合、プログラムは選択要素のみを対象に処理可能
- API プログラムが Revit からフォーカスを取り、必要な処理を実行(ユーザー入力用ダイアログが必要な場合あり)
- ツールが機能を完了/ユーザーが閉じると、プログラムは必要に応じて Revit モデルを更新し、コマンドから復帰して Revit にフォーカスを返す
外部コマンド・オブジェクトのライフタイム
Revit 内で他のコマンドや編集モードがアクティブでないとき、登録済み外部コマンドは有効になる。選択されるとコマンドオブジェクトが生成され、Execute メソッドが呼ばれる。メソッドが Revit に戻るとオブジェクトは破棄される。このため、コマンド間でオブジェクト内のデータは保持されない。データの永続化が必要であれば外部ファイルやデータベースを使用する。Revit プロジェクト内で保持したい場合は共有パラメータを利用する。
外部アプリケーション
- 特定のインタフェース(Autodesk.Revit.UI.IExternalApplication)を実装する
- 外部アプリケーションを記述するエントリを Revit.ini に 1 つ以上追加する
技術的には、外部アプリケーションは Autodesk.Revit.UI.IExternalApplication をサポートする公開 .NET オブジェクトです。さらに Revit.ini に、Revit が起動時にこれらのアプリケーションを読み込めるよう各オブジェクトに対するエントリが必要です。
IExternalApplication インタフェース
C# による宣言:
Autodesk.Revit.UI.IExternalApplication.Result OnStartup(Autodesk.Revit.ControlledApplication application)
Autodesk.Revit.UI.IExternalApplication.Result OnShutdown(Autodesk.Revit.ControlledApplication application)
パラメータ
- application: OnStartup / OnShutdown 呼び出しに重要な情報を含むオブジェクト。VersionName、VersionNumber といった Revit Application の限定的アクセサや、OnDocumentOpened、OnDocumentSaved などのイベント用デリゲートを提供。
戻り値
- Success: 未処理エラーなく期待どおり成功
- Failure: 復旧不能な失敗
- Cancelled: 外部アプリケーションの実行をキャンセル
外部アプリケーション・オブジェクトのライフタイム
Revit の起動時に外部アプリケーションオブジェクトが生成され、OnStartup が呼ばれる。成功後、このオブジェクトは Revit セッションの全期間保持される。Revit の終了時に OnShutdown が呼ばれる。
64-bit Revit との API アプリの互換性
ほとんどの API アプリは、32-bit と 64-bit の両方の Revit で使用可能な設定でビルドできる。設定例:
- C# プロジェクト: プロジェクトプロパティ → Build タブ → Platform target を「Any CPU」
- VB.NET プロジェクト: プロジェクトプロパティ → Compile タブ → Platform を「Any CPU」
- C++/CLI プロジェクト: プロパティページ → Configuration Properties → General → Common Language Runtime support を「/clr:safe」
注意: Microsoft Jet の OleDB プロバイダなど、64-bit 非対応の Microsoft コンポーネントがあります。SDK サンプルは、非対応コンポーネントに依存するものを除き、32-bit/64-bit の両方で動作するよう設定済みです。
詳細: http://msdn.microsoft.com/en-us/library/ms241064(VS.80).aspx
Visual Studio 2019 でのデバッグ
単体(EXE)と、別プログラムによって起動される外部アプリ(DLL)ではデバッグ方法が異なります。Revit API を使用するアプリをデバッグするには、Revit によってアプリを起動させる必要があります。IDE での手順:
- API アプリの Visual Studio プロジェクトを開く(例: SDK の AnalyticalSupportData_Info.csproj)
- メニュー「Project」から「AnalyticalSupportData_Info Properties」を選択
- 左側の「Debug」タブを選択
- 「Start external program:」を選択
- 参照ボタンで Revit.exe を選び「Open」
- 例: C:\Program Files\Autodesk\Revit Structure 3\Program\Revit.exe
- ソースコードにブレークポイントを設定
- Visual Studio から「Start Debugging」を選択(Revit が起動)
- 「External Tools」メニューから自分のプログラムを選択。ブレークポイントに到達すると実行が停止し、デバッグ可能
Revit の単位系
Revit の基準単位は次のとおりです。
| 基本単位 | Revit での単位 | 単位系 |
|---|---|---|
| 長さ | フィート (ft) | インペリアル |
| 角度 | ラジアン | メートル法 |
| 質量 | キログラム (kg) | メートル法 |
| 時間 | 秒 (s) | メートル法 |
| 電流 | アンペア (A) | メートル法 |
| 温度 | ケルビン (K) | メートル法 |
| 光度 | カンデラ (cd) | メートル法 |
注: Revit は長さをフィートで、その他の量をメートル法で保存するため、長さを含む派生単位はインペリアルとメートル法の混合となります。例えば力は「質量×長さ/時間^2」であり、kg-ft/s^2 で保存されます。
アプリケーション用カスタムデータの保存とアクセス
外部プログラムが Revit と連携する際、Revit のモデルデータベースにない情報が必要になることがあります。情報の用途に応じて入力方法・保存場所が異なります。
- 一般的で、Revit 内で参照・編集したい情報は、可視のプロジェクトパラメータまたは共有パラメータとして保存する
- モデルの進化に合わせて保持したいが、可視である必要がない情報は、非可視のプロジェクトパラメータまたは共有パラメータとして保存する
- 単一のアドオンに特化し、モデル内に保存するには大きすぎる情報(例: 変更の多い多数の建材仕様)は、並行する外部データベースに保存する。この場合、Revit 要素の UniqueId をデータベースのキーとして使うと便利(UniqueId はモデル内で安定)
付録 1 — Revit 用語集
- Family(ファミリ)
- 型(Type)というオブジェクトの集合。共通のパラメータ群、用途、類似した図形表現で要素をグループ化。ファミリ内の異なる型は、パラメータの値が異なる場合があるが、パラメータの集合(名前と意味)は同じ。
- Parameter(パラメータ)
- Revit には複数のパラメータ種類がある。共有パラメータはユーザー定義の変数。システムパラメータは Revit にハードコードされた変数。ファミリパラメータはファミリ作成/編集時に定義される変数。
- Type(タイプ)
- ファミリのメンバー。モデル内の当該タイプのすべてのインスタンスで一定なパラメータ(タイププロパティ)を持つ。インスタンスごとに異なり得るインスタンスパラメータも持つ。
付録 2 — FAQ
一般
Q: Revit で要素を参照するには?
A: 各要素には Id と UniqueId があり、参照に使用可能。
Q: 要素 ID は普遍的に一意で、変更されない?
A: ある時点ではモデル内で一意。しかし、Revit のマルチユーザー操作により要素 ID が変わる場合がある。別モデルには同じ ID の要素が存在し得る。後で要素を見つけるために ID を保存する必要がある(特に新規作成要素)場合は、UniqueId を保存すること。
Q: モデルは共有パラメータファイルを 1 つしか使えない?
A: 共有パラメータファイルはパラメータ仕様を保存する。最重要なのは、単一モデル/複数モデル間でパラメータの一意性を保証する GUID。Revit は複数の共有パラメータファイルを扱えるが、同時に読み取れるのは 1 つのみ。全モデルで同一ファイルを使うか、各モデルで異なるファイルを使うかは運用次第。
API アプリはユーザーの共有パラメータファイルに干渉しないようにすべき。アプリは必要なパラメータを含む独自のパラメータファイルを同梱し、Revit ファイルへロードする際は次を実施:
- ユーザーのパラメータファイル名を保存
- アプリのパラメータファイルをカレントに設定
- 必要なパラメータをロード
- ユーザーのパラメータファイルを再度カレントに設定
Q: 共有パラメータファイルをモデルと一緒に配布しないと、他プログラムが共有パラメータを使えない?
A: 配布不要。共有パラメータファイルは共有パラメータをロードするためだけに使用され、ロード後はモデルにとって不要。
Q: 要素をコピーすると共有パラメータ値もコピーされる?
A: はい。データベース項目の一意 ID を共有パラメータに保持する場合は、その ID に Revit 要素の UniqueId を含めることを推奨。これにより、既存要素からコピーされた要素の識別が可能。
Q: アプリがモデルへデータを返す際、Revit の更新に時間がかかる。高速化するには?
A: RegenerationOption.Manual を使用し、モデル変更ごとの API フレームワークの再生成を抑制。その後、再生成 API を使用して一括変更後にドキュメントを更新。複数変更のパフォーマンスは RegenerationOption.Automatic より高速になる可能性がある。このモード中はドキュメント更新が停止するため、再生成前にドキュメントからデータを読み取ると古いデータにアクセスするリスクがある。
Q: 共有パラメータをバインドできない要素(例: グリッドや材料)にパラメータを追加したい
A: 当該要素タイプが共有パラメータを持てない場合、プロジェクトパラメータを追加する必要あり。その要素のパラメータ値へアクセスするコードが異なるため、若干複雑になる。
Q: グループを含むモデルの外部プログラムへのエクスポートで最後にエラーが出る:
"Changes to group "Group 1" are allowed only in group edit mode. Use the Edit Group command to make the change to all instances of the group. You may use the "Ungroup" option to proceed with this change by ungrouping the changed group instances."
A: 現在 API はグループメンバーへの変更を許可していない。プログラムで「Ungroup」→変更→再グループ化→旧グループの他インスタンスを新グループへスワップ、で同等の効果を得られる。
Q: 同一 Revit ドキュメント内で 2 つの FamilySymbol が同じ名前なのはなぜ?
A: Revit API でのシンボルは形状を表す。例えば同タイプの窓インスタンスを、厚さの異なる壁へ 2 箇所挿入すると、同じ FamilySymbol を参照し同タイプだが、周囲の条件(壁厚)に合わせて形状が変わるため、同一のシンボル形状は使えない。Revit は「primary(主)」と「subordinate(従)」の仕組みを用い、従属シンボルは主シンボルのテンプレートに基づき周囲条件にローカライズされた形状を持つ。
モデル内にドアインスタンスがない場合、36"x84" ドアの「主」FamilySymbol は 1 つだけ。ドアを挿入すると、新しい 36"x84" ドア用に「従属」FamilySymbol が作成される。その後のドア配置で、追加の「従属」FamilySymbol が生成される。
Q: Revit のジオメトリメッシュオブジェクトの頂点や三角形の順序は反時計回りで安定して並ぶ?
A: はい。
Q: 外部/内部の壁やドアを反転(フリップ)しても、FromRoom/ToRoom が変わらないのはなぜ?
A: 外部ドア・外部窓は FromRoom か ToRoom のどちらか一方のみを持つ。どちらを使用するかは配置時にユーザーが選択可能。外部ドア/窓を反転しても FromRoom/ToRoom は自動では変わらないが、手動で変更できる。
Autodesk Revit Structure に関する Q&A
Q: 既定の構造要素の端部リリースが原因でモデルが不安定になる場合がある
A: モデル作成時に端部リリースに注意が払われていないことがある。Analytical Model Check 機能が一部の問題を見つける。解析モデルをエクスポートする際、RST(Revit Structure)からのリリース条件を保持するか、梁・柱を固定に設定するかをユーザーに確認。RST へ再インポート時は必ず端部リリースを更新し、以後の解析プログラムへの再エクスポートで端部リリースを上書きしない。
Q: 梁の向きを弱軸方向へ 90 度回転した際、その回転角は API でどう取得?
Location が LocationCurve で LocationPoint ではないため Rotation 値にアクセスできない。FamilyInstance からどうすべき?
A: SDK の「RotateFramingObject」サンプルを参照。梁・ブレース・柱の回転角の取得/変更例がある。
Q: コンクリート梁と柱の新サイズをモデルへ追加するには?
A: SDK の「FrameBuilder」サンプルコードを参照。
Q: デッキの真の層(layer)情報を表示するには?
A: 「DeckProperties」サンプルに、層情報の取得方法が示されている。UI とまったく同じ方法でレポートされる。デッキ寸法パラメータは図に示されている。

Q: 梁に片持ち(キャンチレバー)があるかどうか判定するには?
A: Revit データベースには片持ち梁を直接判定する方法がない。ただし次のいずれか(または複数)により推測可能:
オプション
- 「Moment Connection Start」「Moment Connection End」という 2 つのパラメータを確認。値が None でなければ、同一直線上(コリニア)にある他の梁で値が None 以外のものがあるかを調べる。ユーザーに「Moment Frame」ではなく「Cantilever Moment」オプションを選ぶよう依頼することも可能。
- 当該要素の接続を 1~2 要素分、巻き戻して追跡する。
- 要素の端部リリース条件を見る。
Q: 壁下の基礎で端部オーバーハングを持つモデル化方法は?
A: Revit Structure の壁基礎機能は端部オーバーハングをサポートしていない。最適解は GUI/API の基礎スラブ機能を使うこと。Autodesk.Revit.Creation.Document.NewFloor() メソッドで作成可能。STRUCTURAL_FLOOR_ANALYZES_AS に対して、基礎なら AA_Mat または AA_SlabOnGrade、床なら AA_Slab を使用。
Discussion