ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
テンプレートがありません。
トランザクションと要素編集
要素を取得したら、次はそれを編集・作成します。Revit ではモデル変更を「トランザクション」で囲むことが義務付けられています。安全に値を書き換え、要素を作るための作法を整理します。
この記事の要点
- モデルを変更する操作はすべて
TransactionのStart〜Commitで囲む必要がある - 失敗時は
RollBackで取り消せる。例外漏れを防ぐためusing文での管理が推奨 - パラメータは
get_Parameterで取得し、Parameter.Setで値を設定する(内部単位フィートに注意) - 壁・床などの要素は
Wall.Createのようなファクトリメソッドで作成する
この記事は Revit カテゴリの一部です。要素の集め方は 要素の取得とフィルタ、パラメータの基礎は パラメータ も参照してください。
1トランザクションの必須性
モデルへの変更(要素の作成・削除、パラメータ値の変更など)は、必ず Transaction の中で行わなければなりません。トランザクション外で変更しようとすると例外が発生します。これは元に戻す(Undo)の単位を明確にし、変更の一貫性を保つための仕組みです。
外部コマンドのクラスには [Transaction(TransactionMode.Manual)] を付け、コード内で明示的にトランザクションを開始・コミットするのが標準的な書き方です。
2Start / Commit / RollBack と using
トランザクションは Start で開始し、成功すれば Commit、失敗すれば RollBack で取り消します。例外発生時に確実に後始末するため、using 文で囲むのが定石です。
using Autodesk.Revit.DB;
using (Transaction tx = new Transaction(doc, "パラメータ更新"))
{
tx.Start();
try
{
// ここでモデルを変更する
Wall wall = doc.GetElement(wallId) as Wall;
Parameter p = wall.get_Parameter(BuiltInParameter.ALL_MODEL_MARK);
p.Set("W-001");
tx.Commit();
}
catch
{
tx.RollBack();
throw;
}
}
using を使うと、スコープを抜ける際に Dispose が呼ばれ、コミットされていないトランザクションは自動的にロールバックされます。トランザクション名(第 2 引数)は Undo メニューに表示されるので、分かりやすい名前を付けます。
3パラメータの取得と設定
パラメータの読み書きは編集の基本です。取得は get_Parameter(BuiltInParameter または名前で指定)、設定は Set を使います。値の型に応じて読み出しメソッドが分かれます。
| 値の型 | 読み出し | 設定 |
|---|---|---|
| 文字列 | AsString() | Set("文字列") |
| 数値(長さなど) | AsDouble() | Set(double)(内部単位フィート) |
| 整数・真偽 | AsInteger() | Set(int) |
| 要素参照 | AsElementId() | Set(ElementId) |
長さ系を mm で扱いたい場合は、UnitUtils.ConvertToInternalUnits でフィートに変換してから Set します。読み取り専用パラメータに Set すると失敗するため、IsReadOnly を確認すると安全です。
4要素の作成
壁・床・梁などの要素は、各クラスの静的ファクトリメソッドで作成します。たとえば直線の壁は Wall.Create を使います。
using (Transaction tx = new Transaction(doc, "壁を作成"))
{
tx.Start();
Line line = Line.CreateBound(
new XYZ(0, 0, 0), new XYZ(10, 0, 0)); // 単位はフィート
Wall wall = Wall.Create(
doc, line, levelId, false); // structural=false
tx.Commit();
}
座標を表す XYZ の値も内部単位(フィート)です。作成系メソッドは引数にレベル ID やタイプ ID を要求することが多いので、事前に FilteredElementCollector で取得しておきます。
5TransactionGroup
複数のトランザクションを論理的にひとまとまりにし、1 回の Undo で全体を戻したい場合は TransactionGroup を使います。グループを Start し、その中で複数のトランザクションを実行したあと、Assimilate(同化)で 1 つにまとめるか、RollBack で全体を取り消します。
using (TransactionGroup tg = new TransactionGroup(doc, "一括処理"))
{
tg.Start();
// 中で複数の Transaction を実行...
tg.Assimilate(); // すべてを1つの Undo 単位にまとめる
}
段階的に処理を進めつつ、最終的にユーザーには「1 操作」として見せたい複雑なツールで重宝します。たとえば「複数の壁を作成し、それぞれにパラメータを設定する」一連の処理を TransactionGroup でまとめておけば、ユーザーが Undo を 1 回押すだけで作成前の状態に戻せます。個々の Transaction をこまめに区切りつつ、利用者から見た操作単位は粗くまとめられる——この使い分けが、扱いやすいツールを作るうえで効いてきます。
「囲む」だけで安全になる
Revit のモデル編集は、すべて Transaction で囲むという一点さえ守れば、Undo・整合性・例外時のロールバックが自動的に保証されます。using 文を組み合わせれば例外漏れも防げ、複数操作をまとめたいときは TransactionGroup。取得 → トランザクション内で編集/作成 → コミットという型を身につければ、安全にモデルを書き換えられます。
編集ができるようになったら、ユーザーが操作する「入口」と「UI」を作りましょう。外部コマンド/アプリ でリボンボタンやモードレス対応を学べます。
→次に読む
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
テンプレートがありません。
子ページはありません
- Revitとは
- ファミリ(システム/ロード/インプレイス)
- カテゴリ・タイプ・インスタンス
- パラメータ(プロジェクト/共有/グローバル/ファミリ)
- レベルと通り芯
- ビューとビューテンプレート
- シートと図面化
- スケジュール表(集計表)
- ワークシェアリングと中心ファイル
- フェーズとデザインオプション
- リンクと座標連携
- Dynamo入門
- 開発環境構築(Visual Studio + .addin マニフェスト)
- Revit API 概要
- Revit API:要素の取得とフィルタ
- Revit API:トランザクションと要素編集
- Revit API:外部コマンド/アプリ
- 共有パラメータの作り方と使い方
- ファミリの作り方(ロード可能ファミリ入門)
- パラメータの種類と分類(総まとめ)
人気ページ
- 1 建築図面の縮尺と寸法表記 — 1/100・1/50 の使い分けと mm 基準・面積をやさしく解説
- 2 Revit ファミリの作り方|テンプレート・参照面・パラメータ化・タイプ作成の手順
- 3 Revit ワークシェアリング徹底解説|ワークセット・セントラルファイル・同期(SWC)・クラウド共同作業
- 4 建築とは — 建築物の定義・建築と土木の違い・ライフサイクルをわかりやすく解説
- 5 Revit パラメータの種類まとめ|共有・プロジェクト・ファミリ・グローバル・組込みの使い分け
- 6 建築・BIM 総合Wiki — 建築の基礎からBIM・Revit・Speckleまで体系的に解説
- 7 通り芯・GL・FL・SL・階高・天井高 — Revit の通り芯/レベルの土台をやさしく理解する
- 8 Revit 共有パラメータとは|作り方・GUID・タグ/スケジュール連携をわかりやすく解説
- 9 Revitのパラメータ — 共有(GUID)/プロジェクト/グローバル/組込み(BuiltInParameter)の違いと連携
- 10 BIM座標系の基礎|内部原点・基準点・測量点・共有座標と真北/プロジェクト北
最近更新/作成されたページ
- Revit 共有パラメータとは|作り方・GUID・タグ/スケジュール連携をわかりやすく解説 2026-07-02 01:01:35
- Revit パラメータの種類まとめ|共有・プロジェクト・ファミリ・グローバル・組込みの使い分け 2026-07-02 00:55:31
- Revit ファミリの作り方|テンプレート・参照面・パラメータ化・タイプ作成の手順 2026-07-02 00:55:30
- Dynamo入門|Revitビジュアルプログラミング・ノードとワイヤ・Pythonノード・Dynamo Player 2026-06-29 15:23:47
- 建築図面の縮尺と寸法表記 — 1/100・1/50 の使い分けと mm 基準・面積をやさしく解説 2026-06-29 15:23:47
- 建築の3分野とは|意匠・構造・設備(MEP)の役割分担とBIMの分野別モデル 2026-06-29 15:23:47
- specklepy入門|Python SDKでSpeckleClient認証・operations.send/receive 2026-06-29 15:23:47
- Speckle .NET SDK入門|NuGet導入・認証・Base作成・send/receiveとRevitアドイン連携 2026-06-29 15:05:23
- Speckle Viewerとは|Web3D表示・プロパティ確認・iframe埋め込みと@speckle/viewer 2026-06-29 15:05:23
- 日本のBIM動向 — 国交省BIM/CIM・建築BIM推進会議・ガイドラインをわかりやすく整理 2026-06-29 15:05:23
- Speckleデータ連携の実務パターン|数量集計・Power BI・QA・他DB連携のパイプライン 2026-06-29 15:03:33
- Speckle Serverセルフホスト|docker-compose構成とデータ主権・運用設計 2026-06-29 15:03:33
- Speckle Automateとは|Version公開トリガーで自動QA・命名規約チェックを走らせる仕組み 2026-06-29 15:03:33
- SpeckleとIFCの違い|標準ファイル交換とライブ連携の比較表と併用の現実解 2026-06-29 15:03:33
- Speckleとは|OSSのAECデータプラットフォームをやさしく解説 2026-06-29 15:03:32
コメントを削除してもよろしいでしょうか?