(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024150871
(43)【公開日】2024-10-24
(54)【発明の名称】接触面検出装置、接触面検出方法およびプログラム
(51)【国際特許分類】
G06F 30/13 20200101AFI20241017BHJP
G06F 30/20 20200101ALI20241017BHJP
G06F 111/04 20200101ALN20241017BHJP
【FI】
G06F30/13
G06F30/20
G06F111:04
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023063888
(22)【出願日】2023-04-11
(71)【出願人】
【識別番号】523135436
【氏名又は名称】深尾 仁
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100166442
【弁理士】
【氏名又は名称】鈴木 洋雅
(74)【代理人】
【識別番号】100208269
【弁理士】
【氏名又は名称】遠藤 雅士
(72)【発明者】
【氏名】深尾 仁
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA04
5B146DJ15
5B146EA09
5B146EC10
(57)【要約】
【課題】建築物における部材同士の接触関係の情報を好適に活用することができる接触面検出装置、接触面検出方法およびプログラムを提供する。
【解決手段】接触面検出装置100は、第1部材の頂点の座標データと第部材の頂点の座標データとを取得し、第1部材を形成する面と第2部材を形成する面のうち、互いに接する接触面を検出することにより第1部材と第2部材が接触関係にあるか否かを検出する。そして検出した第1部材の接触面と第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定し、接触関係にあるか否かを示す情報と、接触部分と非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1部材の頂点の座標データと第2部材の頂点の座標データとを取得する座標データ取得部と、
前記第1部材を形成する面と前記第2部材を形成する面のうち、互いに接する接触面を検出することにより前記第1部材と前記第2部材が接触関係にあるか否かを検出する接触面検出部と、
前記接触面検出部で検出した前記第1部材の前記接触面と前記第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定する接触部分特定部と、
前記接触面検出部で検出した前記接触関係にあるか否かを示す情報と、前記接触部分特定部で特定した前記接触部分と前記非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する出力部と、
を備えることを特徴とする接触面検出装置。
【請求項2】
前記BIM情報を取得するBIM情報取得部と、
前記BIM情報取得部で取得した前記BIM情報に含まれ前記属性情報に基づいて、予め設定された基準を満たすか否かを判定することにより前記構造物の異常判定を行う異常判定部と、
をさらに備えることを特徴とする請求項1に記載の接触面検出装置。
【請求項3】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材が、予め接触が許可されている部材であるか否かを判定することで、前記構造物の異常判定を行う、
ことを特徴とする請求項2に記載の接触面検出装置。
【請求項4】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材の接触順序が、予め定められた順序であるか否かを判定することで、前記構造物の異常判定を行う、
ことを特徴とする請求項2に記載の接触面検出装置。
【請求項5】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材同士について、予め設定された情報と前記属性情報に基づいて、共に工事を必要とする道連れ工事を行う必要性を判定し、道連れ工事の面積を算出することにより工事数量を算出する、
ことを特徴とする請求項2に記載の接触面検出装置。
【請求項6】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材について、前記接触関係により必要となる修繕工事までの年数を修繕周期として、予め設定されている修繕情報から判定することで、前記構造物における前記部材の時系列の修繕情報を長期修繕計画としてBIMモデル上に出力する、
ことを特徴とする請求項2に記載の接触面検出装置。
【請求項7】
前記第1部材を形成する面から第1面を選択し、前記第2部材を形成する面から第2面を選択する面選択部と、
前記第1面を形成する第1多角形の辺と前記第2面を形成する第2多角形の辺とが交差するか否かを判定する交差判定部と、
前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定部と、
前記接触面検出部で検出された前記第1部材の前記接触面と前記第2部材の接触面の交点を検出する交点検出部と、
をさらに備え、
前記接触面検出部は、前記内包判定部の判定結果と前記交差判定部の判定結果とに応じて、前記第1部材を形成する面のうち前記第2部材を形成する面に接する面を検出し、
前記接触部分特定部は、前記交点検出部で検出した前記交点に基づいて前記接触部分と前記非接触部分とを特定する、
ことを特徴とする請求項1に記載の接触面検出装置。
【請求項8】
前記第1多角形と前記第2多角形それぞれについて、1つの頂点と該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する分割部をさらに備え、
前記交点検出部は、前記分割部により分割された前記第1多角形に含まれる三角形を構成する線分と前記第2多角形に含まれる三角形を構成する線分との前記交点を検出し、
前記接触部分特定部は、前記交点検出部で検出した前記交点と前記第1多角形および前記第2多角形の頂点と、のうち、隣り合う点を結ぶ辺を単位辺として、該前記接触部分を構成する前記単位辺であるか前記非接触部分を構成する前記単位辺であるかを前記単位辺ごとに特定することで、前記接触部分および前記非接触部分を特定する、
ことを特徴とする請求項7に記載の接触面検出装置。
【請求項9】
接触面検出装置による接触面検出方法であって、
第1部材の頂点の座標データと第2部材の頂点の座標データとを取得する座標データ取得ステップと、
前記第1部材を形成する面と前記第2部材を形成する面のうち、互いに接する接触面を検出することにより前記第1部材と前記第2部材が接触関係にあるか否かを検出する接触面検出ステップと、
前記接触面検出ステップで検出した前記第1部材の前記接触面と前記第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定する接触部分特定ステップと、
前記接触面検出ステップで検出した前記接触関係にあるか否かを示す情報と、前記接触部分特定ステップで特定した前記接触部分と前記非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する出力ステップと、
を備えることを特徴とする接触面検出方法。
【請求項10】
コンピュータを、
第1部材の頂点の座標データと第2部材の頂点の座標データとを取得する座標データ取得部、
前記第1部材を形成する面と前記第2部材を形成する面のうち、互いに接する接触面を検出することにより前記第1部材と前記第2部材が接触関係にあるか否かを検出する接触面検出部、
前記接触面検出部で検出した前記第1部材の前記接触面と前記第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定する接触部分特定部、
前記接触面検出部で検出した前記接触関係にあるか否かを示す情報と、前記接触部分特定部で特定した前記接触部分と前記非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する出力部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接触面検出装置、接触面検出方法およびプログラムに関する。
【背景技術】
【0002】
複数の図形の位置関係の判定について、幾つかの技術が提案されている。例えば、特許文献1には、面同士の接触関係の判定を適切に行うことができる接触面検出装置などが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、面同士の接触有無の判定結果が出力されるに過ぎず、接触している面とそうでない面との位置関係まで把握することができない。そのため、建築物における部材同士の接触関係の情報を好適に活用するという観点からすると改善の余地があった。
【0005】
本発明は、このような事情を考慮してなされたものであり、建築物における部材同士の接触関係の情報を好適に活用することができる接触面検出装置、接触面検出方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の第1の観点に係る接触面検出装置は、
第1部材の頂点の座標データと第2部材の頂点の座標データとを取得する座標データ取得部と、
前記第1部材を形成する面と前記第2部材を形成する面のうち、互いに接する接触面を検出することにより前記第1部材と前記第2部材が接触関係にあるか否かを検出する接触面検出部と、
前記接触面検出部で検出した前記第1部材の前記接触面と前記第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定する接触部分特定部と、
前記接触面検出部で検出した前記接触関係にあるか否かを示す情報と、前記接触部分特定部で特定した前記接触部分と前記非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する出力部と、
を備えることを特徴とする。
【0007】
前記BIM情報を取得するBIM情報取得部と、
前記BIM情報取得部で取得した前記BIM情報に含まれ前記属性情報に基づいて、予め設定された基準を満たすか否かを判定することにより前記構造物の異常判定を行う異常判定部と、
をさらに備えるようにしてもよい。
【0008】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材が、予め接触が許可されている部材であるか否かを判定することで、前記構造物の異常判定を行う、
ようにしてもよい。
【0009】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材の接触順序が、予め定められた順序であるか否かを判定することで、前記構造物の異常判定を行う、
ようにしてもよい。
【0010】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材同士について、予め設定された情報と前記属性情報に基づいて、共に工事を必要とする道連れ工事を行う必要性を判定し、道連れ工事の面積を算出することにより工事数量を算出する、
ようにしてもよい。
【0011】
前記異常判定部は、前記BIM情報取得部で取得した前記BIM情報に含まれる属性情報により前記接触関係にあることが特定される部材について、前記接触関係により必要となる修繕工事までの年数を修繕周期として、予め設定されている修繕情報から判定することで、前記構造物における前記部材の時系列の修繕情報を長期修繕計画としてBIMモデル上に出力する、
ようにしてもよい。
【0012】
前記第1部材を形成する面から第1面を選択し、前記第2部材を形成する面から第2面を選択する面選択部と、
前記第1面を形成する第1多角形の辺と前記第2面を形成する第2多角形の辺とが交差するか否かを判定する交差判定部と、
前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定部と、
前記接触面検出部で検出された前記第1部材の前記接触面と前記第2部材の接触面の交点を検出する交点検出部と、
をさらに備え、
前記接触面検出部は、前記内包判定部の判定結果と前記交差判定部の判定結果とに応じて、前記第1部材を形成する面のうち前記第2部材を形成する面に接する面を検出し、
前記接触部分特定部は、前記交点検出部で検出した前記交点に基づいて前記接触部分と前記非接触部分とを特定する、
ようにしてもよい。
【0013】
前記第1多角形と前記第2多角形それぞれについて、1つの頂点と該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する分割部をさらに備え、
前記交点検出部は、前記分割部により分割された前記第1多角形に含まれる三角形を構成する線分と前記第2多角形に含まれる三角形を構成する線分との前記交点を検出し、
前記接触部分特定部は、前記交点検出部で検出した前記交点と前記第1多角形および前記第2多角形の頂点と、のうち、隣り合う点を結ぶ辺を単位辺として、該前記接触部分を構成する前記単位辺であるか前記非接触部分を構成する前記単位辺であるかを前記単位辺ごとに特定することで、前記接触部分および前記非接触部分を特定する、
ようにしてもよい。
【0014】
上記目的を達成するため、本発明の第2の観点に係る接触面検出方法は、
接触面検出装置による接触面検出方法であって、
第1部材の頂点の座標データと第2部材の頂点の座標データとを取得する座標データ取得ステップと、
前記第1部材を形成する面と前記第2部材を形成する面のうち、互いに接する接触面を検出することにより前記第1部材と前記第2部材が接触関係にあるか否かを検出する接触面検出ステップと、
前記接触面検出ステップで検出した前記第1部材の前記接触面と前記第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定する接触部分特定ステップと、
前記接触面検出ステップで検出した前記接触関係にあるか否かを示す情報と、前記接触部分特定ステップで特定した前記接触部分と前記非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する出力ステップと、
を備えることを特徴とする。
【0015】
上記目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
第1部材の頂点の座標データと第2部材の頂点の座標データとを取得する座標データ取得部、
前記第1部材を形成する面と前記第2部材を形成する面のうち、互いに接する接触面を検出することにより前記第1部材と前記第2部材が接触関係にあるか否かを検出する接触面検出部、
前記接触面検出部で検出した前記第1部材の前記接触面と前記第2部材の接触面のうち、互いに接触する部分である接触部分と互いに接触しない部分である非接触部分をそれぞれ特定する接触部分特定部、
前記接触面検出部で検出した前記接触関係にあるか否かを示す情報と、前記接触部分特定部で特定した前記接触部分と前記非接触部分とを示す情報と、を含む属性情報を、構造物を構成する部材の識別情報を含むBIM情報として出力する出力部、
として機能させることを特徴とする。
【発明の効果】
【0016】
この発明によれば、建築物における部材同士の接触関係の情報を好適に活用することができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施の形態における接触面検出システムの一例を示すブロック図である。
【
図2】本発明の実施の形態における接触面検出装置の機能構成を示す概略ブロック図である。
【
図3】座標データ取得部がデータを取得する多面体の例を示す説明図である。
【
図4】分割部が行う多角形の分割の例を示す説明図である。
【
図5】面選択部が選択する面の例を示す説明図である。
【
図6】面選択部が選択する面の、もう1つの例を示す説明図である。
【
図7】2つの三角形の位置関係の例を示す説明図である。
【
図8】面積比較部が面積の合計を算出する三角形の例を示す説明図である。
【
図9】面積比較部が面積の合計を算出する三角形の、もう1つの例を示す説明図である。
【
図10】交差する2つの辺の例を示す説明図である。
【
図11】交差しない2つの辺の例を示す説明図である。
【
図12】交差しない2つの辺の、もう1つの例を示す説明図である。
【
図13】結果出力部による接触面検出部の判定結果の表示例を示す説明図である。
【
図14】接触面検出装置が多面体の接触面を検出する処理手順の例を示す説明図である。
【
図15】面選択部が同一平面に含まれる面を検出する処理手順の一例を示すフローチャートである。
【
図16】内包判定部が、2つの面の組み合わせについて、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されるか否かを判定する処理手順の例を示すフローチャートである。
【
図17】交差判定部が、2つの面の組み合わせについて、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する処理手順の例を示すフローチャートである。
【
図20】属性処理の一例を示すフローチャートである。
【
図21】分割部が行う多角形の分割の例を示す説明図である。
【
図24】三角形を統合した場合の一例を示す説明図である。
【
図25】接触部分非接触部分特定処理の一例を示すフローチャートである。
【
図27】接触部分と非接触部分の一例を示す説明図である。
【
図28】異常判定処理の一例を示すフローチャートである。
【
図29】部材毎のBIMデータの一例を示す説明図である。
【
図30】部材毎のBIMデータの一例を示す説明図である。
【
図31】各部材の接続関係を説明するための説明図である。
【
図32】各部材の接続関係の順序を説明するための説明図である。
【
図33】部材毎の特殊条件における耐用年数の減算年数を説明するための説明図である。
【
図34】部材の接続関係と経験上の劣化情報を説明するための説明図である。
【
図35】部材の接続関係と生じる工事を説明するための説明図である。
【
図36】
図29により示される情報をBIMシステム上で表示した例を示す図である。
【
図37】
図32により示される情報をBIMシステム上で表示した例を示す図である。
【
図38】
図34により示される情報をBIMシステム上で表示した例を示す図である。
【発明を実施するための形態】
【0018】
(実施の形態)
本発明を実施するための形態に係る接触面検出装置、接触面検出方法およびプログラムについて、図面を参照して詳細に説明する。なお、図中同一または相当する部分には同一符号を付す。以下では、本発明における接触面検出装置を、
図1に示す接触面検出システム1に適用した例を用いて説明する。
【0019】
接触面検出システム1では、
図1に示すように、BIM(Building Information Modeling)データ200および接触面検出装置100がインターネットなどのネットワーク210を介して通信可能に接続されている。
【0020】
BIMデータ200は、多層階の建築物の躯体モデルのデータを含んでおり、例えば建築物のモデルとしての多面体の頂点の座標データが記憶されている。また、BIMデータ200には、例えば、建築物を構成するコンクリートと配筋情報や、給水の始点である引き込み箇所を示す情報、終点となる給水箇所を示す情報など、設計や修繕に必要となる様々な情報が含まれる。
【0021】
接触面検出装置100は、スマートフォン、タブレットやPC(Personal Computer)などの情報端末であり、ネットワーク210を介してBIMデータ200の読み込みや書き込みを行う。
【0022】
図2は、本発明の実施形態における接触面検出装置100の機能構成を示す概略ブロック図である。
図2に示すように、接触面検出装置100は、記憶部110と、制御部120と、入出力部130と、通信部140と、これらを相互に接続するシステムバス(図示省略)と、を備えている。接触面検出装置100は、例えば複数の建築物のモデルなど、複数の多面体における接触面を検出するとともに、接触している部材におけるそれぞれの接触面のうち、接触部分とそうでない部分の情報をBIMデータ200に出力する。
【0023】
記憶部110は、ROM(Read Only Memory)やRAM(Random Access Memory)等を備える。ROMは制御部120のCPU(Central Processing Unit)が実行するプログラム111と、プログラム111を実行する上で予め必要な各種データ(図示省略)と、判定結果112と、交差座標データ113と、を記憶する。
【0024】
プログラム111は、後述する多面体の接触面を検出する処理や属性処理を実行するプログラムであり、予め記憶部110に記憶されている。
【0025】
判定結果112は、後述する多面体の接触面を検出する処理の処理結果や属性処理における処理結果を示す情報であり、それぞれの処理が実行されることにより、記憶部110へ記憶される。
【0026】
交差座標データ113は、後述する属性処理において算出される、三角形同士の辺の交点の座標を示すデータであり、当該属性処理が実行されることにより記憶部110へ記憶される。
【0027】
制御部120は、CPUやASIC(Application Specific Integrated Circuit)等から構成される。制御部120は、記憶部110に記憶されたプログラム111に従って動作し、当該プログラム111に従った処理を実行する。制御部120は、記憶部110に記憶されたプログラム111により提供される主要な機能部として、座標データ取得部121と、分割部122と、面選択部123と、接触面検出部124と、交点座標算出部128と、面処理部129と、結果出力部129Aと、異常判定部129Bとを具備する。接触面検出部124は、内包判定部125と、交差判定部127とを具備する。内包判定部125は、面積比較部126を具備する。
【0028】
座標データ取得部121は、複数の多面体の頂点の座標データを取得する。例えば、座標データ取得部121は、建築物のモデルとしての多面体の頂点の座標データを、BIMデータ200から取得する。なお、座標データ取得部121が取得する座標データは、例えばCAD(Computer Aided Design)データであってもよい。
【0029】
図3は、座標データ取得部121がデータを取得する多面体の例を示す説明図である。同図に示す例では、直方体ABCD-EFGHと、直方体abcd-efghとが示されている。座標データ取得部121は、これら直方体の各頂点の座標データを取得する。また、
図3の例において、面ABCDの一部と、面abcdの一部とが接している。以下では、座標データ取得部121がデータを取得する多面体のうち2つを、それぞれ、第1多面体、第2多面体と表記する。従って、座標データ取得部121は、第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する。なお、座標データ取得部121がデータを取得する多面体は直方体に限らない。従って、第1多面体、第2多面体のいずれも直方体に限らない。
【0030】
分割部122は、座標データ取得部121がデータを取得した多面体の面を形成する多角形の各々を、当該多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分(対角線)にて三角形に分割する。分割部122が分割する多角形には、後述する面選択部123が選択する第2面を形成する第2多角形が含まれる。従って、分割部122は、第2多角形を、当該第2多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する。
【0031】
図4は、分割部122が行う多角形の分割の例を示す説明図である。同図の例において、分割部122は、長方形ABCDを対角線ACにて三角形ABCと三角形ACDとに分割している。なお、分割部122が行う多角形の分割は、多角形の辺と交差しない線分にて多角形を三角形に分割するものであればよい。従って、分割部122が、多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分以外の線分を用いて多角形の分割を行うようにしてもよい。例えば、分割対象の多角形が複雑な形状の凹多角形である場合、分割部122が、多角形の辺と交差しない任意の対角線にて多角形を分割する処理を、分割にて得られる図形が全て三角形になるまで繰り返すようにしてもよい。
【0032】
一方、分割部122が1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ対角線にて三角形を分割することで、対角線同士の交差を回避することができ、分割にて得られる三角形の数の増大を防止することができる。また、分割部122が1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ対角線にて三角形を分割することで、分割に用いる線分が明確になり、分割部122の行う処理の自動化が容易になる。
【0033】
面選択部123は、第1多面体を形成する面から第1面を選択し、第2多面体を形成する面から第2面を選択する。具体的には、面選択部123は、第1多面体を形成する各面、および、第2多面体を形成する各面から、同一平面に含まれる面を検出する。例えば、面選択部123は、各多角形を形成する各面の3つの頂点を通る平面の方程式の係数を求め、得られた方程式の係数を比較することで、同一平面に含まれる三角形を検出する。面選択部123が平面の方程式を求める手法として、当該平面の単位法線ベクトルを算出して方程式の係数を求める方法など、公知の方法を用いることができる。以下では、面選択部123が選択する第1面を形成する多角形を第1多角形と表記し、面選択部123が選択する第2面を形成する多角形を第2多角形と表記する。
【0034】
図5は、面選択部123が選択する面の例を示す説明図である。同図では、
図3の例における直方体ABCD-EFGHと、直方体abcd-efghとが示されており、さらに平面P11が示されている。
図5の例において、
図3の場合と同様に、長方形ABCDと長方形abcdとは同一平面上にある。具体的には、長方形ABCDと長方形abcdとは、いずれも平面P11に含まれている。面選択部123は、同一平面上にある長方形ABCDと長方形abcdとを選択する。なお、上記のように面ABCDの一部と、面abcdの一部とが接している。
【0035】
図6は、面選択部123が選択する面の、もう1つの例を示す説明図である。同図では、直方体ABCD-EFGHと、直方体イロハニ-ホヘトチと、平面P11とが示されている。直方体ABCD-EFGHと平面P11とは、
図5の例に示すものと同一である。
図6の例において、長方形ABCDと長方形イロハニとは同一平面上にある。具体的には、長方形ABCDと長方形イロハニとは、いずれも平面P11に含まれている。面選択部123は、同一平面上にある長方形ABCDと長方形イロハニとを選択する。なお、
図6の例の長方形ABCDと長方形イロハニとは、互いに接してはいない。
【0036】
このように、面選択部123が選択する面には、互いに接していない面が含まれる。そこで、接触面検出部124が、面選択部123の選択した面のうち、互いに接している面を検出する。具体的には、接触面検出部124は、面選択部123が選択した第1面と第2面について、分割部122の分割にて得られた三角形同士が接するか否かを判定することで、第1面と第2面とが接するか否かを判定する。
【0037】
図7は、2つの三角形の位置関係の例を示す説明図である。同図において、2つの三角形の位置関係のパターンの例としてパターンP111、P121、P131、および、P141~P146が示されている。このうち、パターンP111は、2つの三角形が接していないパターンを示しており、他のパターンは、2つの三角形が接しているパターンを示している。
【0038】
パターンP111では、2つの三角形のいずれの頂点も他方の三角形に内包されていない。具体的には、パターンP111において、頂点A、B、Cのいずれも三角形abcの外に位置する。なお、ここでいう内包は、内包される点が内包する多角形の辺または頂点と重なっている場合を含む。また、2つの三角形のいずれの辺も、他方の三角形の辺と交差していない。具体的には、辺AB、BC、CAのいずれも、辺ab、bc、caのいずれとも交差していない。
【0039】
パターンP121は、2つの三角形が接しているが、いずれの頂点も他方の三角形に内包されないパターンを示している。具体的には、パターンP121において、頂点A、B、Cのいずれも三角形abcの外に位置する。また、頂点a、b、cのいずれも三角形ABCの外に位置する。一方、パターンP121では、2つの三角形の辺と辺とが交差している。例えば、辺ABと、辺abとが交差しているこのように、2つの三角形が互いに接しているが、いずれの頂点も他方の三角形に内包されない場合、2つの三角形の辺と辺との交差を検出することで、2つの三角形が互いに接すると判定することが考えられる。
【0040】
パターンP131は、2つの三角形が接しているが、いずれの辺も他方の三角形の辺と交差しないパターンを示している。具体的には、パターンP131において、2つの三角形のいずれの辺も、他方の三角形の辺と交差していない。具体的には、辺AB、BC、CAのいずれも、辺ab、bc、caのいずれとも交差していない。一方、パターンP131では、一方の三角形の頂点が他方の三角形に内包されている。具体的には、頂点a、b、cのいずれも、三角形ABCに内包されている。このように、2つの三角形が接しているが、いずれの辺も他方の三角形の辺と交差しない場合、他方の三角形に内包される頂点を検出することで、2つの三角形が互いに接すると判定することが考えられる。
【0041】
パターンP141は、一方の三角形の1つの頂点(頂点B)が他方の三角形に内包されるパターンを示している。パターンP142は、一方の三角形の2つの頂点(頂点bおよびc)が他方の三角形に内包されるパターンを示している。パターンP143は、2つの三角形が互いに他方の頂点を内包するパターンを示している。具体的には、三角形ABCは、頂点bおよびcを内包し、三角形abcは、頂点Bを内包している。
【0042】
パターンP144は、2つの三角形が一致しているパターンを示している。パターンP145は、2つの三角形の2つの頂点がそれぞれ一致し、他の1つの頂点の一方が、他方の三角形に内包されるパターンを示している。パターンP146は、2つの三角形の2つの頂点がそれぞれ一致し、他の1つの頂点は、いずれも他方の三角形に内包されていないパターンを示す。
【0043】
パターンP141~P146では、いずれも、2つの三角形が互いに接触している。また、パターンP141~P146では、いずれも、他方の三角形に内包されている頂点があり、かつ、他方の三角形の辺と交差する辺がある。以上のように、2つの三角形の辺と辺との交差の検出、および、他方の三角形に内包される頂点の検出の両方を行い、いずれか一方でも検出に成功した場合は、2つの三角形が互いに接触していると判定できる。
【0044】
接触面検出部124は、内包判定部125にて、他方の三角形に内包される頂点の有無の判定を行う。また、接触面検出部124は、交差判定部127にて、2つの三角形の辺と辺との交差の有無の判定を行う。そして、接触面検出部124は、内包判定部125の判定結果と、交差判定部127の判定結果とに応じて、第1多面体を形成する面のうち第2多面体を形成する面に接する面を検出する。
【0045】
上記のように、内包判定部125は、他方の三角形に内包される頂点の有無の判定を行う。この判定により、内包判定部125は、第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、第2面を形成する第2多角形に内包されているか否かを判定する。内包判定部125において、面積比較部126は、点が凸多角形に内包されるか否かの判定を、点と凸多角形の頂点とを結んで得られる三角形の面積の合計と、凸多角形の面積との比較にて行う。より具体的には、面積比較部126は、点と、凸多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される各三角形の面積を算出する。そして、面積比較部126は、各三角形の面積の合計を算出する。すなわち、面積比較部126は、凸多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについて、上記の三角形の面積の合計を算出する。さらに、面積比較部126は、算出した面積の合計と、凸多角形の面積との比較にて、点が凸多角形に内包されるか否かを判定する。
【0046】
図7は、面積比較部126が面積の合計を算出する三角形の例を示す説明図である。同図において、点a、三角形ABCは、それぞれ、面積比較部126が取得する点、凸多角形の一例に該当する。例えば、面積比較部126は、第1多角形の1つの頂点と、分割部122が第2多角形を分割して得られた三角形とを取得する。
【0047】
図8の例において、面積比較部126は、まず、三角形aABの面積と、aBCの面積と、aCAの面積とを算出する。面積比較部126が三角形の面積を算出する手法として、ベクトルの外積から三角形の面積を算出する手法など公知の手法を用いることができる。例えば、面積比較部126は、ベクトルaAとベクトルaBとの外積から三角形aABの面積を算出する。
【0048】
次に、面積比較部126は、三角形aAB、aBC、aCAの面積の合計を算出する。また、面積比較部126は、三角形ABCの面積を算出する。そして、面積比較部126は、三角形aAB、aBC、aCAの面積の合計と、三角形ABCの面積とを比較する。
【0049】
図8の例では、点aは三角形ABCに内包されている。この場合、線分aA、aBおよびaCによって、三角形ABCが三角形aAB、aBCおよびaCAに分割されている。従って、三角形aAB、aBC、aCAの面積の合計と、三角形ABCの面積とが等しくなっている。このように、点が三角形に内包されている場合、点と、三角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される各三角形の面積と、三角形の面積とが等しくなる。そこで、面積比較部126は、三角形の面積の合計と凸多角形の面積とが等しいと判定した場合、点が多角形に内包されていると判定する。
【0050】
なお、面積比較部126がベクトルの外積から三角形の面積を算出する際、平方根演算における丸め誤差などの誤差が生じることが考えられる。かかる誤差に対応するため、面積比較部126が、三角形の面積の合計と凸多角形の面積との比較において、完全一致に限らず、差の大きさが充分小さいと評価し得る場合にも等しいと判定するようにしてもよい。例えば、三角形の面積の合計と凸多角形の面積との差の大きさを凸多角形の面積で除算した値が所定の閾値以下である場合に、面積比較部126が、三角形の面積の合計と凸多角形の面積とが等しいと判定するようにしてもよい。
【0051】
図9は、面積比較部126が面積の合計を算出する三角形の、もう1つの例を示す説明図である。
図8の場合と同様、点a、三角形ABCは、それぞれ、面積比較部126が取得する点、凸多角形の一例に該当する。
図8の場合と同様、面積比較部126は、三角形aAB、aBC、aCAの面積との合計と、三角形ABCの面積とを比較する。
【0052】
図9の例では、点aは三角形ABCに内包されていない。そして、三角形aABは、三角形ABCと重なっていない。また、三角形aBC、aCAは、いずれも一部が三角形ABCと重なっていない。このため、三角形aAB、aBC、aCAの面積の合計が、三角形ABCの面積よりも大きくなっている。このように、点が三角形に内包されていない場合、点と、三角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される各三角形の面積が、三角形の面積よりも大きくなる。そこで、面積比較部126は、三角形の面積の合計と凸多角形の面積とが異なると判定した場合、点が多角形に内包されていないと判定する。
【0053】
内包判定部125は、第1多角形の頂点のうち少なくとも1つの頂点と、第2多角形または当該第2多角形を分割して得られる凸多角形を面積比較部126に適用して、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かを判定する。具体的には、内包判定部125は、第1多角形の頂点のうち少なくとも1つの頂点と、分割部122の分割にて得られる三角形のうち少なくとも1つの三角形とを面積比較部126に適用して、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かを判定する。
【0054】
ただし、面積比較部126は、三角形に限らず凸多角形に点が内包されるか否かの判定を行うことができる。従って、内包判定部125が、分割部122の分割にて得られた三角形に限らず凸多角形を面積比較部126に適用するようにしてもよい。例えば、座標データ取得部121がデータを取得する多面体の面が全て凸多角形である場合、内包判定部125が、当該多面体の面を面積比較部126に適用するようにしてもよい。この場合、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かの判定に関して、分割部122は多角形の分割を行う必要がない。
【0055】
交差判定部127は、第1多角形の辺と第2多角形の辺とが交差するか否かを判定する。交差判定部127が線分と線分との交差の有無を判定する手法として、例えばベクトルの外積を用いる手法など公知の手法を用いることができる。
図10は、交差する2つの辺の例を示す説明図である。同図において、線分abは第1多角形の辺の一例に該当し、線分ABは第2多角形の辺の一例に該当する。
【0056】
図10の例では、線分ABから見て点aと点bとが反対側に位置している。このため、(ベクトルAB)×(ベクトルAa)にて得られる法線ベクトルと、(ベクトルAB)×(ベクトルAb)にて得られる法線ベクトルとは逆向きになる。但し「×」はベクトルの外積を示す。同様に、(ベクトルab)×(ベクトルaA)にて得られる法線ベクトルと、(ベクトルab)×(ベクトルaB)にて得られる法線ベクトルとは逆向きになる。このように、いずれの辺を基準にしても法線ベクトルが逆向きになる場合、2つの辺が交差していると判定することができる。
【0057】
図11は、交差しない2つの辺の例を示す説明図である。
図10の場合と同様、線分abは第1多角形の辺の一例に該当し、線分ABは第2多角形の辺の一例に該当する。
図10の場合と同様、
図11においても、線分ABから見て点aと点bとが反対側に位置している。このため、(ベクトルAB)×(ベクトルAa)にて得られる法線ベクトルと、(ベクトルAB)×(ベクトルAb)にて得られる法線ベクトルとは逆向きになる。一方、線分abから見て点Aと点Bとは同じ側に位置している。このため、(ベクトルab)×(ベクトルaA)にて得られる法線ベクトルと、(ベクトルab)×(ベクトルaB)にて得られる法線ベクトルとは同じ向きになる。このように、一方の辺を基準にすると法線ベクトルが逆向きになるが、他方の辺を基準にすると法線ベクトルの向きが同じである場合、2つの辺は交差していないと判定することができる。
【0058】
図12は、交差しない2つの辺の、もう1つの例を示す説明図である。
図10の場合と同様、線分abは第1多角形の辺の一例に該当し、線分ABは第2多角形の辺の一例に該当する。
図12の例では、線分ABから見て点aと点bとは同じ側に位置している。このため、(ベクトルAB)×(ベクトルAa)にて得られる法線ベクトルと、(ベクトルAB)×(ベクトルAb)にて得られる法線ベクトルとは同じ向きになる。同様に、(ベクトルab)×(ベクトルaA)にて得られる法線ベクトルと、(ベクトルab)×(ベクトルaB)にて得られる法線ベクトルとも同じ向きになる。このように、いずれの辺を基準にしても法線ベクトルの向きが同じである場合、2つの辺は交差していないと判定することができる。
【0059】
以上より、交差判定部127は、いずれの辺を基準にしても法線ベクトルが逆向きになる場合は、2つの辺が交差していると判定し、いずれか一方でも法線ベクトルの向きが同じである場合は、2つの辺が交差していないと判定する。
【0060】
図2に戻り、交点座標算出部128は、交差判定部127により交差していると判定した場合に、その交点の座標を算出する機能部である。具体的に、交点座標算出部128は、後述する属性処理において、分割した三角形の辺の交点の座標を算出する機能を有する。
【0061】
面処理部129は、一の部材と他の部材とが接触している場合に、それらの部材のうち接触部分と非接触部分とを属性情報として特定する機能部である。具体的に、面処理部129は、後述する属性処理において接触部分非接触部分特定処理を実行する。
【0062】
結果出力部129Aは、接触面検出部124の判定結果を出力する。具体的には、結果出力部129Aは、例えば液晶パネル等の表示画面を有し、接触面検出部124の判定結果を表示する。
図13は、結果出力部129Aによる接触面検出部124の判定結果の表示例を示す説明図である。同図において、接触面検出部124の判定結果を表形式で表示している。行、列のいずれも多面体の面の1つに対応しており、行と列の交差する欄の記載にて、対応する2つの面の接触の有無を示している。
【0063】
異常判定部129Bは、BIMデータ200に記憶された属性情報などに基づいて、建築物についての様々な異常判定を行う機能部である。具体的に、異常判定部129Bは、後述する異常判定処理を実行する。
【0064】
例えば、立体Iの面ABCDの行において、結果出力部129Aは、同じ立体Iの各面については、ハッチングにて接触の有無の判定対象外であることを示している。また、面ABCDと面abcdとが接触しており、結果出力部129Aは、面ABCDの行において面abcdの列と交差する欄に「abcd」と表示することで、接触有りを示している。一方、面ABCDと他の面とは接触しておらず、結果出力部129Aは、面ABCDの行において他の面の列と交差する欄を空欄とすることで、接触無しを示している。
【0065】
入出力部130は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機EL(Electoro-Luminescence)ディスプレイ等から構成され、各種データの入出力を行うための装置である。
【0066】
通信部140は、接触面検出装置100が、ネットワーク210を介して、BIMデータ200などといった他の情報端末と通信を行うためのデバイスである。
【0067】
次に、
図14~
図17を参照して、接触面検出装置100の動作について説明する。
図14は、接触面検出装置10が多面体の接触面を検出する処理手順の例を示す説明図である。同図の処理において、まず、座標データ取得部121が、接触面検出対象としての複数の多面体の頂点の座標データを取得する(ステップS101)。次に、分割部122は、座標データ取得部121がデータを取得した複数の多面体の面を形成する多角形の各々を三角形に分割する(ステップS102)。また、面選択部123は、座標データ取得部121がデータを取得した複数の多面体の面のうち同一平面に含まれる面を検出する(ステップS103)。
【0068】
図15は、面選択部123が同一平面に含まれる面を検出する処理手順の例を示すフローチャートである。面選択部123は、
図14のステップS103において
図15の処理を行う。
図15の処理において、面選択部123は、まず、座標データ取得部121がデータを取得した複数の多面体の各面について処理を行うループL21を開始する(ステップS201)。そして、面選択部123は、ループL21において処理対象となっている面に含まれる2つのベクトルを算出する(ステップS202)。例えば、面選択部123は、ループL21において処理対象となっている面を分割部122が分割して得られた三角形の1つについて、2つの辺に相当するベクトルを、それぞれ算出する。
【0069】
次に、面選択部123は、ステップS202で得られた2つのベクトルの外積を算出する(ステップS203)。この外積は、2つのベクトルを含む平面の法線ベクトルを示している。そして、面選択部123は、ステップS203で算出した外積に基づいて、平面の方程式の係数を算出する(ステップS204)。具体的には、面選択部123は、ステップS203で算出した外積を当該外積の大きさで除算して、単位法線ベクトルを算出する。そして、面選択部123は、得られた単位法線ベクトルの座標値を、平面の方程式の傾きを示す係数とする。さらに、面選択部123は、方程式を求める対象となっている平面に含まれる点の座標値に対して方程式が成立するように、切片の係数を設定する。
【0070】
例えば、単位法線ベクトルの座標値が(vx,vy,vz)である場合、面選択部123は、式(1)に示される平面の方程式の係数を、a:=vx、b:=vy,c:=vzに設定する。
【0071】
【0072】
但し、ここでの「・」はスカラー積を示す。さらに、点(Px,Py,Pz)が当該平面に含まれる場合、面選択部123は、平面の方程式の係数を、d:=-(a・Px+b・Py+c・Pz)に設定する。
【0073】
ステップS204の後、面選択部123は、座標データ取得部121がデータを取得した複数の多面体の全ての面についてループL21の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS205)。未だループL21の処理を行っていない面が存在すると判定した場合、ステップS201へ戻り、未処理の面に対して引き続きループL21の処理を行う。一方、全ての面に対してループL21の処理を行ったと判定した場合、ループL21を終了する。
【0074】
ループL21を終了すると、面選択部123は、座標データ取得部121がデータを取得した複数の多面体のうち2つの多面体に含まれる各1つの面の組み合わせについて処理を行うループL22を開始する(ステップS211)。そして、面選択部123は、ループL22にて処理対象となっている面の組み合わせについて、係数の絶対値(|a|、|b|、|c|および|d|)がいずれも等しいか否かを判定する(ステップS212)。
【0075】
係数の絶対値がいずれも等しいと判定した場合(ステップS212:YES)、面選択部123は、さらに係数(a、b、c、およびd)の正負がいずれも同じまたはいずれも逆であるか否かを判定する(ステップS213)。なお、係数の値が共にゼロの場合は、係数の正負がいずれも同じ、いずれも逆のどちらも成立しているものとして扱う。係数の正負がいずれも同じまたはいずれも逆であると判定した場合(ステップS213:YES)、面選択部123は、ループL22にて処理対象となっている2つの面が同一平面に含まれると判定する(ステップS221)。
【0076】
次に、面選択部123は、座標データ取得部121がデータを取得した複数の多面体のうち2つの多面体に含まれる各1つの面の全ての組み合わせについてループL22の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS241)。未だループL22の処理を行っていない組み合わせが存在すると判定した場合、ステップS211へ戻り、未処理の組み合わせに対して引き続きループL22の処理を行う。一方、全ての組み合わせに対してループL22の処理を行ったと判定した場合、ループL22を終了する。ループL22を終了すると、面選択部123は、
図14の処理を終了する。
【0077】
一方、ステップS212において、絶対値の等しくない係数があると判定した場合(ステップS212:NO)、面選択部123は、ループL22にて処理対象となっている2つの面が同一平面に含まれないと判定する(ステップS231)。その後、ステップS241へ進む。また、ステップS213において、正負がいずれも同じまたはいずれも逆にはなっていないと判定した場合(ステップS213:NO)、ステップS231へ進む。
【0078】
なお、面選択部123が外積の大きさを算出する際の平方根演算における丸め誤差などの誤差が生じることが考えられる。かかる誤差に対応するため、面選択部123が、ステップS212における係数の絶対値の比較において、完全一致に限らず、差の大きさが充分小さいと評価し得る場合にも等しいと判定するようにしてもよい。例えば、係数の絶対値の差の大きさが所定の閾値以下である場合に、面選択部123が、係数の絶対値が等しいと判定するようにしてもよい。
【0079】
また、面選択部123は、判定対象となっている面の各々に含まれる3つの点の座標値を得られれば
図15の処理を行うことができる。従って、
図14の処理において、ステップS102よりもステップS103を先に実行するようにしてもよいし、ステップS102とステップS103とを並列して実行するようにしてもよい。
【0080】
図14の処理に戻って、ステップS103の後、内包判定部125は、ステップS103において面選択部123が選択した2つの面の組み合わせ(同一平面に含まれると判定した2つの面の組み合わせ)の各々について、内包関係の有無を判定する(ステップS104)。具体的には、内包判定部125は、ステップS103において面選択部123が選択した2つの面の組み合わせの各々について、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されるか否かを判定する。
【0081】
図16は、内包判定部125が、2つの面の組み合わせについて、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されるか否かを判定する処理手順の例を示すフローチャートである。内包判定部125は、
図14のステップS104において、面選択部123が選択した2つの面の組み合わせの各々について
図16の処理を行う。
【0082】
図16の処理において、内包判定部125は、まず、分割部122の分割にて得られた三角形を、2つの面について1つずつ選択する組み合わせ毎に処理を行うループL31を開始する(ステップS301)。さらに、内包判定部125は、ステップS301で選択した2つの三角形の各々について当該三角形と他方の三角形の頂点毎に処理を行うループL32を開始する(ステップS302)。
【0083】
そして、内包判定部125は、ループL32で処理対象となっている三角形と頂点とを面積比較部126に適用し、面積比較部126は、当該三角形の面積を算出する(ステップS303)。次に、面積比較部126は、
図8および
図9を参照して説明したのと同様に、ループL32で処理対象となっている頂点と、三角形の頂点のうち隣り合う頂点とで形成される各三角形の面積を算出し、面積の合計を算出する(ステップS304)。
【0084】
そして、面積比較部126は、ステップS304で得られた面積の合計と、ステップS303で得られた面積(元の三角形の面積)とが等しいか否かを判定する(ステップS305)。面積の合計が元の三角形の面積に等しいと判定した場合(ステップS305:YES)、面積比較部126は、ループL32で処理対象となっている頂点が、ループL32で処理対象となっている三角形に内包されていると判定する(ステップS311)。
【0085】
次に、内包判定部125は、ステップS301で選択した2つの三角形のいずれについても、当該三角形と他方の三角形の頂点との全ての組み合わせについてループL32の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS331)。未だループL32の処理を行っていない組み合わせが存在すると判定した場合、ステップS302へ戻り、未処理の組み合わせに対して引き続きループL32の処理を行う。一方、全ての組み合わせに対してループL32の処理を行ったと判定した場合、ループL32を終了する。
【0086】
ループL32を終了すると、内包判定部125は、分割部122の分割にて得られた三角形を、2つの面について1つずつ選択する全ての組み合わせについてループL31の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS332)。未だループL31の処理を行っていない組み合わせが存在すると判定した場合、ステップS301へ戻り、未処理の組み合わせに対して引き続きループL31の処理を行う。一方、全ての組み合わせに対してループL31の処理を行ったと判定した場合、ループL31を終了する。
【0087】
ループL31を終了すると、内包判定部125は、面と面との内包関係を判定する(ステップS333)。ループL32の処理における三角形と頂点との組み合わせのいずれか1つでも、内包されていると判定(ステップS311)した場合は、内包関係有りと判定する。すなわち、内包判定部125は、判定対象となっている2つの面の組み合わせについて、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されていると判定する。
【0088】
一方、ループL32の処理における三角形と頂点との組み合わせの全てについて、内包されていないと判定(ステップS321)した場合は、内包関係無しと判定する。すなわち、内包判定部125は、判定対象となっている2つの面の組み合わせについて、いずれの面を形成する多角形の頂点も、他方の面を形成する多面体に内包されていないと判定する。ステップS333の後、
図16の処理を終了する。
【0089】
一方、ステップS305において、面積の合計と元の三角形の面積とが異なると判定した場合(ステップS305:NO)、面積比較部126は、ループL32で処理対象となっている頂点が、ループL32で処理対象となっている三角形に内包されていないと判定する(ステップS321)。その後、ステップS331へ進む。
【0090】
図14の処理に戻って、ステップS104の後、交差判定部127は、ステップS103において面選択部123が選択した2つの面の組み合わせの各々について、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する(ステップS105)。
【0091】
図17は、交差判定部127が、2つの面の組み合わせについて、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する処理手順の例を示すフローチャートである。交差判定部127は、
図14のステップS105において、面選択部123が選択した2つの面の組み合わせの各々について
図17の処理を行う。
【0092】
図17の処理において、交差判定部127は、まず、分割部122の分割にて得られた三角形を、2つの面について1つずつ選択する組み合わせ毎に処理を行うループL41を開始する(ステップS401)。さらに、交差判定部127は、ステップS401で選択した2つの三角形の各々から1つずつ辺を選択する組み合わせ毎に処理を行うループL42を開始する(ステップS402)。
【0093】
次に、交差判定部127は、ループL42で処理対象となっている2つの辺の一方を基準として、
図10~12を参照して説明したのと同様に、2つの法線ベクトルを算出する(ステップS403)。そして、交差判定部127は、ステップS403で得られた2つの法線ベクトルの向きが逆か否かを判定する(ステップS404)。
【0094】
法線ベクトルの向きが逆であると判定した場合(ステップS404:YES)、交差判定部127は、さらに、ステップS403の場合と異なる方の辺を基準として、
図10~12を参照して説明したのと同様に、2つの法線ベクトルを算出する(ステップS411)。そして、交差判定部127は、ステップS411で得られた2つの法線ベクトルの向きが逆か否かを判定する(ステップS412)。法線ベクトルの向きが逆であると判定した場合(ステップS412:YES)、交差判定部127は、2つの辺が交差していると判定する(ステップS421)。
【0095】
次に、交差判定部127は、ステップS401で選択した2つの三角形の各々から1つずつ辺を選択する全ての組み合わせについてループL42の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS441)。未だループL42の処理を行っていない組み合わせが存在すると判定した場合、ステップS402へ戻り、未処理の組み合わせに対して引き続きループL42の処理を行う。一方、全ての組み合わせに対してループL42の処理を行ったと判定した場合、ループL42を終了する。
【0096】
ループL42を終了すると、交差判定部127は、分割部122の分割にて得られた三角形を、2つの面について1つずつ選択する全ての組み合わせについてループL41の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS442)。未だループL41の処理を行っていない組み合わせが存在すると判定した場合、ステップS401へ戻り、未処理の組み合わせに対して引き続きループL41の処理を行う。一方、全ての組み合わせに対してループL41の処理を行ったと判定した場合、ループL41を終了する。
【0097】
ループL41を終了すると、交差判定部127は、判定対象となっている2つの面の組み合わせについて、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する(ステップS443)。ループL42の処理における辺と辺との組み合わせのいずれか1つでも、交差していると判定(ステップS421)した場合は、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺とで、交差しているものがあると判定する。一方、ループL42の処理における辺と辺との組み合わせの全てについて、交差していないと判定(ステップS431)した場合は、いずれの辺も交差していないと判定する。ステップS443の後、
図17の処理を終了する。
【0098】
一方、ステップS404において、法線ベクトルの向きが同じであると判定した場合(ステップS404:NO)、交差判定部127は、2つの辺が交差していないと判定する(ステップS431)。その後、ステップS441へ進む。一方、ステップS412において、法線ベクトルの向きが同じであると判定した場合(ステップS412:NO)、ステップS431へ進む。
【0099】
なお、ステップS401において、内包判定部125が内包関係有りと判定済みの面の組み合わせを、交差判定部127が処理対象から除外するようにしてもよい。また、
図14の処理において、ステップS104とステップS105とを並列して実行するようにしてもよいし、ステップS105を実行した後、ステップS104を実行するようにしてもよい。ステップS105を実行した後、ステップS104を実行する場合、
図16のステップS301において、交差判定部127が辺の交差ありと判定済みの面の組み合わせを、内包判定部125が処理対象から除外するようにしてもよい。
【0100】
図14の処理に戻って、ステップS105の後、接触面検出部124は、互いに接触している2つの面の組み合わせを抽出する(ステップS106)。具体的には、接触面検出部124は、面選択部123が検出した、同一平面に含まれる2つの面の組み合わせのうち、内包関係ありまたは辺の交差ありのいずれか一方にでも該当する組み合わせを、互いに接触している組み合わせとして抽出する。一方、接触面検出部124は、内包関係無し、かつ、辺の交差無しとされた組み合わせについては、互いに接触していないと判定する。
【0101】
次に、結果出力部129Aは、接触面検出部124がステップS106で抽出した組み合わせを、接触面検出装置100の判定結果として出力する(ステップS107)。例えば、結果出力部129Aは、
図13を参照して説明したように、面と面との接触の有無を表示する。その後、
図14の処理を終了する。
【0102】
以上のように、内包判定部125は、第1多面体の第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、第2多面体の第2面を形成する第2多角形に内包されているか否かを判定する。そして、接触面検出部124は、内包判定部125の判定結果に応じて、第1多面体を形成する面のうち第2多面体を形成する面に接する面を検出する。これにより、接触面検出部124は、辺と辺との交差を生じない接触関係を、内包関係に基づいて検出することができる。この点において、接触面検出装置100は、面同士の接触関係の判定をより適切に行うことができる。
【0103】
また、面積比較部126は、点が凸多角形に内包されるか否かの判定を、当該点と、当該凸多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、当該凸多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、当該凸多角形の面積との比較にて行う。これにより、面積比較部126は、三角形の面積を算出することで、点が凸多角形に内包されるか否かの判定を行うことができる。三角形の面積は、例えばベクトルの外積から算出するなど簡単な計算にて算出することができる。従って、面積比較部126は、点が凸多角形に内包されるか否かの判定を、簡単な計算にて行うことができる。
【0104】
また、分割部122は、第2多角形を、当該第2多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する。そして、内包判定部125は、第1多角形の頂点のうち少なくとも1つの頂点と、分割部122の分割にて得られる三角形のうち少なくとも1つの三角形とを面積比較部126に適用して、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かを判定する。これにより、面積比較部126は、凸多角形の面積の計算についても、三角形の面積を算出すればよい。従って、面積比較部126は、点が凸多角形に内包されるか否かの判定を、簡単な計算にて行うことができる。
【0105】
また、交差判定部127は、第1多角形の辺と第2多角形の辺とが交差するか否かを判定する。そして、接触面検出部124は、内包判定部125の判定結果と交差判定部127の判定結果とに応じて、第1多面体を形成する面のうち第2多面体を形成する面に接する面を検出する。これにより、接触面検出部124は、辺と辺との交差を生じない接触関係と、面を形成す多角形と他方の面を形成する多角形の頂点との内包関係を生じない接触関係とのいずれも検出することができ、面と面との接触関係を漏れなく検出することができる。
【0106】
次に、接触面検出装置100が、接触している部材におけるそれぞれの接触面のうち、接触部分とそうでない部分の情報を、属性情報としてBIMデータ200に出力する場合の処理、すなわち属性処理について説明する。具体的に、
図18に示すように、直方体である部材Pと直方体である部材Qとが、部分Sにて接している場合を例に、以下説明する。より具体的には、
図19に示すように、部材Pにおける面ABCDと部材Qにおける面abcdとが、部分Sについて接しているものとして、以下説明する。
【0107】
図20は、属性処理の一例を示すフローチャートである。属性処理は、
図14に示す多面体の接触面を検出する処理が終了すると実行が開始される。なお、ユーザによる入出力部130への操作により開始されてもよい。
【0108】
図20に示す属性処理を開始すると、制御部120は、まず、分割部122の機能により、
図14のステップS102の処理と同様にして、
図21に示すように、部材Pにおける平面ABCDと部材Qにおける平面abcdとを、三角形ABCと三角形ACD、三角形abdと三角形cdbに分割する(ステップS501)。
【0109】
ステップS201の処理を実行した後、制御部120は、交点座標算出部128の機能により、三角形同士の交点座標を算出する(ステップS502)。具体的に、ステップS202の処理において、交点座標算出部128は、
図22に示すように、三角形ABCと三角形abdのそれぞれの辺における交点の座標(図示する交点E、交点F、交点G、交点H)を算出する。また、ステップS202の処理において、交点座標算出部128は、
図23に示すように、三角形ABCと三角形cdbのそれぞれの辺における交点の座標(図示する交点E、交点H、交点I、交点J)を算出する。例えば辺ABと辺bdの交点Eの座標を算出する場合(辺AB上の点をP、辺bd上の点をQとする)、媒介変数sおよびtを用いて、以下の式(2)について、成分毎のsおよびtを算出することにより、算出すればよい。なお、算出された交点座標は、交点座標データ113として記憶部110へ記憶される。また、ステップS502の処理を実行する交点座標算出部128は、交点検出部に対応する。
【0110】
【0111】
ステップS202の処理を実行した後、制御部120は、全ての三角形の組み合わせについて交点座標を算出したか否かを判定する(ステップS503)。この例では、三角形ABC、三角形ACD、三角形abd、および三角形cdbの全ての組み合わせについて交点座標を算出したか否かを判定する。全ての三角形の組み合わせについて交点座標を算出していないと判定した場合(ステップS503;No)、ステップS502の処理に戻り、交点を算出していない三角形の組み合わせについて、交点座標を算出する。例えば、ステップS502の処理において三角形ACDと他の三角形の交点座標を算出していない場合、再度ステップS502の処理を実行することにより、三角形ACDと他の三角形の交点座標を算出すればよい。具体的に、三角形ACDと三角形abdの交点として、
図24に示す交点M、および交点Lの座標を新たに算出し(交点Gおよび交点Hは既に算出済みのため省略)、三角形ACDと三角形cdbの交点として、
図24に示す交点Kの座標を新たに算出する(交点L、交点H、交点Iは既に算出済みのため省略)。
【0112】
図20に戻り、ステップS503の処理において全ての三角形の組み合わせについて交点座標を算出したと判定した場合(ステップS503;Yes)、
図24に示すように、各交点座標が算出されている状態となり、制御部120は、面処理部129の機能により、接触部分非接触部分特定処理を実行する(ステップS504)。なお、ステップS504の処理を実行する面処理部129およびステップS504は、接触部分特定部および接触部分特定ステップに対応する。
【0113】
図25は、
図20のステップS504の処理にて実行される接触部分非接触部分特定処理の一例を示すフローチャートである。接触部分非接触部分特定処理を開始すると、制御部120は、面処理部129の機能により、三角形の辺を線分に分割する(ステップS601)。具体的に、ステップS601の処理では、三角形の一方の頂点から他方の頂点に向けた、頂点と交点、交点と交点とを結ぶ最短の線分(すなわち単位辺)に分割する。例えば、
図26に示す三角形ABCにおける辺ABでは、線分AJ、JE、EF、FBの各線分に分割する。なお、線分AEは、頂点と交点、交点と交点とを結ぶ最短の線分ではないため除外される。
【0114】
ステップS601の処理を実行した後、制御部120は、面処理部129の機能により、ステップS601の処理で分割した線分を分類する(ステップS602)。具体的に、ステップS602の処理では、部材Pの面を構成する三角形に含まれる線分のうち、部材Qの面を構成する2つの三角形により切り取られる線分(消線)と切り取られない線分(残線)など、予め交点の数によって定められた条件に基づいて分類する。例えば、
図26に示す三角形ABCにおける辺ABに含まれる線分AJ、JE、EF、FBのうち、線分AJは、三角形abdと三角形cdbにより切り取られなかった線分(残線)として分類し、線分JEは、三角形cdbにより切り取られる線分(消線)、線分EFは、三角形abdにより切り取られる線分(消線)、線分FBは、三角形abdと三角形cdbにより切り取られなかった線分(残線)として分類する。なお、予め交点の数によって定められた条件については、例えば、交点が2つの場合、頂点と最も近い交点を結ぶ線分を残線とし、交点同士を結ぶ線分を消線とするといった条件であり、交点がなく、例えば三角形ABCが三角形abdに内包されている場合は、三角形ABCを構成する全ての辺を消線である、といったように、交点との関係により予め設定されている。
【0115】
ステップS602の処理を実行した後、制御部120は、面処理部129の機能により、ステップS601の処理で分割した全ての線分についてステップS602の処理を実行したか否かを判定する(ステップS603)。全ての線分についてステップS602の処理を実行していないと判定した場合(ステップS603;No)、制御部120は、ステップS602の処理に戻り、実行していない線分について処理を行う。
【0116】
一方、全ての線分についてステップS602の処理を実行したと判定した場合(ステップS603;Yes)、制御部120は、面処理部129の機能により、接触部分の線分を特定する(ステップS604)。具体的に、ステップS604の処理では、ステップS602の処理で消線として分類した線分のうち、同一部材を構成する三角形同士で共通する線分を排除したものを、接触部分の線分として特定する。例えば、
図26に示す例では、部材Pの側では、三角形ABCにおける線分JE、線分EF、線分GH、および線分HIが、ステップS602の処理にて消線として特定されるとともに、三角形ACDにおける線分GH、線分HI、線分ML、および線分LKが、ステップS602の処理にて消線として特定される。ステップS604の処理では、これらのうちの共通する線分すなわち線分GHおよび線分HIを排除し、残った線分を、接触部分の線分として特定する。なお、部材Qを構成する三角形abdと三角形cdbにおいて共通する線分EHおよび線分HLについても同様に排除されることなる。すなわち、
図26に示す例では、
図20のステップS604の処理において、線分JE、線分EF、線分ML、線分LK、線分FG、線分GM、線分KIおよび線分IJが、接触部分の線分として特定されることとなる。
【0117】
図20のステップS604の処理を実行した後、制御部120は、面処理部129の機能により、非接触部分の線分を特定する(ステップS605)。具体的に、ステップS605の処理では、ステップS602の処理で残線として分類した線分のうち、同一部材を構成する三角形同士で共通する線分を排除したものを、非接触部分の線分として特定する。例えば、
図26に示す例では、部材Pの側では、三角形ABCにおける線分AJ、線分FB、線分BC、線分CGおよび線分LAが、ステップS602の処理にて残線として特定されるとともに、三角形ACDにおける線分CG、線分LA、線分AD、線分DKおよび線分MCが、ステップS602の処理にて残線として特定される。ステップS605の処理では、これらのうちの共通する線分すなわち線分LAおよび線分CGを排除し、残った線分を、非接触部分の線分として特定する。なお、部材Qを構成する三角形abdと三角形cdbにおいて共通する線分Edおよび線分dLについても同様に排除されることなる。すなわち、
図26に示す例では、
図20のステップS605の処理において、線分AJ、線分FB、線分BC、線分MC、線分AD、線分DK、線分Jd、線分da、線分aF、線分Mb、線分bcおよび線分cKが、接触部分の線分として特定されることとなる。また、ステップS605の処理では、ステップS604の処理で特定した接触部分を構成するそれぞれの線分についても、非接触部分の線分として特定する。すなわち、ステップS605の処理では、線分AJ、線分FB、線分BC、線分MC、線分AD、線分DK、線分Jd、線分da、線分aF、線分Mb、線分bc、線分cK、線分JE、線分EF、線分ML、線分LK、線分FG、線分GM、線分KIおよび線分IJが、非接触部分の線分として特定されることとなる。
【0118】
図20のステップS605の処理を実行した後、制御部120は、面処理部129の機能により、ステップS604およびステップ605で特定した線分同士をつなぎ合わせ、接触部分と非接触部分とを示す属性情報を特定し(ステップS606)、接触部分非接触部分特定処理を終了する。具体的に、ステップS606の処理では、ステップS604の処理にて接触部分の線分であると特定した各線分について、それぞれしりとりの形式になるよう予め設定された条件に従ってそれぞれの線分をつなぎ合わせ、接触部分の領域を属性情報として特定する。しりとりの形式は、各線分の端点についてそれぞれ符合化し、同じ符号の端点同士をつなぎ合わせるという設定であればよく、例えば、
図26に示す例では、ステップS604の処理において線分JE、線分EF、線分ML、線分LK、線分FG、線分GM、線分KIおよび線分IJが接触部分の線分であると特定されていることから、ステップS606の処理では、これらをしりとりの形式で、線分JE、線分EF、線分FG、線分GM、線分ML、線分LK、線分KI、線分IJの順でつなぎ合わせ、多角形JEFGMLKIで囲まれた領域(
図27に示す部分S)を、接触部分として特定する。
【0119】
また、ステップS606の処理では、ステップS605の処理にて非接触部分の線分であると特定した各線分について、それぞれしりとりの形式になるよう予め設定された条件に従ってそれぞれの線分をつなぎ合わせ、非接触部分の領域を属性情報として特定する。例えば、
図26に示す例では、ステップS605の処理において線分AJ、線分FB、線分BC、線分MC、線分AD、線分DK、線分Jd、線分da、線分aF、線分Mb、線分bc、線分cK、線分JE、線分EF、線分ML、線分LK、線分FG、線分GM、線分KIおよび線分IJが、非接触部分の線分として特定されていることから、ステップS606の処理では、これらの線分のうち同一の部材を構成する線分をしりとりの形式で、かつ、接触部分とは異なるようにつなぎ合わせる。例えば、部材Pについては、線分AJ、線分JI、線分IK、線分KDおよび線分DAがつなぎ合わせられるとともに、線分FB、線分BC、線分CM、線分MGおよび線分GFがつなぎ合わせられる。一方、部材Qについては、線分Jd、線分da、線分aF、線分FEおよび線分EJがつなぎ合わせられるとともに、線分Mb、線分bc、線分cK、線分KLおよび線分LMがつなぎ合わせられることとなる。したがって、ステップS606の処理では、多角形AJIKD、多角形JdaFE、多角形FBCMG、および多角形MbcKLで囲まれた領域(
図27に示す部分L、部分Q、部分Nおよび部分O)を、非接触部分として特定する。なお、これら接触部分および非接触部分の領域情報やそれぞれの座標については、属性情報として記憶部110へ記憶される。
【0120】
図20に戻り、ステップS504の処理を実行した後、制御部120は、結果出力部129Aの機能により、ステップS606の処理にて特定した属性情報をBIMデータ200へ出力し(ステップS505)、属性処理を終了する。具体的に、ステップS505の処理において結果出力部129Aは、ステップS606の処理にて属性情報として特定した接触部分および非接触部分について、それぞれの頂点座標および接触部分であるか非接触部分であるかを示す接触部分情報を、BIMデータ200における対応部分に出力する。なお、接触部分および非接触部分それぞれの形状データについても出力されてよい。例えば、ステップS606の処理では、
図27に示す部材Pにおける部分Sが接触部分であり、部分L、部分Q、部分Nおよび部分Oが非接触部分であるとして、それぞれの頂点の座標情報とともに、BIMデータ200の部材Pに対応する情報として登録されればよい。また、部材Qにおいても同様に、接触部分と非接触部分を示す接触部分情報と、それぞれの頂点の座標情報とが、BIMデータ200における部材Qに対応する情報として登録されればよい。なお、BIMデータ200は、BIM情報に対応する。また、部材Pや部材Qといった情報には、建築物などの構造物を構成する部材の識別情報が含まれる。
【0121】
以上が属性処理における接触面検出装置100の動作である。このように、接している部材のうち、接触部分と非接触部分の情報をBIMデータ200に出力することにより、例えばどの部材のどの部分にいつ頃どんな劣化が生じるかなど、維持保全情報として使用することができるようになる。また、どの部材をセットで修繕する必要があるかといった接触部分を考慮した長期修繕計画を立案する際の長期修繕計画情報として用いることができる。すなわち、建築物における部材同士の接触関係の情報を好適に活用することで、異常判定などが容易に行うことができる。また、一の部材について他の部材と接触している部分とそうでない部分とをBIMシステム上で表示することができる。例えば、柱に接続する梁、壁、床等の部材について、その接触部分と非接触部分とを特定し、BIMシステム上に表示することができる。
【0122】
続いて接触面検出装置100における異常判定処理について、
図28~
図35を参照して説明する。
図28は、異常判定処理の一例を示すフローチャートである。異常判定処理は、接触面検出装置100における入出力部130への入力操作がユーザにより行われることで開始される。なお、異常判定処理の開始時において、複数の異常判定の種類のうち、いずれの異常判定を実行するのかについての情報が、ユーザにより指定されているものとする。
【0123】
異常判定処理を開始すると、制御部120は、異常判定部129Bの機能により、BIMデータ200を取得する(ステップS701)。具体的に、ステップS701の処理では、ユーザにより指定された建築物のうち、指定された範囲の部材に対応するBIMデータ200を、全BIMデータ200から取得する。なお、ユーザにより指定された建築物に対応する全てのBIMデータ200を取得してもよい。なお、ステップS701の処理を実行する異常判定部129Bは、BIM情報取得部に対応する。
【0124】
ステップS701の処理を実行した後、制御部120は、異常判定部129Bの機能により、異常判定の種類が勾配判定であるか否かを判定する(ステップS702)。具体的に、ステップS702の処理では、ユーザにより指定された異常判定の種類が勾配判定であるか否かを判定する。
【0125】
ユーザにより指定された異常判定の種類が勾配判定であると判定した場合(ステップS702;Yes)、制御部120は、異常判定部129Bの機能により、ステップS701の処理で取得したBIMデータ200により示される部材の面の方程式に基づいて、水平面とのなす角を算出する(ステップS703)。具体的に、ステップS703の処理において、異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、各部材の面の方程式に基づき、それぞれの部材が水平面となす角を算出する。算出された角については、例えば
図29に示す水平面となす角の項目に記憶される。
図29は、部材毎のBIMデータ200の一例を示しており、具体的に、ステップS701の処理で取得した屋根と配水管aといった部材のBIMデータ200の例を示している。水平面となす角の項目がステップS703の処理にて記憶され、判定に対応する項目が後述するステップS706の処理にて、これらの情報に対応付けて記憶されることとなる。なお、設定勾配に対応する項目については、予め設定されている。
【0126】
一方、ユーザにより指定された異常判定の種類が勾配判定でないと判定した場合(ステップS702;No)、制御部120は、異常判定部129Bの機能により、方角判定であるか否かを判定する(ステップS704)。具体的に、ステップS704の処理において、異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、各部材の面の方程式に基づき、それぞれの部材が北面となす角を算出する。算出された角については、例えば
図30に示す北面となす角の項目に記憶される。
図30は、部材毎のBIMデータ200の一例を示しており、具体的に、ステップS701の処理で取得した壁塗装面aと壁塗装面bといった部材のBIMデータ200の例を示している。北面となす角の項目がステップS704の処理にて記憶され、判定に対応する項目が後述するステップS706の処理にて、これらの情報に対応付けて記憶されることとなる。なお、図示する北面以外の影響に対応する項目については、予め設定されている。
【0127】
図28に示すステップS703またはステップS705の処理を実行した後、制御部120は、異常判定部129Bの機能により、エラー判定を行う(ステップS706)。具体的に、ステップS706の処理において、異常判定部129Bは、ステップS703の処理で算出した水平面となす角が、予め設定されている設定勾配を満たすか否かを判定し、満たす場合には正常と判定し、満たさない場合には異常と判定する。
図29に示す例では、いずれも異常と判定した例を示している。また、ステップS706の処理において、異常判定部129Bは、ステップS704の処理で算出した北面となす角について、北面以外の場合に、北面以外の影響があるか否かに応じて正常であるか異常であるかを判定する。
図30に示す例において、壁塗装面aは、北面とのなす角が○度であり北面以外の影響ありであることから、異常と判定し、壁塗装面bは、北面とのなす角が○度であるものの北面以外の影響なしであることから、正常と判定した例を示している。なお、○度は例えば90度であるなど、明らかに北面ではない場合を示している。
【0128】
図28のステップS706の処理を実行した後、制御部120は、異常判定部129Bの機能により、BIMデータ200として出力し(ステップS707)、異常判定処理を終了する。具体的に、ステップS707の処理において異常判定部129Bは、ステップS706の処理にて判定した結果を含むBIMデータ200を、ネットワーク210を介してBIMデータ200へ登録する。また、ステップS707の処理において異常判定部129Bは、ステップS706の処理にて判定した結果を含むBIMデータ200を、入出力部130へ表示する。例えば、ステップS707の処理では、
図29や
図30に示内容を表示する。以上により、部材の面の水平や傾斜、方位や方角など従来のBIMでは判定できなかった判定が可能となる。すなわち、水平面を持つ部位の位置が確認でき、部材によっては必要な水勾配の要否や有無を判定できる他、屋根面や外部床面、屋上排水溝、窓枠の上端などの勾配が確保されているか、配管類の勾配が適正に確保されているかなどを判定することができる。例えば、屋根の勾配が異常であると判定した場合には、
図36に示すように、屋根に該当する部材部分(図示する車線部分)を赤色で表示するなど、異常部分をBIMシステム上で表示することができる。なお、
図36は、
図32により示される情報をBIMデータ200として記憶し、BIMシステム上で表示した例を示している。
【0129】
図28のステップS704の処理において方角判定でないと判定した場合(ステップS704;No)、制御部120は、異常判定部129Bの機能により、部材同士が接続可能であるか不可能であるかを判定する接続不可部材判定を行う(ステップS708)。具体的に、ステップS708の処理において異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、接続不可能な部材と接続関係にあるか否かを判定する。
図31は、各部材の接続関係を説明するための説明図である。図示する例では、上水蛇口aと中水管cの部材のBIMデータ200を
図28のステップS701で取得した例を示しており、それぞれが接続されていることを示している。図示するように、上水蛇口aは上水管とは接続可能であるが、中水管とは接続不可になっている。したがって、ステップS708の処理では、異常と判定し、これらの情報を対応付けて記憶する。なお、中水管cについても同様に異常と判定する。なお、接続可および不可についての情報は、予めユーザにより設定されている。これにより、接続関係が確認された部材同士について、それぞれの属性情報の比較から、建築設計の適正や不具合等の推測が可能となり、BIMデータ200によりその箇所を表示および確認することができる。すなわち、BIMデータ200をBIMシステム上で表示することで、建築物における異常箇所を3次元画像上で確認することができる。
【0130】
図28のステップS708の処理を実行した後、制御部120は、異常判定部129Bの機能により、部材を構成する順番を判定する序列判定を行う(ステップS709)。具体的に、ステップS709の処理において異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、その順番が正常であるか否かを判定する。
図32は、各部材の接続関係の順序を説明するための説明図である。図示する例では、ウレタン塗装、さび止め塗装、および鉄部材のBIMデータ200を
図28のステップS701で取得した例を示しており、それぞれが図示する位置関係で接続されていることを示している。図示する例では、鉄部材の外側にさび止め塗装が接続され、その外側にウレタン塗装が接続されており、これらの耐用年数はそれぞれ10年と15年となっている。
図28のステップS708の処理では、外側と内側と位置関係とそれぞれの耐用年数に基づいて、内側の部材の耐用年数が外側の部材の耐用年数よりも短いか否かを判定し、短い場合に異常であると判定する。
図32に示す例では、最も外側のウレタン塗装の耐用年数が15年であるのに対し、その内側のさび止め塗装の耐用年数が10年である。そのため、外側の部材よりも先に内側の部材の耐用年数が満了となってしまう。したがって、
図28のステップS708の処理では、これらを異常と判定し、これらの情報を対応付けて記憶する。なお、中水管cについても同様に異常と判定する。なお、耐用年数や位置関係についての情報は、予めユーザにより設定されている。以上により、部材ごとの耐用年数の周期と改修周期が整合した部材構成であるか、すなわち改修頻度の違いによる構法的序列(接触順序)と改修周期の整合性を判定することができる。また、後述するステップS713の処理を実行することにより、
図37に示すようにBIMシステム上で異常となっている部材を表示することができる。
図37は、
図32に示される情報をBIMデータ200として記憶し、BIMシステム上で表示した例を示している。図示する例では、さび止め塗装とウレタン塗装との構法的序列に異常があることを示している。
図37に示す例では、建築物を構成する部材の一部についてBIMシステム上で表示した例を示しているが、複数の部材について表示してもよい。また、異常部分だけでなく正常部分についても表示してもよい。さらに、建築物全体の3次元画像を表示し、当該建築物を構成するそれぞれの部材における構法的序列についての判定結果を当該3次元画像上に表示してもよい。
【0131】
図28のステップS708の処理を実行した後、制御部120は、異常判定部129Bの機能により、特殊な条件による部材の劣化状況を判定する特殊劣化判定を行う(ステップS710)。具体的に、ステップS710の処理において異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、特殊条件を勘案し、更新後の耐用年数を算出する。
図33は、部材毎の特殊条件における耐用年数の減算年数を説明するための説明図である。図示する例では、沿岸地域や雨、紫外線変性などの特殊条件に応じて耐用年数の減算年数が設定されており、これらの減算年数は予めユーザにより設定されている。また、それぞれの部材の耐用年数についても予め設定されている。
図28のステップS701の処理において、ウレタン塗装とRC打放の部材のBIMデータ200を、取得した場合、それぞれの部材の位置や方角などの情報に基づいて、ステップS708の処理において劣化年数を算出し、耐用年数から当該劣化年数を減算した値を更新値として算出する。例えば、
図33に示すウレタン塗装の部材について、当該部材が沿岸地域に存在し、かつ北側以外の方角である場合、劣化年数は13年となるため、更新値として2年を算出する。これによれば、例えば外部に面していると判別された面では、建物立地等の外部環境属性情報から部材の劣化に及ぼす影響を判別でき、劣化の進行状況を表示することができる。さらに、属性情報のデータを最新の情報に更新することで、最新の情報を表示することができる。また、劣化しやすい部位、錆の発生が多い部位、変形変質の多い部位などについても特定することができる。
【0132】
図28のステップS710の処理を実行した後、制御部120は、異常判定部129Bの機能により、接続関係上これまでの経験に基づいて発生する劣化である経験劣化判定を行う(ステップS711)。具体的に、ステップS711の処理において異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、当該部材が接続している部材との接続関係により発生する劣化について判定する。
図34は、部材の接続関係と経験上の劣化情報を説明するための説明図である。図示する例では、外壁aと接続されている部材の種類とその劣化の情報が示されており、例えば外壁aと窓aが接続している場合、当該接続部分の外壁に10年以内にひび割れが発生する可能性があることを示している。これらの劣化情報、すなわち修繕情報は、予め過去の統計情報に基づいて、ユーザにより修繕周期として修繕工事までの年数が設定されている。
図28のステップS711の処理では、当該設定されている情報に基づいて、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、劣化情報を特定し、取得したBIMデータ200に対応付けて記憶する。これによれば、同一部材同一面で、他の部材と接している部分、何も接していない部分が判別できるとともに、部材の経験的な劣化の進み方を推測可能となり、BIMシステム(BIMモデル)に長期修繕計画として出力することができる。具体的に、後述するステップS713の処理を実行することにより、
図38に示すように、新築時からの時系列の修繕必要箇所をBIMシステム(BIMモデル)上で表示することができる。
図38は、
図34に示される情報をBIMデータ200として記憶し、BIMシステム上で表示した例を示している。
図34に示す例では、窓aに接している外壁aが10年以内にひび割れを起こすといった情報が示されているため、
図38に示す例においても、10年経過時に窓aに接している外壁aが修繕箇所であることを示している。なお、図示する例では理解を容易にするため2次元で外壁のみ示しているが、BIMシステム上では3次元で表示される。また、例えば10年経過後に修繕が必要な箇所が複数あれば、複数表示される。また、例えば15年経過後に修繕が必要な箇所があれば、15年経過後の3D画像上に修繕箇所が表示されることとなる。すなわち、長期修繕計画における修繕箇所を時系列にBIMシステム上で3次元の建築物上に表示可能である。
【0133】
図28のステップS711の処理を実行した後、制御部120は、異常判定部129Bの機能により、部材同士の接続関係により生じる工事の工事面積を判定する工事面積判定を行う(ステップS712)。具体的に、ステップS712の処理において異常判定部129Bは、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、当該部材が接続している部材との接続関係により生じる工事の工事面積について判定する。
図35は、部材の接続関係と生じる工事を説明するための説明図である。図示する例では、サッシaと接続されている部材の種類とその必要な工事および影響部分(面積)の情報が示されており、例えばサッシaと外壁aが接続している場合、当該サッシaを交換する場合には、斫り工事が必要となり、サッシだけでなく外壁開口小口にまで影響があることから、これらの面積を判定する必要があることを示している。すなわち、合わせて工事を行うのに必要な面積を、影響部分と接触部分非接触部分の情報に基づいて算出する。なお、これらの情報は、接続関係と工事内容に応じて予めユーザにより設定されている。
図28のステップS712の処理では、当該設定されている情報に基づいて、ステップS701の処理で取得したBIMデータ200に含まれる全ての部材について、工事面積を判定し、取得したBIMデータ200に対応付けて記憶する。これによれば、修繕する箇所以外に、その関連する箇所にも工事が発生する、いわゆる道連れ工事について、BIMシステム上で判定することができる。例えば、窓のある外壁は窓の改修時に壁と接している部分の道連れ工事が発生するということをBIMシステム上で判断でき、結果を表示できることとなる。また、道連れ工事を行う必要のある工事面積が算出されるため、道連れ工事の工事数量を算出することができる。
【0134】
図28のステップS712の処理を実行した後、制御部120は、ステップS708~ステップS712の処理の判定結果を、異常判定部129Bの機能により、ステップS707の処理と同様に、BIMデータ200として出力し(ステップS713)、異常判定処理を終了する。
【0135】
以上が異常判定処理における接触面検出装置100の動作である。このように、属性処理によってBIMデータ200に記憶された属性情報を用いることにより、それぞれの部材の属性情報や設置される環境の比較、すなわち部材ごとの耐用年数の差や過去の維持管理のデータの比較から、劣化の状況の推測が可能となる。また、接続が確認された部材同士について、それぞれの属性情報の比較から、建築設計の適正や不具合等の推測が可能となり、BIMによりその箇所を表示することも可能となる。さらに、同一部材同一面で、他の部材と接している部分、何も接していない部分を判別することができ、部材のそれぞれの部分についても、経験的な劣化などの推測が可能となり、BIMによりその箇所を表示することができる。
【0136】
(変形例)
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、上記実施の形態に係る接触面検出装置100は、上記で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせてもよい。
【0137】
上記実施の形態では、接触面検出装置100とBIMデータ200とがネットワーク210を介して接続されている例を示したが、これは一例である。BIMデータ200は、当該接触面検出装置100が備えていてもよい。
【0138】
また、上記実施の形態では、理解を容易にするため、部材Pと部材Qとの2つの部材が接している場合について説明したが、3つ以上の部材が接している場合についても同様にして属性情報をBIMデータ200に出力可能である。
【0139】
また、上記実施の形態では、
図28に示す異常判定処理において、ステップS708~ステップS712の処理を一連の処理として説明したが、これは一例である。これらステップS708~ステップS712の処理のうち、いずれの処理を実行するかがユーザにより予め指定されていてもよい。この場合、指定された処理のみ実行されればよい。また、複数の処理が指定されてもよい。
【0140】
また、上記実施の形態では、建築物について当該接触面検出装置100を用いた例を示したが、これは一例である。建築物に限らず、当該接触面検出装置100は、例えば機械装置の設計や車両の設計や、地図と建物とを結び付けた都市の設計にも応用することができる。
【0141】
なお、上記実施の形態に係る接触面検出装置100は、専用の装置によらず、通常のコンピュータを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した記録媒体から該プログラムをコンピュータにインストールすることにより、上述の処理を実行する接触面検出装置100を構成してもよい。また、複数のコンピュータが協働して動作することによって、1つの接触面検出装置100を構成してもよい。
【0142】
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。
【0143】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【0144】
1 接触面検出システム、100 接触面検出装置、110 記憶部、111 プログラム、112 判定結果、113 交差座標データ、120 制御部、121 座標データ取得部、122 分割部、123 面選択部、124 接触面検出部、125 内包判定部、126 面積比各部、127 交差判定部、128 交点座標算出部、129 面処理部、129A 結果出力部、129B 異常判定部、130 入出力部、140 通信部、200 BIMデータ、210 ネットワーク