Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ツール一覧

公開されている MCP ツールは以下の 6 個です。

model_query

節点・部材・断面・壁版・床板・床領域・壁領域・二次部材を検索します。

引数必須/任意意味
kindString必須"node"/"nodes""member"/"members"/"element"/"elements""section"/"sections""wall_plate"/"wall_plates""slab"/"slabs""floor_region"/"floor_regions""wall_region"/"wall_regions""unassigned_joist"/"unassigned_joists""unassigned_post"/"unassigned_posts""secondary_joist"/"secondary_joists" のいずれか。それ以外は空配列を返す
filterOption<String>任意各アイテムを JSON 文字列化した内容に対する部分一致フィルタ

返り値:

{ "items": [ /* 検索結果の JSON オブジェクト配列 */ ] }
  • node: { "id", "coord", "story" }
  • member/element: { "id", "kind", "nodes", "section", "material" }。部材付帯情報(ハンチ・継手位置)があれば haunch_i/haunch_jlength/depth_increase/width_increase)と jointsdistance/kind)を追加。入力モデルに保存されている部材だけを返す(壁版から都度生成する耐震壁は含まない。壁は kind=wall_plate で照会する)
  • section: { "id", "name", "area", "iy", "iz" }
  • wall_plate: { "id", "shape", "section", "opening_area", "opening_weight", "slit", "openings", "loads", "becomes_element" }slit{ "column_face": [bool, bool], "beam_face": [bool, bool] }(耐震スリット。梁際は 0 が下辺、1 が上辺)、loads は仕上げ・増打ちの面荷重 [N/mm²](躯体の自重は含まない)、becomes_element はその壁版から壁エレメントが生成されるか。shape.kind"Enclosed"boundary)または "Attached"anchorextentresolved_extent)。extent は入力値そのもので null は階高いっぱいを表し、resolved_extent は階レベルから解決した高さ(null は直上に階が無く解決できない。解析前チェックが止める)
  • slab: { "id", "shape", "section", "loads", "usage", "method", "one_way" }shape は壁版と同じく "Enclosed" / "Attached"
  • floor_region: { "id", "name", "boundary", "slab_ids", "secondary_joists" }secondary_joists は所属小梁の実体配列
  • wall_region: { "id", "name", "boundary", "wall_plate_ids", "posts" }posts は所属間柱の実体配列
  • unassigned_joist / unassigned_post: どの領域にも入らなかった二次部材の配列
  • secondary_joist: 領域内と未割当を合わせた小梁の実体配列

model_edit

モデルを編集します。GUI と同じ EditCommand と Undo 履歴を使います。引数は command キーで種別を指定する JSON オブジェクトです(トップレベルに command を置く)。{ "body": { "command": "...", ... } } という入れ子も受け付けます。

返り値:

{ "op_id": "op-1", "applied": true, "undoable": true, "summary": "..." }
  • appliedfalse のときは、参照検証などでコマンドが Noop になった(モデルは変わらない)
  • 節点・部材・荷重・断面そのものの追加削除など、下表にない EditCommand は未対応(エラー)

壁版(7)

command必須任意と既定
AddEnclosedWallPlateboundary(ちょうど 4 節点。重複不可)section(既定 null)、opening_area(既定 0)、opening_weight(既定 0
AddAttachedWallPlateanchorextent(2 要素 [mm]。省略または null で階高いっぱい。自立壁のみ)、section(既定 null)、opening_area(既定 0)、opening_weight(既定 0
DeleteWallPlateid
SetWallPlateSectionidsectionnull で未割当)
SetWallPlateAttrsidopening_area(既定 0)、opening_weight(既定 0)、openings(既定 [])、loads(仕上げ・増打ちの面荷重。既定 [])、slit{ "column_face": [bool, bool], "beam_face": [bool, bool] }。片方のキーだけでも可。既定は 4 辺とも false
SetAttachedWallPlateExtentidextent(省略または null で階高いっぱい。自立壁のみ)
SetAttachedWallPlateAnchoridanchor

囲まれた壁版の例:

{
  "command": "AddEnclosedWallPlate",
  "boundary": [0, 1, 2, 3],
  "section": null,
  "opening_area": 0.0,
  "opening_weight": 0.0
}

取付き先 anchor が線のときの形(nodes は取付き梁の 2 節点、span は梁全長に対する無次元区間):

{
  "Line": { "nodes": [0, 1], "span": [0.0, 1.0], "transfer": "Anchor" }
}

床板(8)

command必須任意と既定
AddSlabboundary(3 節点以上)loads(既定 [])、method(既定 "TriTrapezoid")、usage(既定 null)、section(既定 null
AddAttachedSlabanchorextent版仕様はフラット引数(section/loads/usage/method/one_way)か plate オブジェクト。method 未指定は "TriTrapezoid"loads 未指定は []
DeleteSlabid
SetSlabSectionidsectionnull で未割当)
SetSlabUsageidusagenull で積載荷重なし)
SetSlabOneWayidone_waynull で境界辺 0・2 が負担)
SetAttachedExtentidextent
SetAttachedAnchoridanchor

AddAttachedSlab のフラット引数の例:

{
  "command": "AddAttachedSlab",
  "anchor": { "Line": { "nodes": [0, 1], "span": [0.0, 1.0], "transfer": "Anchor" } },
  "extent": [1000.0, 1000.0],
  "section": 0
}

床領域(3)

command必須任意と既定
SetFloorRegionNameidname
SetFloorRegionSecondaryJoistsfloor_region(別名 id)、secondary_joistsSecondaryMember の配列。空にするときは []。空にすると旧所属は未割当へ移る)

secondary_joists を省略するとエラーになります(欠落を空配列とみなしてリストを消すことはしません)。SetFloorRegionJoistsSetSlabSecondaryJoistIds、およびキー secondary_joist_ids / ids は受け付けずエラーになります。

未割当二次部材(4)

command必須任意と既定
AddUnassignedJoistjoistSecondaryMember
DeleteUnassignedJoistindex
AddUnassignedPostpostSecondaryMember
DeleteUnassignedPostindex

同じ端点の小梁・間柱が既にあるときは適用されず applied: false になります。

壁領域(1)

command必須任意と既定
SetWallRegionPostswall_region(別名 id)、postsSecondaryMember の配列。空にするときは []

posts を省略するとエラーになります。壁領域の新規作成・削除は公開していません(準備計算が壁領域を作り直すため)。

床領域の新規作成・削除は公開していません(準備計算が床領域を作り直すため)。

quantity_takeoff

数量積算(コンクリート体積・型枠面積・鉄筋/鉄骨重量の概算)を集計します。

引数必須/任意意味既定値
group_byOption<String>任意"category"(部位別)/"story"(階別)/"steel"(鉄骨種類別)/"rebar"(鉄筋径別)/"detail"(明細)"category"

返り値:

{ "rows": [ /* group_by に応じた行 */ ], "totals": { "concrete_m3": .., "formwork_m2": .., "rebar_t": .., "steel_t": .., "rebar_joints": .. }, "notes": [ /* 注記 */ ] }

rows の形は group_by により異なります。

group_by行の形
category(既定){ category, concrete_m3, formwork_m2, rebar_t, steel_t, rebar_joints }
story{ story, concrete_m3, formwork_m2, rebar_t, steel_t, rebar_joints }
steel{ section, length_m, weight_t }
rebar{ dia_mm, length_m, weight_t }
detail{ elem, slab, label, story, category, structure, concrete_m3, formwork_m2, rebar_t, steel_t, rebar_joints }

数量の算定式は計算根拠 10. 数量積算を参照してください。

analysis_run

解析を非同期で実行し、ジョブを登録して job_id を即座に返します(計算完了は待ちません)。

引数必須/任意意味既定値
kindJobKind必須LinearStatic/Eigen/Pushover/TimeHistory/DesignCheck/UltimateCheck(質点系は含まれません)
load_caseOption<u32>任意LinearStatic/DesignCheck/UltimateCheck: 対象荷重ケース ID先頭の荷重ケース
n_modesOption<usize>任意Eigen: モード数3
dirOption<String>任意Pushover/TimeHistory: 加力・入力方向。"X"/"Y" 以外はエラー"X"
stepsOption<usize>任意Pushover: 最大ステップ数50
max_dispOption<f64>任意Pushover: 目標変位 [mm]。未指定なら目標層間変形角のみで判定なし
max_drift_denomOption<f64>任意Pushover: 目標最大層間変形角の分母 n(角度 1/n)。max_disp と両方指定した場合は早く達した方で終了150(max_disp 未指定時)
dtOption<f64>任意TimeHistory: サンプル波の時間刻み [s]0.01
durationOption<f64>任意TimeHistory: サンプル波の継続時間 [s]2.0
periodOption<f64>任意TimeHistory: サンプル波の周期 [s]0.5
ampOption<f64>任意TimeHistory: サンプル波の振幅 [mm/s²]1000
zOption<f64>任意荷重自動同期: 地域係数 Z(令88条)1.0
soilOption<String>任意荷重自動同期: 地盤種別。"I"/"II"/"III" 以外はエラー"II"
c0Option<f64>任意荷重自動同期: 標準せん断力係数 C00.2
ai_modeOption<String>任意荷重自動同期: Ai 算定法。"Approx"/"SemiPrecise" 以外はエラー"Approx"
design_periodOption<f64>任意荷重自動同期: 精算時の設計用基本周期 T [s]。ai_mode="SemiPrecise" かつ未指定なら EX/EY を同期しないなし

返り値:

{ "job_id": "job-0" }

kind ごとに使用するパラメータと概略処理:

kind使用パラメータ処理概要
LinearStaticload_case, z, soil, c0, ai_mode, design_period指定/先頭の荷重ケースで線形静解析(解析前に荷重自動同期)
Eigenn_modes, z, soil, c0, ai_mode, design_period固有値解析(周期・刺激係数・有効質量。解析前に荷重自動同期)
Pushoverdir, steps, max_disp, max_drift_denom(解析前同期: z, soil, c0, ai_mode, design_period増分解析(プッシュオーバー解析)。水平載荷の Ai 分布は solver 側で略算 T・Z=1・地盤 II・C0=0.2 固定。地震引数は階重量・EX/EY の同期にのみ効く。結果ストアには書かずサマリ JSON のみを返す
TimeHistorydir, dt, duration, period, amp, z, soil, c0, ai_mode, design_periodサンプル波(amp * sin(ωt) * e^{-0.3t})による時刻歴応答解析。減衰は剛性比例減衰(h=0.02、1 次固有振動数使用)固定(解析前に荷重自動同期)。結果ストアには書かずサマリ JSON のみを返す
DesignCheckload_case, z, soil, c0, ai_mode, design_period荷重ケースの線形静解析結果に対する断面検定(鋼/RC 許容応力度、危険断面位置基準)。検定条件は荷重ケース種別で決まる(地震・風は短期、それ以外は長期)。地震時短期は重力ケースを別途解析して長期内力を重ね、Q0 も算定する(重力の再解析に失敗した分は gravity_failed に件数を載せ、成功分だけで組む)。付着は Rc1999、QD は既定方式、一本部材は未対応。検定結果自体はサマリ JSON のみに入り、結果ストアには断面力のみを書く
UltimateCheckload_case, z, soil, c0, ai_mode, design_periodRC 部材の終局せん断・付着・軸余裕度、CFT 柱の軸終局検定(靭性保証型耐震設計指針)。QL・Q0 は設定しない。結果ストアには書かずサマリ JSON のみを返す

Doneresult_ref(サマリ JSON)には、解析結果に加え、前処理の注意事項があれば notices 配列が付きます。たとえば ai_mode="SemiPrecise" かつ design_period 未指定のときは EX/EY を同期せず、その旨が notices に入ります(ジョブ自体は完了します)。

analysis_status

ジョブの状態を取得します。

引数必須/任意意味
job_idString必須analysis_run が返した ID

返り値:

{ "id": "job-0", "kind": "LinearStatic", "status": { /* Queued | Running{progress} | Done{result_ref} | Failed{error} */ } }
  • status は次のいずれかの形を取ります。
    • "Queued"(ジョブ登録直後の内部状態。通常は analysis_run がすぐに実行を開始するため、ポーリングではほとんど見えません)
    • { "Running": { "progress": 0.0 } }
    • { "Done": { "result_ref": "<サマリ JSON 文字列>" } }
    • { "Failed": { "error": "<エラーメッセージ>" } }
  • job_id が存在しない場合はエラー(invalid_params)。

result_get

解析結果ストアから結果を取得します。

引数必須/任意意味
caseu32必須荷重ケース ID(Eigen の結果は case=0 固定)
kindString必須"NodalDisp"/"MemberForce"/"Modal"/"TimeHistory" のいずれか
node_idsOption<Vec<u32>>任意節点 ID での絞り込み
member_idsOption<Vec<u32>>任意部材 ID での絞り込み
step_rangeOption<Vec<u64>>任意[start, end) のちょうど 2 要素。それ以外はエラー

返り値:

{ "case": 1, "kind": "NodalDisp", "rows": [ /* 明細行 */ ], "truncated": false }

(case, kind) の組が結果ストアにない場合はエラーになります(analysis_run を先に実行する必要があります)。 各 kind の列構成は解析ジョブのフローと結果ストアを参照してください。