2022-12-07 04:58 PM
数式エディタで屋内消火栓の設置条件を判定したのですが、数式をどう入れれば良いか分かりません。
イメージとしては、
①一般条件と地階無窓を判別する
②一般条件は③の式へ、地階無窓は④の式へ
③一般条件の場合の防火対象物の種別、構造、内装制限の条件と延べ床面積で判別する
④地階無窓の場合の防火対象物の種別、構造、内装制限の条件と延べ床面積で判別する
このような数式を1つの式で組み立てるには、どうすれば良いでしょうか?
どの関数を使えば良いかすら分からないレベルですので、説明がざっくりで申し訳ありません。
アドバイス頂ければ大変助かります。よろしくお願いいたします。
解決済! 解決策の投稿を見る。
2022-12-08 03:36 PM - 編集済み 2022-12-08 03:38 PM
一つの式で、という要望を満たせているかは微妙ですが、恐らく前提となる条件は面積、用途、地階無窓階の有無と耐火種別と思います。
なので、消防法上の用途を選択するプロパティ①「消防法上の用途」と、
無窓、地階の判定のプロパティ②「地階無窓」と、
プロパティ③「耐火種別」を作成し、
あとは、各条件に沿って数式を組んでいきます。
使うのはIFS、AND、OR関数(関数の文章を短くするならCONTAIN関数もおすすめ)を使うと作成できると思います。
たとえば、用途(1)の場合、
(消防法上の用途="(1)~")かつ((地階無窓="無"かつ耐火種別="その他",延床面積>=500㎡)又は
(地階無窓="無"かつ耐火種別="準耐火建築物",延床面積>=1000㎡)又は
(地階無窓="無"かつ耐火種別="耐火建築物",延床面積>=1500㎡)又は
(地階無窓="有"かつ耐火種別="その他",延床面積>=100㎡)又は
(地階無窓="有"かつ耐火種別="準耐火建築物",延床面積>=200㎡)又は
(地階無窓="有"かつ耐火種別="耐火建築物",延床面積>=300㎡))
となります。
なので、
IFS(AND ( ( CONTAINS ( "(一)", {Property:建基法関係(ゾーン)/消防法上の用途} ),
OR ( AND ( {Property:消防法関係(ゾーン)/地階無窓} = "無", {Property:建基法関係(ゾーン)/耐火種別} = "その他", {Property:ゾーン/測定面積} >= 500 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "無", CONTAINS ( "準耐火建築物", {Property:建基法関係(ゾーン)/耐火種別} ), {Property:ゾーン/測定面積} >= 1000 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "無", {Property:建基法関係(ゾーン)/耐火種別} = "耐火建築物", {Property:ゾーン/測定面積} >= 1500 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "有", {Property:建基法関係(ゾーン)/耐火種別} = "その他", {Property:ゾーン/測定面積} >= 100 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "有", CONTAINS ( "準耐火建築物", {Property:建基法関係(ゾーン)/耐火種別} ), {Property:ゾーン/測定面積} >= 200 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "有", {Property:建基法関係(ゾーン)/耐火種別} = "耐火建築物", {Property:ゾーン/測定面積} >= 300 m2 ) ) ), "〇",TRUE, "" )
IFS関数はIF関数の複数形で、今回は用途(一)にのみ言及しましたが、これを全用途分繰り返すと完成すると思います。
難しそうに見えますが1つ作ってしまえば構造は単純なのと、用途によっては複数用途まとめて数式を作れます。EXCELなどで整理しながら作成するとわかりやすいかもしれません。
上記の数式はユーザーマニュアルを見るとわかりやすいと思います。
2022-12-08 03:36 PM - 編集済み 2022-12-08 03:38 PM
一つの式で、という要望を満たせているかは微妙ですが、恐らく前提となる条件は面積、用途、地階無窓階の有無と耐火種別と思います。
なので、消防法上の用途を選択するプロパティ①「消防法上の用途」と、
無窓、地階の判定のプロパティ②「地階無窓」と、
プロパティ③「耐火種別」を作成し、
あとは、各条件に沿って数式を組んでいきます。
使うのはIFS、AND、OR関数(関数の文章を短くするならCONTAIN関数もおすすめ)を使うと作成できると思います。
たとえば、用途(1)の場合、
(消防法上の用途="(1)~")かつ((地階無窓="無"かつ耐火種別="その他",延床面積>=500㎡)又は
(地階無窓="無"かつ耐火種別="準耐火建築物",延床面積>=1000㎡)又は
(地階無窓="無"かつ耐火種別="耐火建築物",延床面積>=1500㎡)又は
(地階無窓="有"かつ耐火種別="その他",延床面積>=100㎡)又は
(地階無窓="有"かつ耐火種別="準耐火建築物",延床面積>=200㎡)又は
(地階無窓="有"かつ耐火種別="耐火建築物",延床面積>=300㎡))
となります。
なので、
IFS(AND ( ( CONTAINS ( "(一)", {Property:建基法関係(ゾーン)/消防法上の用途} ),
OR ( AND ( {Property:消防法関係(ゾーン)/地階無窓} = "無", {Property:建基法関係(ゾーン)/耐火種別} = "その他", {Property:ゾーン/測定面積} >= 500 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "無", CONTAINS ( "準耐火建築物", {Property:建基法関係(ゾーン)/耐火種別} ), {Property:ゾーン/測定面積} >= 1000 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "無", {Property:建基法関係(ゾーン)/耐火種別} = "耐火建築物", {Property:ゾーン/測定面積} >= 1500 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "有", {Property:建基法関係(ゾーン)/耐火種別} = "その他", {Property:ゾーン/測定面積} >= 100 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "有", CONTAINS ( "準耐火建築物", {Property:建基法関係(ゾーン)/耐火種別} ), {Property:ゾーン/測定面積} >= 200 m2 ),
AND ( {Property:消防法関係(ゾーン)/地階無窓} = "有", {Property:建基法関係(ゾーン)/耐火種別} = "耐火建築物", {Property:ゾーン/測定面積} >= 300 m2 ) ) ), "〇",TRUE, "" )
IFS関数はIF関数の複数形で、今回は用途(一)にのみ言及しましたが、これを全用途分繰り返すと完成すると思います。
難しそうに見えますが1つ作ってしまえば構造は単純なのと、用途によっては複数用途まとめて数式を作れます。EXCELなどで整理しながら作成するとわかりやすいかもしれません。
上記の数式はユーザーマニュアルを見るとわかりやすいと思います。
2022-12-09 01:48 PM
kojitokunaga様
ご回答ありがとうございます。
大変参考になります!
ARCHICAD上で長い数式を書いていくのは分かりづらいのでEXCELで整理しながらやってみます。
屋内消火栓だけでも設置条件が複数あり難しいですが、
一度できれば他の消火設備の判定にも応用したいと思います。