ST-Bridge 形式(.stb / .xml)
ST-Bridge(XML, 2.0 系)で読み込み・書き出しができ、他社の一貫計算プログラムや BIM ツールとモデルを受け渡すための入出力経路として機能します。
GUI からの操作
| メニュー | 動作 |
|---|---|
| 📥 ST-Bridge 読込… | .stb(または .xml)ファイルを選び、内部モデルへ取り込みます。取り込んだモデルは検証(validate)を通ってから現在のモデルと差し替わります |
| 📤 ST-Bridge 書出… | 標準 ST-Bridge 2.0.2(StbSecColumn_S 等+形鋼ライブラリ)で書き出す。BIM・他ソフト向け |
- ファイル選択ダイアログの拡張子フィルタは
.stb/.xml。 - ST-Bridge 読込は
.sczプロジェクトとは別系統であり、読み込んでもプロジェクトの保存先パスは設定されません(新規モデルとして開く扱い)。上書き保存するとネイティブの.sczとして保存されます。 - 書き出しは ST-Bridge 2.0.2 標準スキーマ準拠の 1 形式のみです(他ソフトとの相互運用が目的のため独自方言は用いません)。完全一致の保存にはネイティブの
.sczを使います。
対応バージョン
- ST-Bridge 2.0 系のみを受け付けます(ルート要素
ST_BRIDGEのversion属性が2.で始まること)。 - 1.x 系や ST-Bridge でない XML は読み込みエラーになります。
- ファイルの文字コードは、BOM 付き UTF-8・UTF-8・Shift_JIS(Windows-31J)の順に判定します。
対応範囲(意味的往復を保証するサブセット)
読み込み・書き出しの対象は、import → export → 再 import でモデルが意味的に一致する範囲に限定しています。
| 分類 | 対象内容 |
|---|---|
| 節点 | 座標(X/Y/Z)、所属層 |
| 層 | 名称、標高(height)、所属節点(StbNodeIdList)。種別(kind)は書き出しのみ |
| 材料 | グレード名(Fc21・SN400B・SD345 等)。StbModel は材料テーブルを持たないため、材料は断面の strength_* グレード名で表します。取り込み時は名前から標準材料表で物性(E・ν・密度・Fc・Fy)と区分(鋼材・鉄筋・コンクリート)を一意に復元します |
| 断面 | 形状(鋼各種・RC・SRC・CFT)+形鋼ライブラリ(StbSecSteel)+符号(name)と階(floor)。面積・断面二次モーメント等は形状から再算定 |
| 部材 | 柱(鉛直材)/大梁(水平材)/小梁・間柱(二次部材)/ブレース(斜材・feature_brace)。向き rotate、端部接合 condition_*、節点・断面の参照 |
| 床・壁 | スラブ(境界節点ループ+断面。符号・階・板厚・コンクリート材料。RC・デッキ合成 StbSecSlabDeck)、壁(境界節点ループ+厚さ+材料)。取り込み後、床板(Slab)を大梁の閉路(床領域)へ付け直します。重心が複数の床領域に入るときは面積が小さい方へ付けます。どの床領域にも入らず、水平大梁にちょうど 1 辺が全長載り自由端が 1〜2 点の版は取り付く床板へします(張り出しの正は取付き線の左側、区間は全長、荷重の出口は取付き線への分布)。それ以外の未所属の版は囲まれのまま残します。kind_slab は読みません。書き出しの StbSlab は囲まれかつ版がある床板だけ、kind_slab は NORMAL 固定です(版なし・取り付きは出しません)。壁は壁版(囲まれた境界+断面)として取り込み、柱・梁が囲む壁領域へ付け直します。どの壁領域にも入らない壁版の一部は、取り付く壁版(パラペット、および構面の外へ張り出す腰壁・垂れ壁に相当)へ自動変換します(条件と既定値は 1.9 壁の断面と自重)。変換できない未所属の壁版は囲まれたまま残し、警告を出します。解析要素にならない壁版も、自重は自動で分配し地震用重量・「DL」・数量拾いへ算入します(1.5 地震用重量・層データの生成)。解析用の壁要素はモデルに残しません。書き出しは壁版から StbWall を出します(4 節点でない壁版も往復します。解析要素になるのは 4.5 壁エレメントモデル の条件を満たす囲まれた壁版だけです。取り付く壁版は往復対象外です) |
要素ごとの詳細な変換状況(取り込み/書き出し/往復・備考)は、 ST-Bridge 要素別 変換状況一覧を参照してください。
非対応(対象外)
以下は ST-Bridge 2.0.2 の StbModel(幾何)スコープ外であり、入出力の対象に含まれません。
読み込み後は既定値になります。
- 解析結果・Squid-n 独自の解析/設計属性。
- 材料の物性値そのもの(E・ν・密度)。ST-Bridge は材料をグレード名でしか持たないため、 書き出しはグレード名のみ、読み込みは名前から標準物性を復元します(任意の物性値は往復しません)。
- 拘束条件(支点)・質量。
- 荷重の書き出し。ST-Bridge 2.0.2 では荷重は
StbModelではなくStbCalData/StbAnaModels側に属するため、幾何モデルの書き出しでは扱いません。 - 基礎・杭・フーチング、開口、
StbParapet要素(StbWallとして書いたパラペットは壁版として取り込み、条件を満たせば取り付く壁版へ変換します。4.5 壁エレメントモデル)。 - 剛域・製作情報などの詳細属性。
読み込みでは、ファイルに StbLoadCase・StbNodalLoad があれば荷重ケースの名称と節点荷重として
取り込みます。書き出しでは出力しないため、荷重は往復しません。
通り芯(StbAxes)は往復します。平行芯はグループの原点・方向角ごと、円弧芯・放射芯・作図芯は
通り名と所属節点のみを取り込みます(通り芯)。
これら未対応の要素のうち、取り込み時にデータを欠落させるもの(部材・断面)は、 取りこぼしを無言で捨てず [
ImportReport] の警告として必ず通知します(手動リストにない 新要素・ベンダー拡張も、部材グループ・断面の直属子であれば要素名で通知します。fail-loud)。 属性の単位でも同じ扱いをします(下記「属性の扱いの報告」)。
属性の扱いの報告
要素だけでなく属性の単位でも、ファイルに存在したものをどう扱ったかをすべて報告します。
取り込みの報告 [ImportReport] は attributes に、要素名・属性名ごとの出現件数と、そのうち
取り込んだ件数を持ちます。
無視リストは持ちません。
guid や app_name のように解析へ用いない属性も「取り込まなかった属性」として現れますが、
どの属性がどう扱われたかを利用者が漏れなく追えることを優先しています。
リストを持たない副次的な利点として、取り込みの実装を増やせば報告も自動的に追随するため、
一覧の更新漏れが起きません。
GUI の「ST-Bridge 読込」では、扱いの全量を下ドックの「ログ」タブへ出します。 読込直後のメッセージには「取り込まなかった属性が N 種類あります」という要約だけを出します。 実ファイルでは属性の種類が数十になり、そのまま並べると読めなくなるためです。
同じ属性でも文脈により扱いが分かれることがあります。 たとえば 1 つの断面に図形要素が複数ある場合、最初の図形だけを採るため 2 つ目以降の寸法属性は 参照しません。 このときログには「N 件中 M 件を取り込み」と出ます。
偏心(
offset_*)は取り込みません。StbColumn・StbGirderのoffset_start_Xなどの部材端の偏心は、現状では取り込みの 対象外です。属性の扱いの報告に「未取り込み」として現れるため、偏心を持つモデルを 取り込んだ場合はログで確認してください。
支点の自動設定(取り込み時)
ST-Bridge は境界条件(支点)を持たないため、支点が 1 つもないモデルを取り込んだ
ときは、そのままでは解析できません。そこで取り込み時に、最下レベル(Z 最小、
許容差 1 mm)で柱脚が取り付く節点をピン支点(並進 3 自由度を拘束・回転自由)に
自動設定します(柱脚ピンの仮定。基礎の回転拘束を期待しない安全側の既定)。柱の判定は鉛直な 2 節点線材(部材軸の鉛直成分が大きい部材)で行い、
柱が取り付かず梁だけが取り付く最下レベル節点(地中梁の中間節点など)は支点にしません。
最下レベルに柱脚が特定できない場合に限り、解析可能性を優先して最下レベルの全節点を
ピン支点にフォールバックします。設定した内容は [ImportReport] の通知(notes)で知らせ、
モデルタブ→境界条件で変更できます。すでに拘束を持つモデルはそのまま尊重し、何もしません。
断面の符号と階(取り込み)
ST-Bridge は断面を guid で識別しており、同じ符号の断面を階ごとに別の定義として持ちます。
そのため 1 つのファイルに name="C1" の StbSecColumn_S が、floor="1"・floor="2"・floor="3"
と 3 つ並ぶことは正常な状態です。
Squid-n の断面は符号と階の組で識別するため、この構造を
そのまま取り込めます。
断面の floor 属性は文字列としてそのまま保持し、階(StbStory)への参照としては扱いません。
ST-Bridge の floor は自由文字列で、階への id 参照を持たないためです。
実際、断面の階名が 1・R・PHR で StbStory の名称が 1FL・RFL・PHRFL というように
食い違うファイルや、断面の階名に対応する StbStory が存在しないファイルがあります。
符号+階が重複する断面定義は、取り込みの段階で次のように解決します。
- 断面性能・断面形状・材料が完全に一致する定義は、1 件へ統合する。統合した件数は
[
ImportReport] の通知(notes)で知らせる - いずれかが食い違う定義は、符号へ連番を付けて(
b3→b3#2)別の断面として残す。 符号を変えた内容は [ImportReport] の警告で知らせる
材料も一致の判定に含めるのは、材料は断面が持ち、違う材料を割り当てるならそれは 別の断面だからです。材料だけが違う定義を 1 件へまとめると、片方の材料が無言で消えます。
食い違う定義を捨てずに残すのは、利用者が書いた断面定義を無言で消さないためです。 連番を付けた時点で符号+階は一意になるので、モデル側の制約とも矛盾しません。
階を持たない断面定義(floor 属性のない StbSecBeam_S など)が複数あり、内容も同一である場合は
1 件へ統合されます。
小梁の断面定義が同じ内容で何件も並ぶファイルは実際にあるため、この統合で断面一覧が実態に近づきます。
断面表現(書き出し)
書き出しは ST-Bridge 2.0.2 標準スキーマ準拠の 1 形式のみです。内部モデルのパラメトリック断面形状
(Section.shape)を対応する標準要素+形鋼ライブラリ(StbSecSteel)へ写像します。
| 内部形状 | 書き出し先 |
|---|---|
| H 形鋼・角形鋼管・鋼管・山形鋼・溝形鋼・T 形鋼 | 形鋼ライブラリ StbSecSteel(StbSecRoll-H/-BOX/StbSecPipe/-L/-C/-T)+ StbSecColumn_S / StbSecBeam_S |
| 平鋼・中実丸鋼・リップ溝形鋼 | 形鋼ライブラリ(StbSecRoll-FlatBar/-RoundBar/-LipC)+ StbSecColumn_S / StbSecBeam_S |
| 非対称組立 H(上下フランジ相違) | StbSecBuild-H |
| RC 矩形・円形 | StbSecColumn_RC / StbSecBeam_RC(断面の幾何 + 配筋 StbSecBarArrangement*) |
| CFT 角形・円形 | StbSecColumn_CFT + 充填鋼管の StbSecSteel 参照(柱のみ) |
| SRC 矩形 | StbSecColumn_SRC / StbSecBeam_SRC(コンクリート図形+内蔵鉄骨 StbSecSteel 参照+配筋+鋼種 strength_steel) |
| 上記以外(耐震壁・形状未定義・CFT 梁・RC 円形梁) | 標準 ST-Bridge に対応要素がないため物性直持ちの拡張要素 StbSecRaw へフォールバック(他ソフトは解釈できないが参照部材の断面リンクは保つ) |
往復(import → export → 再 import)についての注意:
- 材料は断面のグレード名(鋼
strength_main、コンクリートstrength_concrete、 内蔵鉄骨strength_steel、主筋・せん断補強筋は配筋のstrength_*)で往復します。 Squid-n も材料を断面に持つため、両者の持ち方が一致します。 日本の構造材料は規格化されており名前が物性を一意に定めるため、取り込み時に名前から標準材料表で E・ν・密度・Fc・Fy を復元します。任意の物性値(グレード名に対応しない E/ν 等)は往復しません。 部材側のid_materialを持つファイル(実 ST-Bridge に多い)は、その材料を参照先の断面へ移します。 同じ断面を指す部材が別々の材料を指す場合は、最初の 1 件を採り、その件数を 取り込み報告の警告へ出します。違う材料を使う部材は断面を分けてください。 - RC の配筋(主筋の本数・径〔単一
D_main〕・材質〔strength_main〕、帯筋・あばら筋の径・ピッチ・組数・材質、かぶり)もStbSecBarArrangement*(配筋子要素=標準名、かぶり=配置コンテナのdepth_cover_*)として往復します。 ただし ST-Bridge の主筋径はD_main単一・段別本数のみのため、X/Y で径を変えたり多段配筋にしたりは 往復しません(単一径・1 段へ丸めます)。 - 断面の階は
floor属性として書き出します。階を持たない断面は属性ごと省きます。 ST-Bridge 2.0 のfloorは省略可能なxs:stringなので、未設定を空文字列で書き出すと取り込み側で 「階なし」と「階が空文字列」を区別できなくなるためです。属性を省くことで、往復しても符号+階の 組が保たれます。 - 柱・梁で共有していた断面は、書き出し時に柱用(
StbSecColumn_*)と梁用(StbSecBeam_*)へ 分割されます。分割された 2 つは符号も階も同じで断面性能も一致するため、読み戻すときに 1 件へ 統合されます(符号+階の重複の解決。上記参照)。 - RC 円形を梁として使う断面・CFT 梁・形状未定義断面は
StbSecRawへフォールバックします。 - id は ST-Bridge の
positiveInteger(1 始まり)に合わせて出力し、取り込み時に 0 始まり連番へ正規化します。
Squid-n 固有の解析・設計属性や材料の物性値まで含めた完全一致での往復が必要な場合は
.scz を使います。
ライブラリからの利用
#![allow(unused)] fn main() { use squid_n_io::stbridge::{import_stbridge, import_stbridge_with_report, export_stbridge}; // 読み込み: ST-Bridge XML 文字列 → 内部モデル let xml = std::fs::read_to_string("model.stb")?; let model = import_stbridge(&xml)?; // 読み込み(欠落の報告つき): 未対応要素のスキップ・断面欠落・参照解決失敗などを警告として得る let (model, report) = import_stbridge_with_report(&xml)?; if !report.is_clean() { for w in &report.warnings { eprintln!("警告: {w}"); } } // 書き出し: 内部モデル → 標準 ST-Bridge 2.0.2 XML 文字列 let xml = export_stbridge(&model)?; std::fs::write("model.stb", xml)?; }
取り込みの欠落を確認する:
import_stbridge_with_reportは [ImportReport] を返します。 基礎・杭・開口などの未対応要素、テーパ等で図形を認識できない RC/SRC 断面、 未解決の形鋼参照、存在しない節点を参照する部材が、警告として列挙されます。 床領域の付け直しでは、どの床領域にも載らない版、所属の付かない小梁、 面積が新しい床領域と合わなかった旧床領域の件数も警告します。 GUI の「ST-Bridge 読込」は警告があれば「⚠️ 取り込み時の注意」として表示します。