タイトル: Speckleとは
SEOタイトル: Speckleとは|OSSのAECデータプラットフォームをRevit/SE向けに解説
| この記事の要点 |
|
本記事は Speckle カテゴリの入口として、「Speckle とは何か」を Revit / Speckle に関わる SE 向けに整理します。続けて内部構造を知りたい場合は アーキテクチャ(Server/Project/Model/Version) へ進んでください。
Speckle とは何か
Speckle は、建築・土木・建設(AEC: Architecture, Engineering, Construction)の領域で使われるオープンソースのデータプラットフォームです。Revit、Rhino、Grasshopper、Blender、AutoCAD などのオーサリングツールが扱う 3D モデルや属性データを、ツールに依存しない共通のデータモデルへ変換し、サーバ上で保存・共有・バージョン管理できるようにします。
従来、AEC のデータ交換は IFC ファイルや独自フォーマットの「ファイル受け渡し」が中心でした。Speckle はファイルではなく「オブジェクト単位のデータ」をネットワーク越しにやり取りする発想に立っており、Git がソースコードに対して行っていることを、建築モデルのデータに対して行うイメージに近いプラットフォームです。
何を解決するのか(ツール間連携とバージョン管理)
Speckle が主に解決するのは次の2点です。
- ツール間のデータ連携:あるツール(例: Revit)で作ったモデルを、別のツール(例: Rhino や Blender、あるいは Web ブラウザ)で開けるようにする。各ツール用の「コネクタ」が変換を担います。詳細は コネクタ を参照してください。
- バージョン管理:モデルを送るたびに新しい版が記録され、いつ・誰が・どんな状態を送ったかの履歴が残ります。差分や履歴をたどれる点が、単なるファイル共有との違いです。
これにより、関係者がそれぞれ得意なツールを使いながら、データの一貫性と来歴(だれがいつ何を更新したか)を保てます。send/receive の基本ワークフロー でその流れを具体的に扱います。
なぜ SE に向くのか
Speckle は、いわゆる BIM ツールというより「AEC データのためのプラットフォーム/開発基盤」です。SE にとって扱いやすい理由がいくつかあります。
- プログラマブル:データはオブジェクトの集合として構造化されており、コードから生成・読み取り・加工できます。
- API がある:サーバは GraphQL API を公開しており、プロジェクトやモデル、バージョンの情報をプログラムから操作できます。API概要 も合わせて参照してください。
- SDK がある:Python 向けの specklepy、.NET 向けの SDK が用意され、自動化やカスタム連携を書けます。詳しくは specklepy や .NET SDK を参照してください。
- OSS である:コードが公開されており、内部の挙動を確認したり、独自に拡張・自前運用したりできます。
つまり、GUI で図面を操作する世界というより、データとAPIを軸にした世界であり、Web/バックエンド開発の経験がそのまま活きやすい領域です。
商用クラウドと自前ホスティング
Speckle のサーバは、利用形態を2通りから選べます。
| 形態 | 概要 | 向く場面 |
|---|---|---|
| 商用クラウド | 運営側が提供するホスト型サービス(app.speckle.systems など)を利用する | すぐ試したい/自前運用の負担を避けたい |
| セルフホスティング | OSS のサーバを自社インフラに構築して運用する | データを社内に閉じたい/要件に合わせて運用したい |
セルフホスティングはコンテナなどで構築でき、データの所在を自社管理下に置けるのが利点です。運用上の具体的な検討は ホスティング で扱います。
用語の世代差に注意
Speckle を学ぶうえで最初に押さえるべき注意点が、用語の世代差です。旧版(v2 系)では Stream/Branch/Commit という用語が使われていましたが、新世代では Project/Model/Version に置き換わりました。古い記事やドキュメントを読むときに混乱しやすいので、本カテゴリでは新世代の用語を主としつつ「旧 Stream に相当」のように対応を併記します。用語の対応関係は アーキテクチャ の記事で対応表として整理します。
このカテゴリで扱う範囲
本カテゴリでは、Speckle の内部構造(アーキテクチャ、オブジェクトモデル)、各ツールとの接続(コネクタ、Revit ⇄ Speckle)、基本操作(send/receive)、開発(specklepy、.NET SDK、Automate)、表示(Viewer)、運用(ホスティング)、そして IFC との違い や データ連携実務 までを順に解説していきます。まずは次の アーキテクチャ で全体像をつかむのがおすすめです。