データ連携の実務パターン
Speckle に蓄積したモデルを「業務に効く形」へ展開する出口の話です。数量集計・Power BI・QA・他DB連携を、「receive → 走査・変換 → 出力」の3段パイプラインとして整理します。
この記事の要点
- Speckle のデータは SDK で取得できるため、数量集計・ダッシュボード・QA・他DB連携に展開できる
- 典型パイプラインは「receive → 走査・変換 → 出力先へ送る」の3段で表せる
- Power BI などの BI ツールへ渡せばモデル情報を可視化・分析でき、QA は Automate と組み合わせる
- 属性の表記ゆれや単位の違いを吸収する変換層を設けると安定する
本記事は Speckle カテゴリの一部として、データ連携の実務パターンを整理します。Speckle に蓄積したモデルを「業務に効く形」へ展開する出口の話で、データ活用の成果が最も見えやすい領域です。データ取得の基礎は specklepy を参照してください。
1基本の発想:モデルは取得できるデータ
Speckle のモデルは SDK / API でプログラムから取得できる構造化データです。つまり「図面を見る」だけでなく、「壁の数を数える」「面積を合計する」「ルール違反を探す」といった処理をコードで回せます。これが従来のファイル中心ワークフローとの決定的な違いです。
従来は、数量を拾うにも図面を人が目で追って数えるか、専用ツールに読み込ませて手作業で書き出すのが普通でした。Speckle ではモデル自体が機械可読なデータなので、一度処理を組んでおけば、版が更新されるたびに同じ集計や検査を繰り返し走らせられます。手作業に比べて再現性が高く、件数が増えても破綻しにくいのが強みです。
2典型パイプライン(3段構成)
| 段 | やること | 主な道具 |
|---|---|---|
| 1. 取得 | 対象 Version を receive してオブジェクトツリーを得る | specklepy / .NET SDK |
| 2. 走査・変換 | 要素を巡回し、必要な属性を抽出・集計・判定する | Python / C# のロジック |
| 3. 出力 | BI・DB・レポート・他システムへ渡す | CSV / DB / API |
多くの実務処理はこの3段に収まります。取得は send/receive の receive、走査対象は オブジェクトモデル のツリーです。
3パターン1:数量集計
最も需要が高いのが数量・面積の集計です。受け取ったツリーを走査し、カテゴリごとに件数や合計値を出します。概念的な擬似コードは次のとおりです。
# specklepy 風の擬似コード:壁の面積合計
total = 0.0
for el in elements:
if el["category"] == "Walls":
total = total + el["area"]
print(total)
比較や条件式で <(小なり)・>(大なり)・&(アンパサンド)を使う場合は、コードとして崩れないよう正しく表記します。結果は CSV やスプレッドシートへ出して、見積や工程の基礎資料にできます。
4パターン2:ダッシュボード(Power BI 等)
集計結果を BI ツール(Power BI など)に渡すと、モデル情報をグラフや表で可視化できます。流れは「Speckle から取得 → 表形式(テーブル)へ整形 → BI に読み込む」です。
- SDK でモデルを取得し、要素を行・属性を列としたテーブルに展開する
- 中間ファイル(CSV など)や API 経由で BI に取り込む
- 用途別面積・カテゴリ別数量・版ごとの推移などを可視化する
Version を時系列で取得すれば「設計が版を追ってどう変化したか」を追うダッシュボードも作れます。ビューア自体を組み込みたい場合は Viewer・埋め込み を参照してください。
5パターン3:QA チェック
取得したデータにルールを当てて品質をチェックするパターンです。命名規約・必須属性・分類コードの妥当性などを判定し、違反を一覧で出します。この処理を Version 公開のたびに自動で走らせたい場合は Automate と組み合わせます。手元での単発チェックは specklepy で receive して走査するだけでも実現できます。
6パターン4:他DB・他システム連携
抽出した情報を社内の DB や資産管理(FM)・コスト管理システムへ流し込むパターンです。たとえば機器の型番・系統・数量を receive で取得し、変換層を通して既存システムのスキーマに合わせて登録します。
# 概念例:取得 → 変換 → DB へ
data = receive(version_id) # 1) 取得
rows = to_rows(data) # 2) 走査・整形
insert_into_db(rows) # 3) 出力
連携先のスキーマと Speckle 側の属性名は一致しないのが普通なので、間に「変換層(マッピング)」を1枚置くのが定石です。
安定運用のコツ
- 変換層を設ける:属性名の表記ゆれ・単位差を1か所で吸収する
- 単位を固定する:長さ・面積の単位を取り決め、取得時に正規化する
- 欠損に強くする:属性が無い要素を想定し、既定値やスキップを設計する
- Version を明示する:どの版を処理したかをログに残し再現性を保つ
- 段階的に自動化:手元スクリプトで固めてから Automate へ載せる
これらを押さえると、モデルの更新に追従しながら数量・可視化・QA・他システム連携を安定して回せます。取得処理そのものの書き方は specklepy、.NET 環境からの取得は .NET SDK を参照してください。
→次に読む
子ページはありません
人気ページ
- 1 【Revit API】アドインの作成サンプル(外部ツール編)
- 2 Revit の要素(Category / Family / Type / Instance)4 階層モデルとは
- 3 【Revit API】要素の取得とID、名前、タイプの情報表示
- 4 【PythonでRevit API】pyRevitの導入と簡単なアプリケーションの作成
- 5 ArchiCAD 階段と手摺りの作成手順|階段ツール / 設定画面 / 手摺り追加
- 6 【Revit API】アドインの作成サンプル(外部アプリケーション編)
- 7 【Revit API】FamilySymbol(タイプ)の取得とパラメータの変更
- 8 RevitAPI.dll と RevitAPIUI.dll の参照
- 9 【Revit API】特定の要素のパラメータ一覧の取得
- 10 【Revit API】マニフェストファイルの書き方/作成方法
最近更新/作成されたページ
- Revit のエラーとトラブル対処|起動失敗・ライセンス・ファイル破損 2026-10-03 22:22:57
- GSG_01_Getting_Started_Template.rte の入手先(Revit) 2026-10-03 22:22:34
- Revit「Please run MaterialLibrary2021.msi first」の原因と対処 2026-10-03 22:22:34
- Archicadの参照線の配置・移動・削除|1本ずつ消す方法と全削除 2026-10-03 22:20:48
- Archicadで交点にカーソルを合わせる方法|スナップガイド・グリッド 2026-10-03 22:20:48
- Archicadで3D表示する方法|F3・Ctrl+F5と平行投影/パースの切替 2026-10-03 22:20:48
- ARCHICAD Column ツールで柱を配置する手順(断面・高さ・3D 確認) 2026-10-03 22:12:07
- Revitでプロジェクト基準点を表示する方法|測量点との違いと表示設定 2026-10-03 22:11:05
- Revit レベル (Level) 追加・修正完全ガイド(立面ビュー / Plan View 自動作成) 2026-10-03 22:11:05
- Revit プロジェクトの作成手順|テンプレート選択・保存・単位設定 2026-10-03 22:11:05
- Revit 完全ガイド|機能・ファイル形式・料金・システム要件とよくある質問 2026-10-03 22:11:05
- ARCHICAD で床(スラブ)を作る方法|ポリゴン入力と複合構造 2026-10-03 22:11:05
- ARCHICAD 窓の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD ドア (Door) の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD 壁の作成方法完全ガイド 2026-10-03 22:11:05