隣棟間の中心線をマニアックに解析

今回は、「JG_延焼線緩和」に関連して、建物間中心線の描画をプログラムで解析することになった経緯と、この隣棟間の延焼線の基準となる外壁間中心線については掘り下げていくと実は奥が深く、パンドラの箱を開けかねない状況に陥ったというお話をしたいと思います。

JG_延焼線緩和 実行画面

さて、外壁間中心線の基本的な作図方法は、「防火避難安全規定の解説」に示されています。二棟の外壁面が正対している場合は、それぞれの外壁から等距離にある平行線を引き、正対していない場合は、向き合う外壁がつくる角度の二等分線をつくり、さらにそれらが交わるところで連結し、一連の折れ線にすると完成ということになっています。しかし実際にはそう簡単ではありません。基本的な手順を理解していても、建物の形状が複雑になり二等分線が錯綜しだすと、どの線をどの位置で連結すべきか途方に暮れることになります。あれこれ思考錯誤していくうちに何とか形にはなりますが、この中心線作成をプログラム化しようと思ったきっかけは、一見規則性がないように見えるものの結果的に作図できるからには、そこに何らかのメカニズムがあるのではないかと思ったからです。

JG_延焼線緩和 外壁間の中心線

まず考えた基本的な仕組みは単純で、建物どうしが向き合っている全ての面で二等分線(このツールでは補助線といっています)を作成し、建物間の中央に位置する補助線どうしを見つけて繋いでいくという方法です。これは「総当たり」といって、解析する対象が膨大な場合は賢い方法ではありませんが、延焼線の作成であればデータ量は限定的で計算に時間がかかることはありません。一方で、取りこぼしがなく、全ての補助線を作成するため作成後に検証しやすいというメリットがあります。

JG_延焼線緩和 中心線の候補が1つの場合(A図)

A図は、補助線のなかから特定した中心線を赤の太線で表現したものです。複数の補助線の中から建物間の中央付近を通る部分を見つけ交点で繋いでいるのが分かると思います。これまでいろいろとシミュレーションしてみた結果、最後まで途切れることなく連続する中心線を最低一本以上は見つけ出すことができます。ただ一本のみかというとそうではなく、建物どうしが離れている(延焼線の検討にはあまり影響がない)ところでは、中央の中心線とは連続しない別の中心線が現れる場合があります(B図)。

A図のように外壁面に凹凸がない場合は、互いに平行な補助線(図のピンク色の点線)が現れず中心線は一組のみですが、B図のように外壁面に凹凸があると、互いに平行な補助線が複数現れ、このことから中心線が二組生まれてきます。

JG_延焼線緩和 中心線の候補が2つの場合(B図)

B図をみると、建物が離れているところで発生した中心線が、2番目の折れ線で建物の中央から明らかに逸脱し、途中で途切れていることが分かります。このように、周縁部で発生した中心線が最後まで連続することはほぼありません。その点では、延焼線作成に有効な中心線は一本のみであると言えます。

JG_延焼線緩和 補助線が複雑な場合1(C図)

C図においてはさらに外壁の面が増え補助線の数も増えてきていますが、建物間の中央を通り両端にかけて連続する中心線が一意に定まっています。次のD図においても、補助線が網目のように出現しかなり複雑な状況を呈していますが、この場合でも中心線が一意に定まっています。この数多い補助線群の中から建物間の中央を通る補助線をどのように見つけ出してているかについては後述しますが、補助線の総数は、二棟間で向き合う外壁面の数の掛け算(例:向き合う外壁面が3面ずつの場合3×3=9本)になるので、外壁面が多くなるとそれに輪をかけて補助線が増えていきます。

JG_延焼線緩和 補助線が複雑な場合2(D図)

E図は、あえて壁面を複雑にして本プログラムを実行した例です。これをみると、いかに複雑な状況であっても中心線を見つけ出せそうです。しかしながら、F図においては、途中で切れています。理由は外壁面に凹部があるとルートが円環になりやすいうえに、同一点に戻ってきて無限ループのような状態になるからです。これは比較的整形な凹部がある場合に偶発的に発生します。


JG_延焼線緩和 中心線作成シミュレーション1(E図)

F図のような不具合は大方の場合、建物の入力順を逆にすることで解消します。ただし、このように建物の凹凸が多かったり形状が複雑になってくると、それだけでは解けない場合がでてきます。つまり、固定的なプログラムではなく、パラメーターを用いた動的なプログラムが必要になってくるということです。

JG_延焼線緩和 中心線作成シミュレーション2(F図)

「JG_延焼線緩和」では、形状が複雑な場合に使用するパラメーターを設けて、補助線が複雑に絡み合う状況に対応できるようにしています。この「形状が複雑な場合に使用するパラメーター」は以下の二つのパラメーターから選択できます(共に選択することも可能です)。

①中心線(補助線)の交点回りを詳細に解析する

②互いに連続しない中心線(の候補)を複数描画する

①と②のパラメーターはそれぞれ目的と効果が異なります。

パラメーター①は出力結果の確認または中心線及び延焼線の別案作成に用い、パラメーター②は中心線の特定が困難な場合にその代替案の作成に使用します。

<パラメーター①の概要>

補助線どうしの交点を繋げていく際に、全ての交点において、交差する補助線の全てを検証してどの補助線と連結するかを決めますが、交点から一定の範囲にある補助線については、一度取捨選択したものを無効にします。パラメーター①は、その際の閾地を決めるパラメーターで、ONにすると範囲が縮まります。

JG_延焼線緩和 パラメーター①がオフの例(G図)

JG_延焼線緩和 パラメーター①「中心線の交点回りを詳細に解析する」がオンの例(H図)

H図は、パラメーター①「中心線の交点回りを詳細に解析する」をオンで実行した例です。オフの状態のG図と比較すると青丸部分の中心線のルートが異なっていて、H図の中心線のほうがより建物間の中央に近いことが分かります。

ただし通常はオフにして使用します。このパラメーターの閾値が小さいとF図のように途中で途切れるリスクが増えるためです。

<パラメーター②の概要>

パラメーター②は、建物間の中央部を通る複数の補助線が近接する際に使用するパラメーターです。プログラム的に建物間の中央の位置をどのように規定しているかというと、二棟間の最短距離となる線分(最短線分)を求め、その中点付近としています。ほとんどの場合は「付近」というようにアバウトに設定しても問題は起きませんが、レアケースとして二本の補助線が極端に近接することがあります。その際は相対的に近い側の補助線を採用することになりますが、これに数学的な根拠はありません。極めて稀に、不適切は補助線のほうがその中点に近い場合があります。

JG_延焼線緩和 パラメーター②がオフの例(J図)

J図はパラメーター②をオフで実行した例です。一見大丈夫そうに見えますが、正しいのはその下の点線のラインです。青丸部分を拡大したK図をみると、点線のラインよりも太い実線ラインがほうが僅かに中点に近いため特定されたこと分かります。

JG_延焼線緩和 J図の青丸印部分を拡大したもの(K図)

L図は、パラメーター②「互いに連続しない中心線を複数描画する」をオンで実行した例です。最短線分の中点に近い中心線と、次に近い中心線が代替案として描画されています。

JG_延焼線緩和 パラメーター②「互いに連続しない中心線を複数描画する」がオンの例(L図)

さてこのように、感覚的には明らかに判断できる場合であっても、プログラムで解こうとすると容易ではないことが分かると思います。いずれ機会があればさらに掘り下げてみるつもりです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です