ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
テンプレートがありません。
オブジェクトモデル — Base とハッシュ
Speckle が扱うデータの中身。すべては Base オブジェクトを基底とした構造化データで、動的にプロパティを足し、内容ハッシュ(id)で重複を排除します。detach・シリアライズの仕組みまでを整理します。
この記事の要点
- Speckle のデータはすべて Base オブジェクトを基底とした構造化データである
- Base は動的にプロパティを追加でき、型は
speckle_typeで識別される - 大きな子要素は detach(分離)して別オブジェクトとして保存し、参照でつなぐ
- 各オブジェクトは内容から決まるハッシュ(id)を持ち、同一内容は重複排除される
- このモデルにより、Revit のファミリなどツール固有の要素を共通形式で表現できる
この記事は Speckle が扱うデータの中身、すなわちオブジェクトモデルを解説します。アーキテクチャ でいう「Version が指すオブジェクトツリー」の中身にあたります。
1Base オブジェクト
Speckle のデータモデルの基底は Base というオブジェクトです。点・線・壁・部屋・パラメータの集合など、Speckle が扱うあらゆるデータは Base を継承(あるいは Base そのもの)として表現されます。SDK 上では Base クラスのインスタンスとして生成・操作します。
Base は「プロパティの入れ物」であり、子に別の Base を持たせることでツリー状にデータを組み立てられます。ルートとなる Base から子要素へとたどることで、モデル全体が表現されます。
2動的プロパティと speckle_type
Base の特徴は、あらかじめ決められた固定のフィールドだけでなく、動的にプロパティを追加できる点です。たとえば壁オブジェクトに「材質」「高さ」「Revit のパラメータ群」などを自由に持たせられます。
各オブジェクトには speckle_type というプロパティがあり、これがそのオブジェクトの種類を表す識別子になります。たとえば幾何の点や線、あるいは各コネクタが定義する要素型などが、この speckle_type で区別されます。受け取る側は speckle_type を手がかりに、適切なネイティブ要素へ変換します。
| 概念 | 意味 |
|---|---|
| Base | すべてのオブジェクトの基底クラス |
| 動的プロパティ | 実行時に自由に追加できる属性 |
| speckle_type | オブジェクトの種類を表す型識別子 |
| id | 内容から計算されるハッシュ(一意な指紋) |
3detach(分離)と参照
1 つのモデルには大量の要素が含まれます。これを 1 つの巨大なオブジェクトとして丸ごと保存すると、少し変えただけでも全体を再保存することになり非効率です。そこで Speckle は detach(デタッチ=分離) という仕組みを持ちます。
- 大きな子要素や繰り返し使われる要素を、親オブジェクトの中に埋め込むのではなく、独立したオブジェクトとして別保存する。
- 親は、その子を「参照(id を指すポインタ)」として持つ。
- これにより、変わっていない部分は再保存されず、変わった部分のオブジェクトだけが新規に保存される。
SDK では、プロパティ名の付け方や属性指定によって detach するかどうかを制御できます。大量要素を扱う実装では、適切に detach することで転送量とストレージを節約できます。
4ハッシュとデータ重複排除
各オブジェクトの id は、そのオブジェクトの内容から計算されるハッシュです。内容が同じであれば同じ id になり、内容が変われば別の id になります。Git のオブジェクトが内容ハッシュで管理されるのと同じ発想です。
同じ建具を 100 個送ったら?
内容ハッシュによって、データの重複排除(dedup) が自然に行えます。たとえば 100 個の同じ建具を送っても、内容が同一なら実体は 1 つだけ保存され、それを 100 箇所から参照する形になります。バージョンを重ねても、変わっていないオブジェクトは再送・再保存されないため、ストレージと転送が効率化されます。これが アーキテクチャ で触れたバージョン管理の効率の裏側にあります。
5シリアライズ
Base オブジェクトのツリーは、保存・転送のために シリアライズ(直列化)されます。Speckle ではオブジェクトツリーを分解し、各オブジェクトをハッシュ付きの単位に変換してサーバへ送ります。受け取り側は、ルートの id から参照をたどって子オブジェクトを取得し、ツリーを復元(デシリアライズ)します。
この「分解して送り、参照でつなぎ直す」仕組みが、detach・ハッシュ・重複排除と組み合わさることで、大規模モデルを効率よく扱えるようになっています。
6ツール固有要素とのマッピング概念
各ツールには固有の要素概念があります。たとえば Revit には ファミリ(部材の型と実体)という独自の仕組みがあります。コネクタは、こうしたツール固有の要素を Base オブジェクトへ変換し、speckle_type と動的プロパティに情報を載せます。
- Revit のファミリインスタンスは、形状(ジオメトリ)と多数のパラメータを持つ Base オブジェクトとして表現される。
- パラメータ(寸法・材質・分類など)は動的プロパティとして保持される。
- 受け取る側のツールに同じ概念がなければ、形状とメタデータとして可能な範囲で再現される。
つまり Speckle のオブジェクトモデルは、特定ツールに依存しない「最大公約数的な構造化データ」を目指したものです。すべてを Base という単一の基底でそろえ、種類は speckle_type、追加情報は動的プロパティ、構造は親子のツリーで表す——この割り切りがあるからこそ、性質の異なる多数のツールを同じ土俵に載せられます。だからこそ コネクタ ごとに、ネイティブ要素と Base の間でどうマッピングするかが重要になります。次は実際の接続役である コネクタ を見ていきましょう。
→次に読む
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
テンプレートがありません。
子ページはありません
人気ページ
- 1 建築とは — 建築物の定義・建築と土木の違い・ライフサイクルをわかりやすく解説
- 2 建築・BIM 総合Wiki — 建築の基礎からBIM・Revit・Speckleまで体系的に解説
- 3 建築図面の縮尺と寸法表記 — 1/100・1/50 の使い分けと mm 基準・面積をやさしく解説
- 4 日本のBIM動向 — 国交省BIM/CIM・建築BIM推進会議・ガイドラインをわかりやすく整理
- 5 建築プロジェクトの登場人物|施主・設計事務所・ゼネコン・サブコンと発注方式
- 6 建築入門 — 分野・登場人物・設計から竣工までの流れをやさしく整理
- 7 建築の3分野とは|意匠・構造・設備(MEP)の役割分担とBIMの分野別モデル
- 8 Speckle Automateとは|Version公開トリガーで自動QA・命名規約チェックを走らせる仕組み
- 9 Revit フェーズとデザインオプション|既存・解体・新築の段階管理と設計案比較
- 10 Revit ワークシェアリング徹底解説|ワークセット・セントラルファイル・同期(SWC)・クラウド共同作業
最近更新/作成されたページ
- Dynamo入門|Revitビジュアルプログラミング・ノードとワイヤ・Pythonノード・Dynamo Player NEW 2026-06-29 15:23:47
- 建築の3分野とは|意匠・構造・設備(MEP)の役割分担とBIMの分野別モデル NEW 2026-06-29 15:23:47
- specklepy入門|Python SDKでSpeckleClient認証・operations.send/receive NEW 2026-06-29 15:23:47
- 建築図面の縮尺と寸法表記 — 1/100・1/50 の使い分けと mm 基準・面積をやさしく解説 NEW 2026-06-29 15:23:47
- Speckle Viewerとは|Web3D表示・プロパティ確認・iframe埋め込みと@speckle/viewer NEW 2026-06-29 15:05:23
- Speckle .NET SDK入門|NuGet導入・認証・Base作成・send/receiveとRevitアドイン連携 NEW 2026-06-29 15:05:23
- 日本のBIM動向 — 国交省BIM/CIM・建築BIM推進会議・ガイドラインをわかりやすく整理 NEW 2026-06-29 15:05:23
- Speckle Serverセルフホスト|docker-compose構成とデータ主権・運用設計 NEW 2026-06-29 15:03:33
- Speckle Automateとは|Version公開トリガーで自動QA・命名規約チェックを走らせる仕組み NEW 2026-06-29 15:03:33
- Speckleデータ連携の実務パターン|数量集計・Power BI・QA・他DB連携のパイプライン NEW 2026-06-29 15:03:33
- SpeckleとIFCの違い|標準ファイル交換とライブ連携の比較表と併用の現実解 NEW 2026-06-29 15:03:33
- Speckleのsend/receive|Version生成・選択フィルタ・差分とバージョン履歴 NEW 2026-06-29 15:03:32
- Speckleとは|OSSのAECデータプラットフォームをやさしく解説 NEW 2026-06-29 15:03:32
- Speckleのコネクタ|Revit/Rhino/Grasshopper/Blender等の連携とsend/receive NEW 2026-06-29 15:03:32
- Speckleオブジェクトモデル|Base・動的プロパティ・detach・ハッシュと重複排除 NEW 2026-06-29 15:03:32
コメントを削除してもよろしいでしょうか?