以下、図面を参照しながら、本発明の実施形態について説明する。
(本発明の実施形態)
図1は、本発明の実施形態に係る空間情報生成装置の概略構成の一例を示すブロック図である。本発明の実施形態に係る空間情報生成装置は、建物情報DB1と、加工パラメタ設定部2と、加工対象抽出部3と、空間形状加工部4と、空間構造加工部5と、加工結果成形部6と、加工結果DB7と、加工結果出力部8とを備える。
また、空間形状加工部4は、基準面取得部41と、方向軸取得部42と、簡略区間設定部43と、形状簡略部44と、加工程度評価部45と、加工区間情報管理部46とを備える。
また、空間構造加工部5は、分割片生成部51と、分割片再構成部52と、分割結果評価部53と、分割片情報管理部54とを備える。
また、加工結果成形部6は、形状復元部61と、BIMモデル生成部62と、指定形式データ出力部63とを備える。
本発明の実施形態に係る空間情報生成装置は、建物情報DB1に格納されているデータ、例えばBIMモデル、などの建物情報に対し、いくつかの加工処理を行うことにより、建物情報の情報量を減少させる。これにより、建物情報を活用するシミュレーションなどの処理の負荷が減少する。
図2は、本発明の実施形態に係る空間情報生成装置の概略処理のフローチャートである。加工パラメタ設定部2は、ユーザからの入力を受け付け、加工パラメタを設定する(S101)。加工パラメタは、加工対象抽出部3、空間形状加工部4、空間構造加工部5、加工結果成形部6に送られる。
加工対象抽出部3は、加工パラメタ設定部2から指定された空間(室)を抽出する(S102)。空間形状加工部4は、加工対象抽出部3が抽出した空間に対し、その空間の形状に関する加工処理を行う(S103)。形状に関する加工とは、例えば、空間の外周、内周などの形状を簡略化することなどがある。
そして、空間構造加工部5は、空間形状加工部4が加工した空間に対し、構造に関する加工処理を行う(S104)。構造に関する加工とは、例えば、加工する空間を複数に分割すること、複数の空間を1つに集約することなどがある。
加工結果成形部5は、空間形状加工部3および空間構造加工部4による加工結果に対し、成形処理を行う(S105)。成形とは、例えば、簡略化された一部の形状の復元すること、必要なデータ形式に加工することなどがある。
加工結果DB7は、成形された加工結果を格納し(S106)、加工結果出力部8が加工結果を出力する(S107)。以上が、空間情報生成装置の概略処理のフローである。
次に、本発明の実施形態に係る空間情報生成装置が備える各部の詳細について説明する。
建物情報DB1は、建物情報を格納する。建物情報には、オブジェクト、そのオブジェクトの属性に関する属性情報(建物属性)、他のオブジェクトとの関係性を表す関係情報などが含まれる。オブジェクトには、建物を構成する、空間、部材(構成物)、設備機器などを表すオブジェクトなどがある。また、これらのオブジェクトには、頂点の位置座標など形状に関する情報が含まれる。また空間は、床、壁、天井、仮想の区切りなどにより囲まれた空間(室)を表す。扉などで仕切られておらず、空間の境界となる建物部材がない場合でも、仮想の区切りがあるものとしてよい。空間は、平面も立体も含むものとする。建物の一部または構成物は、例えば、窓、柱、階段といったものがある。設備機器は、空調機器、照明、センサ、無線アクセスポイントなど、建物内に存在している機器であればよい。
属性情報には、例えば、そのオブジェクトの名称、面積、体積、材料、材質、性能、用途、状態、存在する階(フロア)などがある。関係情報には、構造関係、構成関係、および接続関係などがある。これらの詳細については、後述する。
なお、本発明の実施形態に係る空間情報生成装置が用いる建物情報には、加工処理に用いられる情報が含まれていればよく、加工処理に用いられない情報は、含まれていなくともよい。例えば、加工処理に材料の属性が不要であれば、材料の属性の値が空でもよい。また、建物情報は、BIMソフトウェアにより生成されたものでもよいし、空間情報生成装置のために加工または新規作成されたものでもよい。また、ここでは、BIMモデルを加工することを想定して説明を行うが、BIMモデルのように、建物情報を有するデータであればよい。
加工パラメタ設定部2は、ユーザからの入力を受け付けて、加工対象抽出部3、空間形状加工部4、空間構造加工部5、および加工結果成形部6が用いるパラメタの値を設定する。設定されるパラメタとしては、加工目的、加工範囲、加工対象、加工レベル、加工方法などがある。加工目的は、空間情報生成装置により加工されたデータを用いるシミュレーションなどの名称などがある。加工レベルは、加工される面積の閾値などがある。加工方法は、分割、集約などがあり、分割には要素基準、用途などの基準があり、集約には用途などの基準がある。
図3は、ユーザからの入力を取得するための画面の一例を示す図である。加工パラメタ設定部2は、ユーザからの入力を取得するために、このような入力画面を生成する。この入力画面の左半分は、対象空間の選択または選択条件などに関する部分である。これらの部分に対する入力は、加工対象抽出部3に対するパラメタの値に変換される。この入力画面の右半分は、選択された対象空間に対する、加工についての指示を入力する部分である。当該加工についての指示が、空間形状加工部4、空間構造加工部5、および加工結果成形部6に対するパラメタに変換される。
なお、この画面は一例であり、画面の形式は図3に限られるものではない。例えば、建物情報を描画するCADシステムのGUIを利用したものでもよい。
対象空間の選択または選択条件などに関する部分について説明する。
ユーザは、加工対象のオブジェクトを、対象空間の選択エリアから指定する。加工パラメタ設定部2は、ユーザの利便性を考慮して、例えば、階、部屋などの空間といった選択対象の情報を、建物情報DB1より、1以上取得して表示させることで、ユーザに選択対象を選ばせてもよい。選択対象の情報を抽出および表示するには、例えば、建物情報DB1からBIMモデルのBuildingStoreyオブジェクトを抽出し、抽出したBuildingStoreyオブジェクトのName(名称)属性の値を表示することで、建物が有する階についての情報を表示することができる。また、例えば、建物情報DB1から、BIMモデルのSpaceオブジェクトと、階(フロア)と空間の関係情報を取得しておき、ユーザが階数を選択したときに、対応するSpaceオブジェクトのName属性の値を表示することで、選択された階に存在する空間1から空間n(nは1以上の整数)をリストに表示するといったことが実現できる。
また、ユーザに選択対象の条件を入力させ、条件に合致する選択対象を表示するようにしてもよい。条件としては、面積、名称、用途、状態、隣接、近接範囲、類似などが考えられる。これらの条件は、オブジェクトの属性情報と関係情報を利用すればよい。
用途は、事務室、実験室、会議室、食堂など、空間の利用目的または形態を表す。状態は、使用中(想定内)、使用中(想定外)、未使用などが考えられる。
隣接とは、選択中の空間オブジェクトとの隣接距離を意味する。例えば、隣にあるものは隣接距離1、隣の隣にあるものは隣接距離2というように、各オブジェクトとの隣接距離についての情報である。これにより、例えば、条件に隣接距離3と入力した場合は、隣の隣の隣までを抽出の対象とすることができる。
範囲(近接範囲)とは、入力した、近接とする物理距離内の範囲とする。物理距離内に包含される空間のみを対象としてもよいし(包含指定)、物理距離内に一部でも含まれる空間も対象としてもよい(一部指定)。
類似(類似性質)とは、例えば、壁、底面などといった平面の形状に着目し、平面の形状が一致または相似しているときに、類似とすることが考えられる。ここでは、平面の形状を対象としたものを、形状系の類似と称する。形状系の類似における一致とは、形状および大きさともに一致していることを言う。また、形状系の類似における相似とは、形状が一致しているが、大きさは異なっていることを言う。平面の形状には、空間形状加工部4および空間構造加工部5の加工処理の結果を含んでもよいし、加工処理において算出した情報に基づき、類否を判断してもよい。
また、窓もしくは扉などの開口部の向きまたは方向軸の向きなどに着目し、これらの向きが一致しているか所定範囲内であるかにより、類似とすることが考えられる。このような、オブジェクトの方向に関する類似を、構造系の類似と称する。構造系の類似における一致および相似とは、方向の向きの差分が、一致に対応する範囲、相似に対応する範囲に含まれていることにより、類似とすることが考えられる。例えば、差分が0度から1度ならば一致、1度から5度なら相似としてもよいし、差分が完全にない場合のみを一致としてもよい。構造系の類似も、加工処理において算出した情報に基づき、類否を判断してもよい。
検索条件は、AND条件でもOR条件でもよい。また、2D指定(平面探索)でも、3D指定(立体探索)でもよい。2D指定(平面探索)とは、加工対象とした階または加工対象とした空間が存在する階に存在するもののみを検索対象とするものである。3D指定(立体探索)は、2D指定(平面探索)の検索範囲に加えて、その上下の階も対象に含める。
次に、画面の右側の、選択された対象空間に対する、加工についての指示について説明する。
画面の右上の形状加工と表示されている部分は、空間形状加工部4が用いるパラメタを入力する部分である。形状加工に関するパラメタとしては、方向基準、省略対象、短絡距離、加工割合、および形状復元などが考えられる。各項目についての説明は、空間形状加工部4の説明にて行う。
画面の右側真中のゾーニングと表示されている部分は、空間構造加工部5が用いるパラメタを入力する部分である。構造加工に関するパラメタとしては、分割基準、採用基準、最大面積、最大間隔、細分方法、集約方法および状況考慮などが考えられる。各項目についての説明は、空間構造加工部5の説明にて行う。
画面の右下の実行要領と表示されている部分は、幾何計算に用いられるパラメタである誤差許容レベルを入力する部分である。誤差許容レベルは、座標計算において保証される精度を表し、幾何計算を行う空間形状加工部4または空間構造加工部5にて用いられる。誤差許容レベルが低いほど、平行、交差、および重なりの判定が厳密に行われ、高いほどこれらの判定が緩和される。一般的に、判定の際の有効桁数を増減させることにより、判定の厳密さが調整される。
画面の右下の出力要領と表示されている部分は、加工結果成形部6が用いるパラメタである出力形式を入力する部分である。出力形式の説明は、加工結果成形部6の説明にて行う。
なお、BIMモデルを利用する場合、加工パラメタ設定部2にて指定される項目(指定要素)の種類は、BIMモデルの概念体系に準拠すればよい。例えば、IFC(Industrial Foundation Classes)で規定された概念体系、またはgbXML(The Green Building XML)で規定された概念体系などがある。また、建物情報の内容を表示させるには、例えば、BIMモデルの概念体系をリストまたはツリー表示したUIを利用すればよい。
加工対象抽出部3は、加工パラメタ設定部2から、条件に合致するオブジェクトなどの抽出を指示されたときは、建物情報DB1に格納されている建物情報から、条件に合致するオブジェクトなどを抽出する。
例えば、加工パラメタ設定部2から取得した検索条件が面積であった場合は、建物情報DB1にある空間オブジェクトの面積属性を参照する。検索条件が名称であった場合は、建物情報DB1にある空間オブジェクトの名前属性を参照する。その他、前述の用途、状態、隣接、近接範囲、類似などについても同様である。検索方法は、例えばBIMQL(Building Information Model Query Language)など、公知のBIMモデル属性検索方法を用いればよい。
なお、ここでは、建物情報DB1に格納された建物情報を用いて加工処理を行うことを想定し、建物情報DB1から抽出するとしたが、加工対象抽出部3は、加工結果DB7から加工結果を抽出してもよい。
なお、加工対象抽出部3は、抽出を行う構成部を有していてもよい。例えば、BIMモデルの属性を検索するBIMモデル属性検索部、空間オブジェクトを検索する空間オブジェクト検索部など、検索される情報の種類などに応じた個別の検索部を備えていてもよい。また、類似の形状または構造を抽出するために、類似形状判定部または類似構造判定部などを備えていてもよい。判定方法は、形状系ならば公知の形状判定方法を、構造系ならばBIMQLなどの公知のBIMモデル属性検索方法を用いればよい。または、加工処理を行う際に算出された情報、例えば、後述する方向軸などを用いてもよい。
また、検索対象の空間の用途または状態などを推定する空間用途推定部または空間状態推定部などを個別に備えていてもよい。例えば、指定された検索条件の属性の値が入力されていないオブジェクトがある場合、または当該属性の項目自体がない場合は、推定部により、オブジェクトごとにその属性値を推定することが考えられる。
例えば、検索条件が「用途(空間の利用目的・形態)」であった場合、加工対象抽出部3は、空間オブジェクトの用途属性を参照するが、とある空間オブジェクトの用途属性に値が入力されていなかった場合(値が空の場合)には、空間用途推定部が、その空間オブジェクトの「用途」を推定するとしてもよい。
加工対象抽出部3または空間用途推定部は、空間オブジェクトに関連する時系列のデータから、空間の用途を推定する。用途を推定するための時系列のデータには、そのオブジェクトが示す部屋などの温湿度、CO2濃度、在室人数、電力使用量等のデータなどが考えられる。空間オブジェクトに関連する時系列のデータは、計測センサ等により計測され、建物情報DB1に格納されているものとする。なお、建物情報DB1以外の図示しない記憶部に格納されていてもよい。
加工対象抽出部3または空間用途推定部は、空間の使い方により特徴的に発生する属性値の変動パタンを予め保持しておく。そして、取得したデータと変動パタンとが合致するかを比較し、類似度などを算出して、空間の用途を推定する。
また、例えば、検索条件が「状態(設備の稼働負荷が想定内か想定超か、といった空間の利用状態)」であった場合、加工対象抽出部3は、空間オブジェクトの状態属性を参照するが、空間オブジェクトの状態属性の値が空の場合、または、空間オブジェクトの属性に「状態」の項目がない場合は、空間状態推定部が、その空間オブジェクトの「状態」を推定するとしてもよい。
状態を推定するための時系列のデータには、電力使用量などのエネルギー量、または空調・衛生系統の流速もしくは流量といった設備稼働量などが考えられる。その他は、用途を推定するときと同じである。
空間形状加工部4は、加工対象抽出部3から取得した空間オブジェクトから、空間オブジェクトの一部である平面オブジェクトを取得し、平面オブジェクトの形状を生成する。この平面オブジェクトの形状は、空間オブジェクトの形状の基準となる。ここでは、この平面オブジェクトを基準面と称する。空間形状加工部4は、基準面の形状を生成し、当該基準面の形状から、加工パラメタ設定部2から指定された要素に関する部分、あるいは指定された種類の要素の部分の形状を簡略化する。これにより、基準面の当該要素に関する辺数を少なくする。この簡略化を、ここでは、要素簡略化と称する。
また、空間形状加工部4は、基準面において、加工対象抽出部3から取得した空間オブジェクトと、当該空間オブジェクトに隣接する空間オブジェクトとが接している隣接辺上に存在する、閾値より小さい凸部または凹部を、簡略化する。この簡略化を、ここでは、直線化と称する。
図4は、要素簡略化の一例を示す図である。図4(A)は加工前の基準面を示す図である。図4(B)には、この例の指定要素である柱に係る辺は実線で、柱以外の線は点線で示す。図4(C)は、簡略化処理の途中を示す図である。図4(D)は、加工後の基準面を示す。
要素簡略化を行う際に、省略の対象とする指定要素は、加工パラメタ設定部2の入力画面に表示された「省略対象」から指定することができる。例えば、柱を指定した場合は、柱に関する面が簡略化される。
加工前の基準面は、外周部に柱による窪み(凹部)と、内部に柱による空き空間が存在する。このような窪み、空間などは、設計要素として重要であるが、解析などでは不要とされる場合もあり得る。例えば、空調装置からの空調の流入量、無線アンテナの電波状況の解析などでは、柱による内部の空き空間の情報は必要だが、外周部の柱による窪みは不要といった場合があり得る。解析処理に、このような不要な情報を与えると、余計な負荷がかかる。そのため、空間形状加工部4は、指定された省略すべき不要な情報を削除する。
空間形状加工部4は、指定要素の柱に関する面と、それ以外の面を区別し、柱に関する面を簡略化する。まず、外周の柱が簡略化され、図4(C)では、外周の凹部が消滅した状態となっている。そして、内部に柱による空き空間が簡略化され、図4(D)では、柱に関する面が全て削除されている。このようにして、空間形状加工部4は、基準面を簡略化する。
なお、ここでは、内部に柱による空き空間も簡略化されているが、柱による内部の空き空間の情報が必要な場合もあり、柱による内部の空き空間を復元する場合もある。加工処理により削除された要素などの復元は、加工結果成形部6にて行われる。
図5は、直線化の一例を示す図である。ここでは、空間の外周に存在する、予め定められた閾値より小さい凸部および凹部を直線化し、オブジェクトが有する情報量を削減する。図5(A)は直線化処理前の基準面を示す図である。図5(B)と図5(C)は、直線化処理の途中を示すものであり、図5(B)は、凸部および凹部を、予め定められた方法に基づき、簡略化したものである。図5(C)は、簡略化された空間と、他の空間との重複部分を示すものである。重複部分について、さらに簡略化処理が行われる。図5(D)は、さらなる簡略化後の基準面を示す。このようにして、空間形状加工部4は、基準面を直線化する。
空間形状加工部4は、要素簡略化と直線化のどちらか一方または両方を行うことにより、不要な情報が排除された簡略化された基準面を生成する。これにより、加工結果を利用するシミュレーションなどの処理の負荷を削減することができ、計算結果の算出までの時間を短くすることができる。
図6は、空間形状加工部4の空間形状加工処理の概略フローチャートである。空間形状加工部4は、全ての加工対象の空間オブジェクト(加工対象空間)に対して、処理を行う。まず空間形状加工部4は、基準面の形状の生成を行う(S201)。次に空間形状加工部4は、基準面の生成後、基準面の方向軸を取得する(S202)。基準面の方向軸は、基準面の分割などを行う際の基準となるものである。
また、空間形状加工部4は、簡略区間の設定(S203)および簡略区間における簡略面積閾値を設定する(S204)。簡略区間は、基準面を形成する辺を複数の区間に分割することにより生成された、形状を簡略化する対象の区間である。簡略面積閾値は、空間形状加工部4の簡略化により削減される面積の上限値を示す。簡略面積閾値は、簡略化より面積が削減され過ぎるのを防ぐ。
方向軸の取得(S202)は、加工区間および簡略面積閾値の設定(S203、S204)と、並行して行われてもよいし、先または後に行われてもよい。方向軸の取得(S202)と、加工区間および簡略面積閾値の設定(S203、S204)が完了した後に、空間形状加工部4は、基準面の形状を簡略化する(S205)。簡略化は、要素簡略化と直線化のどちらか一方または両方でもよい。以上が、空間形状加工処理の概略フローチャートである。
さらに空間形状加工部4の詳細について説明する。
基準面取得部41は、基準面の形状を生成する。基準面となる面は、予め定めておいてもよいし、加工パラメタ設定部2から指定されてもよい。建築分野では、基準面を床面(底面)とすることが多いため、ここでは、基準面を床面として、説明する。
基準面として床面が設定されていた場合、基準面取得部41は、加工対象空間の属性情報と関係情報に基づき、床面を検出する。床面を検出後、予め定められた生成方法に基づき、基準面の形状を生成する。生成方法としては、例えば、床面に関する全ての要素の全ての頂点の2次元座標を取得し、各頂点間を結ぶ辺を算出し、最大の閉ループとなる形状を生成するという方法が考えられる。また、別の方法としては、空間を囲い込む側面、例えば壁に関する全ての要素の全ての頂点から、床面に関する頂点のみを抽出し、それらの2次元座標と各頂点間を結ぶ辺とに基づき、最大の閉ループとなる形状を生成する。なお、座標に誤差がある場合などは、壁同士の接続関係を考慮してもよい。
方向軸取得部42は、基準面ごとに方向軸を取得する。図7は、方向軸を取得する方法の一例を示す図である。方向軸取得部42は、基準面を形成する辺のうち、方向基準として指定された要素に係る辺の向き(べクトル)を取得する。図7では、指定要素に関する辺を実線で示されている。そして、方向軸取得部42は、指定要素の辺全てにおいて、辺の向き把握した後で、直行する辺の組み合わせがあるかを確認する。直交する辺の組を発見した場合は、その辺の組を方向軸とする。直交する辺の組を複数発見した場合は、方向軸を複数としてもよいし、1つを選択してもよい。
方向軸を取得する別の方法について説明する。図8は、方向軸を取得する方法の他の一例を示す図である。先の方法では、辺に着目したが、この方法では方向基準として指定された要素の位置に着目する。図8では、指定要素として柱が選択されたものとし、柱の位置を基準位置とする。方向軸取得部42は、図8(A)に示された基準面から基準位置である複数の柱を抽出し、複数の柱それぞれから、図8(B)に示すような分割線を生成する。そして、全ての分割線の向きを把握した後で、直行する分割線の組み合わせがあるかを確認する。直交する分割線がない場合は、その分割線を削除する。これにより、図8(C)に示すように直行する分割線のみが残る。そして、残った直行する分割線を方向軸とする。直交する分割線が複数ある場合は、図8(D)に示すように、方向軸を複数としてもよいし、1つを選択してもよい。
図9は、分割線を生成するフローチャートである。方向軸取得部42は、基準面の外周を形成する辺の接続関係を取得し(S301)、当該接続関係に基づき、柱などの指定要素の辺が連続する区間を取得する(S302)。連続区間がある場合(S303のYES)は、当該連続区間それぞれに対し、分割線の生成を行う。具体的には、指定要素の辺と重なる分割線を生成する(S304)。また、両隣も指定要素である辺を取得する(S305)。この辺は、凹部の窪んだ部分の辺(基準面の外周と接しない辺)を意味する。取得することができたならば(S306のYES)、その辺の中点を直交する分割線を生成する(S307)。これにより、連続区間の分割線を生成する。
連続区間がない場合(S303のNO)または全ての連続区間に対する分割線の生成処理(S307)をした後は、両隣が別要素である指定要素の辺を取得する(S308)。取得することができたならば(S309のYES)、取得した辺それぞれに対し、辺の中点を直交する分割線を生成する(S310)。該当する辺がない場合(S309のNO)または取得した辺全てに対する分割線の生成処理(S310)をした後は、簡略化した後の外周と直交しない分割線を取得する(S311)。当該分割線がない場合(S312のNO)は処理を終了する。当該分割線を取得した場合(S312のYES)は、他の分割線と直交しているかを確認し、直行していない場合(S313のYES)は、分割線を削除する(S314)。これにより、方向軸とすることができない不要な分割線を削除することができる。全ての分割線に対し、確認および削除を行ったらば、本フローは終了する。
上記のような予め定められた方法にて方向軸が取得できない場合は、便宜的に、隣接空間の方向軸と合わせる。隣接空間の方向軸も取得できない場合は、探索の範囲を徐々に広げていき、取得可能な空間を見つける。
なお、方向軸を生成する際に、必要となる指定要素は、加工パラメタ設定部2の入力画面に表示された「方向基準」から指定することができる。
簡略区間設定部43は、基準面を形成する各辺それぞれに対し、他の空間との隣接関係に基づき、簡略区間を設定(生成)する。
図10は、簡略区間設定の処理について説明する図である。加工対象である空間Aが、建物外と、空間B、C、およびDと隣接しているとする。簡略区間設定部43は、対象空間Aが別の空間と隣接する区間(辺)の両端をそれぞれ区間端に設定する。図10では、区間端を黒の丸で示す。これにより、隣り合う空間同士の隣接辺の簡略区間が、両隣接空間同士で一致する。同じ辺であっても簡略区間の両端が異なれば、加工結果が異なる場合があり得る。したがって、これにより、各空間それぞれに対して行われた加工処理の結果が、隣接辺において整合性を保つことができる。
そして、簡略区間設定部43は、隣接空間のない区間、つまり建物外に面する辺を取得し、その辺上にある頂点を取得する。そして、取得した各頂点と隣接する2つの区間端とを接続線で結び、2つの接続線が空間内にあるかを確認する。図10では、空間内にある接続線を1点破線で表示し、空間外にはみ出してしまう接続線を破線で表示している。なお、接続線が、区間端同士を結ぶ線上にある場合も、その接続線は空間内にあるとする。頂点から出ている2つの接続線がともに空間内にある場合、その頂点を空間内頂点とする。図10では、空間内頂点を白抜きの丸と、内部が斜線で表された丸で示す。頂点から出ている2つの接続線が一方でも空間内にない場合、その頂点を空間外頂点とする。図10では、空間外頂点を、内部が灰色で表された丸で示す。
そして、空間内頂点のうち、空間内頂点と隣接する2つの区間端とを結ぶ線で囲まれる範囲の面積が最大となる空間内頂点を区間端に追加する。図10では、内部が斜線で示された丸が、面積が最大となる頂点を示している。区間端に追加された頂点は、簡略化処理により削除されることがなくなる。
簡略区間設定部43は、上記のように区間端を追加した後で、区間端の1つを基点として任意に選び、時計回りに外周を辿り、区間端と区間端との間の区間を簡略区間として設定する。なお、ここでは時計回りとしたが、反時計回りでもよい。なお、以降の説明において行われる処理は、時計回りを前提としており、反時計回りで設定したときは、処理の向きが逆になる。
簡略区間設定部43は、簡略区間ごとに加工区間情報を生成する。加工区間情報は、簡略区間に関する情報と、当該簡略区間に行われた加工処理に関する情報が含まれる。例えば、簡略区間のID、簡略区間上に存在する頂点のIDと位置座標、簡略区間ごとに設定される加工面積閾値、行われた加工処理(加工ステップ)の順番を表す加工ステップ数、各加工ステップにおいて追加または削除された部位の面積、今までの加工ステップにおいて追加または削除された部位の面積の積算値、復元フラグなどが含まれることが考えられる。
復元フラグは、簡略処理によって削除された部位または区間などを、加工結果成形部6が復元するかを判断するためのフラグである。復元対象となる指定要素が削除された場合に、復元フラグの値がtrueにされればよい。指定要素は、加工パラメタ設定部2の入力画面に表示された「形状復元」から指定することができる。復元対象の指定要素は、前述の省略対象で指定したものの一部でも全部でもよい。
簡略区間設定部43は、算出した簡略区間それぞれに対し、簡略面積閾値を設定する。図11は、簡略面積閾値を算出するフローチャートである。簡略区間設定部43は、まず加工対象の空間全体の簡略面積閾値dlimit sを算出する(S501)。簡略面積閾値dlimit sは、対象空間Sの面積と加工割合の積で求められる。
加工割合は、加工パラメタ設定部2の入力画面に表示された「加工割合」から指定することができる。加工割合は、簡略対象とされる凹凸部分の元の面積に対する加除された部分の面積の比である。加工割合の値は、任意に定めてよい。
そして、簡略区間それぞれに対し、各区間の簡略面積閾値を算出する(S502)。とある区間jの簡略面積閾値dlimit sjとすると、dlimit sjは、dlimit sに対し、区間jの長さが加工対象の空間の外周長に占める割合を積算することにより求められる。
次に、簡略区間設定部43は、区間jを共有する隣接空間srにおける区間jの簡略面積閾値dlimit srjと、dlimit sjを絶対値で比較する(S503)。dlimit sjの絶対値のほうが大きい場合(S504のYES)は、dlimit sjの値をdlimit srjに置き換える。そうでない場合(S504のNO)は、そのままにする。これにより、区間jを有する各空間において、区間jの簡略面積閾値が異なるという事態を防ぐことができる。なお、dlimit srjがまだ算出されていない場合は、dlimit srjの値を非常に大きな値にして比較してもよいし、比較を省略してもよい。そして、当該簡略区間の加工区間情報の加工面積閾値を更新し(S506)、次の区間の処理に移る。全ての簡略区間で処理が終了すると、本フローは終了する。なお、ここでは、絶対値により比較を行ったが、面積の増減量に対する、負の値から正の値までの許容範囲を定めてもよい。
なお、加工区間情報には、加工ステップごとに、当該加工ステップ時における簡略区間の情報が含まれる。ゆえに、加工区間情報を参照することにより、最後の加工処理後の簡略区間の状態のみならず、各加工ステップにおける状態も参照することができる。
また、簡略区間設定部43は、簡略すべき指定要素が指定されたときは、当該指定要素にかかる面(辺)の形状の一部または全部を、簡略区間として設定してもよい。
形状簡略部44は、対象の基準面に対し、要素簡略化または直線化を行う。要素簡略化および直線化は、いずれか一方のみ行われてもよいし、両方行われてもよい。いずれの処理または両方の処理を行うか否かは、予め定めておいてもよいし、判断基準を定めておいてもよい。判断基準は、例えば、指定された要素の種類、または簡略対象の面積などにすればよい。
要素簡略化の詳細について説明する。図12は、要素簡略化処理のフローチャートである。形状簡略部44は、外周の加工(S601)または内部の加工(S602)またはその両方を行う。外周の加工と内部の加工については後述する。上記片方または両方の処理を行った後は、これらの処理により削除された指定要素を後で復元するか否かで処理が異なる。
指定要素を後で復元する場合(S603のYES)は、指定部位単位で復元するか否かを確認する。指定部位単位で復元する場合(S604のYES)は、加工区間情報ごとに復元する指定部位が加工区間情報に含まれているかを確認する。指定部位が加工区間情報に含まれていた場合(S605のYES)は、当該部位の復元フラグをtrueにする(S606)。これにより、指定された特定の部位だけを復元させることができる。全ての加工区間情報に対し処理を行った場合は、処理を終了する。
指定要素を後で復元しない場合(S603のNO)は、加工した全区間の加工区間情報の変化した面積を積算してdelement sを算出する(S607)。算出したdelement sの絶対値が上限値を超えた場合(S608のYES)には、元に戻す必要があるため、加工した全区間の加工区間情報の復元フラグをtrueにし(S609)、処理を終了する。これにより、指定要素の全部位を復元させる。算出したdelement sの絶対値が上限値を超えていない場合(S608のYES)には、元に戻す必要はないため、処理は終了する。
指定要素を後で復元するが、指定部位単位では復元しない場合(S604のNO)、つまり指定要素の全部位を復元する場合は、加工した全区間の加工区間情報の復元フラグをtrueにし(S609)、処理を終了する。これにより、指定要素の全部位を復元させることができる。以上が、要素簡略化処理のフローチャートである。
次に、外周の加工の詳細について説明する。外周の加工は、図5で示したように、外周に存在する指定要素に関する面を簡略化することである。簡略化の方法は、簡略化すべき面の形状に応じ、予め定めておけばよい。図13は、要素簡略化における凹部の簡略化について説明する図である。case1から4までの4つのパタンが示されている。なお、これらのパタンは一例であり、これらのパタンに限られるものではない。
図13(A)に示すcase1では、省略すべき指定要素の辺(実線)と接続されている2辺(点線)を、2辺の交点まで延長させることにより、凹部を簡略化するパタンである。図13(B)に示すcase2では、前述の2辺が平行な場合に、省略すべき指定要素の辺と2辺との各接点から等距離にある前述の2辺の垂線と、前述の2辺の延長線とにより、凹部を簡略化するパタンある。図13(C)に示すcase3では、前述の2辺の1つを延長した場合に、残りの1つと重なる場合に、前述の2辺の延長線により、凹部を簡略化するパタンである。図13(D)に示すcase4では、前述の2辺は平行ではないが、前述の2辺の延長線が交差しない場合に、省略すべき指定要素の辺と2辺との各接点を結ぶ線により、凹部を簡略化するパタンである。
図14は、外周の加工処理のフローチャートである。形状簡略部44は、簡略区間を形成する辺の接続関係を取得する(S701)。また、指定要素の辺が連続する区間を取得する(S702)。連続する区間が取得できなかった場合(S703のNO)は、次の簡略区間に移る。連続する区間が取得できた場合(S703のYES)は、連続区間それぞれに対し、処理を行う。
まず、両端の辺それぞれと隣接する2辺を連続区間方向に延長し、その交点を取得する(S704)。取得できた場合(S705のYES)は、連続区間の頂点を取得した交点のみとして簡略化する(S706)。この簡略化は図11で示したCase1に該当する。
取得できなかった場合(S705のNO)は、両辺のベクトルが同じかを確認し、同じでない場合(S707のNO)は、連続区間の両端を接続し、他の頂点を削除して簡略化する(S708)。この簡略化は図11で示したCase4に該当する。
両辺のベクトルが同じな場合(S707のYES)は、2辺が重なるか否かを確認し、2辺が重なる場合(S709のNO)は、連続区間の全頂点を削除し簡略化する(S710)。この簡略化は図11で示したCase3に該当する。2辺が重ならない場合(S709のYES)には、連続区間両端から等距離の地点を通る2辺と直交する線と、2辺との交点を取得し、連続区間の頂点を取得した交点のみとして簡略化する(S711)。この簡略化は図11で示したCase2に該当する。これらにより、連続区間を4つの方法のいずれかで簡略化することができる。
上記簡略化の処理を、全ての連続区間にて行い、全ての連続区間に対する処理が完了した後は、形状簡略部44は、当該簡略区間の加工区間情報を更新し(S712)、次の簡略区間に対する処理に移る。なお、加工区間情報の更新とは、加工区間情報を上書きするのではなく、形状簡略部44が行った加工ステップにおいて、加工された結果に関する情報を追加することをいう。したがって、加工区間情報には、加工ステップの前後の情報が含まれる。全ての簡略区間に対して処理を行ったらば、本フローは終了する。
なお、簡略化する連続区間の対象を制限してもよい。例えば、連続区間の両端距離を短絡距離とし、その上限値を定める。そして短絡距離の上限値以下の連続区間を加工対象としておもよい。短絡距離の上限値は、任意に定めてよい。最終的に、本発明の実施形態である空間情報生成装置が生成する加工結果を利用するシミュレーションなどに基づき、定めればよい。短絡距離の上限値は、加工パラメタ設定部2の入力画面に表示された「短絡距離」から指定することができる。
次に、内部の加工の詳細について説明する。図15は、内部の加工処理のフローチャートである。簡略区間設定部43は、外周以外の辺の接続関係を取得し(S801)、取得した接続関係に基づき、指定要素の辺上にある連続かつ閉ループの区間を検索する(S802)。該当の区間が存在しない場合(S803のNO)は、処理は終了する。該当の区間が存在した場合(S803のYES)は、当該区間を簡略区間とし、加工区間情報を設定する(S804)。そして、形状簡略部44は、当該区間を削除する(S805)。そして、削除した簡略区間の加工区間情報を更新する(S806)。連続かつ閉ループの区間が他にも存在する場合は、他の区間に対しても処理を行う。全ての連続かつ閉ループの区間に対する処理が完了したときは、本フローは終了となる。なお、簡略区間設定部43と形状簡略部44の処理は分けてもよい。
次に、直線化の詳細について説明する。図16は、直線化処理のフローチャートである。当該フローは簡略区間それぞれに対して行われる。
形状簡略部44は、加工区間情報の頂点IDのリストから各頂点の向きを取得する(S901)。頂点の向きとは、簡略区間設定部43が、基点とした区間端から時計回りに外周を辿り簡略区間を設定したときに、当該頂点において、曲がった方向が、時計回りか反時計回りかを意味する。詳細は後述する。
次に、形状簡略部44は、凸部優先処理および凹部優先処理を行う。凸部優先処理は、凸部の簡略化(S902)、凹部の簡略化(S903)、エッジ部の簡略化(S904)の順に処理を行うものである。凹部優先処理は、凹部の簡略化(S906)、凸部の簡略化(S907)、エッジ部の簡略化(S908)の順に処理を行うものである。凸部、凹部、エッジ部については後述する。それぞれの簡略化方法は同じではあるが、凸部の簡略化と凹部の簡略化のいずれかを最初に行うかで処理結果が異なる。そのため、形状簡略部44は、凸部優先処理および凹部優先処理の両方を行う。凸部優先処理または凹部の簡略化の処理は、並列に行われても、別々に行われてもよく、どちらを先に行ってもよい。
凸部優先処理または凹部優先処理の後、形状簡略部44は、加工区間情報に追加する情報があるかを確認する(S905、S909)。ある場合(S905のNO、S909のNO)は、さらに直線化を行うべき部分が残っている可能性があるため、凸部優先処理または凹部優先処理に戻る(S902、S906)。
凸部優先処理と凹部優先処理の両方の処理が完了した後、簡略形状を決定する(S910)。簡略形状の決定とは、凸部優先処理による加工結果と凹部優先処理による加工結果を比較し、より適した加工結果である方を簡略形状として決定するものである。簡略形状の決定は、加工程度評価部45が行う。詳細は、加工程度評価部45にて説明する。
簡略形状が決定した後は、エッジ部の整形を行う(S911)。エッジ部の整形とは、方向軸のX軸またはY軸と平行ではないエッジ部の辺を、X軸またはY軸に平行な線に変更することである。エッジ部の整形処理が完了したときは、次の簡略区間の処理に移る。これを繰り返して、全ての簡略区間に対し処理を行ったとき、直線化処理は終了となる。
次に、凸部および凹部の簡略化について説明する。図17は、直線化における凸部の簡略化について説明する図である。ここでは、図17(A)に示された、空間Aと空間Cとに隣接する、頂点(9)と頂点(20)を区間端とする簡略区間を簡略化する。
凸部は、簡略区間の始端から終端までを辿るときに、簡略区間上にある頂点において、時計回り(CW:Clockwise)の向きに曲がる頂点が2つ以上連続し、かつ、反時計回り(CCW:Counter Clockwise)の向きに曲がる頂点に挟まれる部分と定義する。図16(B)に示す通り、簡略区間上には、区間端を除くと、(10)から(19)までの頂点が存在する。各頂点それぞれに、簡略区間の始端(9)から終端(20)までを辿るときの当該頂点を曲がる向きの矢印が示されている。ここで、頂点(11)の矢印の向きはCCWである。頂点(12)および(13)の矢印の向きはCWである。そして、頂点(14)の矢印の向きはCCWである。ゆえに、CWの向きに曲がる頂点(12)と(13)が連続し、かつ頂点(12)と(13)は、CWの向きに曲がる頂点(11)と(14)に挟まれている。したがって、上記凸部の定義により、頂点(11)から(14)までの部分(図16(C)の斜線部分)は凸部となる。このようにして、形状簡略部44は、簡略区間上の凸部を認識し、簡略化処理を行う。
簡略化は、凸部の始端と終端を結ぶ線を生成し、始端と終端の間に存在する頂点を削除することとする。凸部の始端は、簡略区間の始端に最も近い頂点であり、凸部の始端は、簡略区間の終端に最も近い頂点である。先ほどの例では、頂点(11)と(14)が結ばれ、頂点(12)と(13)が削除される。これにより、図16(D)に示す形状となる。形状簡略部44は、簡略化後、再度、凸部があるかを確認する。そうすると、頂点(10)から頂点(16)までの部分が新たな凸部であると認識できる。先ほどと同様、凹部の始端(10)から終端(16)を線で結び、頂点(11)、(14)、(15)を削除する。これにより、図16(E)に示す形状となる。この形状は、頂点18は突出しているものの、凸部の定義に合致しないため、凸部ではない。凸部がなくなったため、凸部の簡略化の処理が終了する。なお、頂点18のような突出部分、または、逆に空間内部に切り込んだ形状である埋没部分をエッジ部と称する。
また、形状簡略部44は、加工後、簡略化区間の加工区間情報を更新する。凸部を簡略した際は、簡略化した凸部の面積と、今までの簡略化処理により簡略化された凸部の総面積d凸 sjを算出する。
図18は、直線化における凹部の簡略化について説明する図である。図18(A)は、図17(B)と同じである。凹部は、簡略区間の始端から終端までを辿るときに、簡略区間上にある頂点において、CCWの向きに曲がる頂点が2つ以上連続し、かつ、CWの向きに曲がる頂点に挟まれる部分と定義する。ゆえに、図18(B)、(C)、および(D)に示す灰色の部分が凹部である。凹部の簡略化は、対象が凹部なこと以外は、凸部の簡略化と同じである。形状簡略部44は、簡略区間上の凹部を認識し、簡略化処理を繰り返すことで、図18(E)に示す簡略結果を得る。図17(E)と図18(E)から分かるように、凸部の簡略化結果と凹部の簡略化結果は異なる。ゆえに、前述の通り、凸部の簡略化と凹部の簡略化のいずれかを最初に行うかで処理結果が異なる。
次にエッジ部の簡略化について説明する。図16(E)のように、凸部または凹部の簡略化を行っても、突出または埋没部分であるエッジ部分が残る場合がある。このような場合に対応するため、形状簡略部44は、予め定められた方法にて、エッジ部を簡略化する。
なお、ここでは、エッジ部を凹エッジと凸エッジの2つとする。凹エッジは、簡略区間の始端から終端までを辿るときに、簡略区間上にある頂点において、CCWの向きに曲がる頂点が、CWの向きに曲がる頂点に挟まれる部分と定義する。凸エッジは、簡略区間上にある頂点において、CWの向きに曲がる頂点が、CCWの向きに曲がる頂点に挟まれる部分と定義する。
簡略化の方法は、簡略化すべき部分の形状に応じ、予め定めておけばよい。図19は、凹エッジの簡略化について説明する図である。ここでは、case1から4までの4つのパタンが示されている。なお、これらのパタンは一例であり、これらのパタンに限られるものではない。なお、図19では、凹エッジが表されているが、凸エッジでもこれらのパタンは同じである。
図19(A)に示すcase1は、エッジ部に隣接する2辺を延長した際の交点が、当該2辺の線上に存在しないときに、2辺を交点まで延長させることにより、エッジ部を簡略化するパタンである。図19(B)に示すcase2は、エッジ部に隣接する2辺を延長した際の交点が、当該2辺のいずれかの線上に存在するときに、当該2辺の一方をその交点まで延長させることにより、エッジ部を簡略化するパタンである。図19(C)に示すcase3は、エッジ部に隣接する2辺を延長しても交点がない場合に、当該2辺のうちの1つを延長した線がエッジ部の辺に接触するときに、その延長した線により、エッジ部を簡略化するパタンである。図19(D)に示すcase4では、エッジ部に隣接する2辺の1つを延長した場合、他の1辺と重なる場合に、その延長線により、エッジ部を簡略化するパタンである。
また、エッジ部の簡略化では、他の空間との整合性も考慮する。例えば、簡略化した形状が、他の空間との関係により、不適切な場合もあり得る。図19(E)のcase0は、不適切な場合の一例である。空間Xと空間Yとの隣接辺のエッジ部をcase4で簡略化したものである。しかし、このように簡略化すると、空間Yと空間Zの隣接辺を分断してしまい、整合性がとれなくなる。このように、隣接辺との整合性を考慮して、簡略化したエッジ部を元に戻す場合もある。
また、隣接する空間がある場合において、片方の空間の簡略化処理結果と、他方の空間の簡略化処理結果とが必ずしも一致するとは限らない。そこで、双方簡略化を行う。図20は、双方簡略化について説明する図である。図20(A)は、空間Aに凸部優先処理にて簡略化が行われた結果と、空間Cに凹部優先処理にて簡略化が行われた結果を示す。空間Aと空間Cの隣接辺には、エッジ部分がある。図20(B)は、空間Aおよび空間Cに凹エッジ簡略化処理が行われた結果を示す。凹エッジ簡略化処理のため、空間A側の突出部分は削除されていない。一方、空間C側の埋没部分は削除されている。空間Aと空間Cを接合すると、図20(C)で示すように重複部分ができる。双方簡略化処理では、この重複部分を削除する。図20(D)は、双方簡略化処理後を示す。これにより、簡略化されつつ空間の整合性が取れた形状となる。
図21は、エッジ部の簡略化のフローチャートである。形状簡略部44は、始めに凹エッジの簡略化を行う(S1001)。そして、隣接空間の有無を確認し、隣接空間がある場合(S1002のYES)は、当該隣接空間との双方簡略化を行う。双方簡略化では、エッジ部の簡略化の前に行われた凸部と凹部の簡略化がいずれかが先に行われたかによって処理が異なる。凹部を先に簡略化していた場合(S1003のNO)は、隣接空間は凸部を先に簡略化した結果と比較する(S1004)。逆に凸部を先に簡略化していた(S1003のYES)は、隣接空間は凹部を先に簡略化した結果と比較する(S1005)。
隣接空間との比較(S1004,S1005)の結果、重複部分がない場合(S1006のNO)は、今回の処理で簡略化された部分があるとき(S1010のYES)のみ、加工区間情報を更新する(S1011)。
隣接空間との比較(S1004,S1005)の結果、重複部分がある場合(S1006のYES)は、隣接空間を分断する簡略化結果がないか確認し、分断する簡略化結果があるとき(S1007のNO)は、エッジの簡略化を元に戻す。隣接空間を分断する部分がないとき(S1007のYES)または簡略化を元に戻した後(S1008)は、隣接する空間の重複部分を削除する(S1009)。そして、今回の処理で簡略化された部分がある場合(S1010のYES)は、加工区間情報を更新する(S1011)。
隣接空間がない場合(S1002のNO)は、凸エッジの簡略化を行う(S1012)。隣接空間がある場合は、当該隣接空間との調整により、凸エッジがなくなるため、凸エッジの簡略化を行う必要はない。しかし、隣接空間がない場合は、凸エッジの簡略化を行う必要がある。凸エッジの簡略化処理(S1012)後、簡略化された凹エッジまたは凸エッジがあった場合(S1010のYES)は、簡略区間の加工区間情報を更新する(S1011)。以上が、エッジ部の簡略化のフローである。
次に、凹エッジの簡略化と凸エッジの簡略化について説明する。凹エッジの簡略化と凸エッジの簡略化は、簡略化の対象が凸部であるか凹部であるかの違いしかない。そのため、ここでは、凹エッジの簡略化について説明し、凸部簡略化については省略する。
図22は、凹エッジの簡略化のフローチャートである。形状簡略部44は、まず凹エッジを取得する(S1101)。凹エッジを取得できなかった場合(S1102のNO)は、処理は終了する。凹エッジを取得できた場合(S1102のYES)は、取得した凹エッジそれぞれに対し、処理を行う。
まず、凹エッジの両端の辺それぞれと隣接する2辺を連続区間方向に延長し、延長線を生成する(S1103)。2つの延長線の交点がある場合(S1104のYES)は、当該交点が凹エッジ領域内であるかを確認する。凹エッジ領域内でない場合(S1105のNO)は、次の凹エッジの処理に移る。凹エッジ領域内であった場合(S1105のYES)は、凹エッジの頂点を取得した交点に変更して簡略化する(S1106)。そして、次の凹エッジの処理に移る。この簡略化は図19で示したCase1に該当する。
2つの延長線の交点がない場合(S1104のNO)は、他方の隣接辺との交点があるかを確認する。当該交点がある場合(S1107のYES)は、凹エッジの頂点を取得した交点に変更して簡略化する(S1106)。そして、次の凹エッジの処理に移る。この簡略化は図19で示したCase2に該当する。当該交点がない場合(S1107のNO)は、凹エッジの辺と交点があることを確認する。
凹エッジの辺との交点がある場合(S1108のYES)は、凹エッジの頂点を凹エッジの辺との交点に変更して簡略化して(S1111)、次の凹エッジの処理に移る。この簡略化は図19で示したCase3に該当する。凹エッジの辺との交点がない場合は、先ほど生成した延長線同士が重なるかを確認する(S1110)。重なる場合(S1110のYES)は、凹エッジの頂点を削除し、その延長線により凹エッジを簡略化して(S1111)、次の凹エッジの処理に移る。この簡略化は図19で示したCase4に該当する。重ならない場合(S1110のNO)は、簡略化せずに、次の凹エッジの処理に移る。
取得した全ての凹エッジに対する処理が完了すると、本フローは終了する。
次に、エッジ部の整形について説明する。形状簡略部44は、方向軸のX軸またはY軸と平行ではないエッジ部の辺を、X軸またはY軸に平行な線に変更する。図23は、エッジ部の整形について説明する図である。図23(A)は、整形前のエッジ部である。黒の丸はエッジ部の3つの頂点のうちの2つである。この2つの頂点間の辺は、方向軸のX軸とY軸いずれにも平行ではないため、形状簡略部44は、この辺に対し、整形処理を行う。但し、整形処理を行うのは、対象のエッジ部の辺と接続されている2辺が、方向軸と平行である場合に限られる。なお、この方法の場合、簡略面積に変動はないため、簡略形状を決定した後でも行うことができる。
形状簡略部44は、対象のエッジ部の辺と接続されている2辺がともに、方向軸のX軸またはY軸と平行である場合に、対象のエッジ部の辺の中点を通り、当該2辺の延長線との垂線を生成する。そして、当該垂線が2辺の延長線と交差する交点(図23(A)に示す白ぬきの丸)を取得する。そして、取得した2つの交点を接続した線と、各交点まで延長した2辺の延長線とにより、対象のエッジ部の辺を置き換える。図(B)が整形後のエッジ部である。これにより、方向軸のX軸またはY軸と平行でない基準面の形状を減らすことができる。
加工程度評価部45は、簡略加工の結果が形状加工の制約範囲内であるかを判定する。具体的には、形状簡略部44による直線化において、算出された凸部優先処理による加工結果と凹部優先処理による加工結果を比較し、簡略形状を決定する。但し、凸部優先処理による加工結果と凹部優先処理による加工結果が、簡略区間設定部43が算出した簡略面積閾値を超えている可能性がある。そこで、加工程度評価部45は、加工結果が簡略面積閾値を超えているかを確認し、超えている場合は、加工ステップを1つずつ遡り、遡った加工ステップにおける加工処理の結果が、簡略面積閾値を超えているかを確認する。これにより、加工処理の結果が簡略面積閾値未満である直近の加工ステップと、その加工ステップにおける加工結果を認識することができる。そして、簡略面積閾値未満である凸部優先処理による加工結果と、簡略面積閾値未満である凹部優先処理による加工結果を比較して、簡略形状を決定する。
加工程度評価部45は、加工結果に対する評価値を算出し、当該評価値に基づき、簡略形状を決定する。評価値は、利用目的に応じて任意に定めてよい。例えば、基本軸に基づき、評価値を算出する方法が考えられる。平面の基本軸の方向(ベクトル)と簡略区間の方向(ベクトル)との差分(ずれ)を求め、評価値を差分の逆数にするなどして、差分が小さいほど、評価値が高いようにしてもよい。また、基本軸が複数ある場合は、各基本軸との簡略区間との各差分を算出し、差分の絶対値の総和が小さいほど、評価値が高くなるようにしてもよい。また、簡略化によって加除された面積が小さいほど、評価値が高いようにしてもよい。または、簡略区間に存在する頂点の数が小さいほど、評価値が高いようにしてもよい。また、評価値を算出する方法は1つでもよいし、複数の方法を組み合わせてもよい。複数の方法を組み合わせる場合は、方法ごとに重み付けを行ってもよく、重みは任意に定めてよい。
なお、加工程度評価部45が算出した評価値は、加工パラメタ設定部3の抽出条件に用いられる類似度として利用してもよい。先ほどの例で説明した基本軸の方向との差分を評価値とした場合、この評価値を類似度として利用すれば、基本軸の方向との一定の差分を持ったオブジェクトを抽出することができる。
図24は、簡略形状の決定のフローチャートである。加工程度評価部45は、簡略区間の加工区間情報すべてを取得する(S1201)。そして、凸部優先処理での最終加工ステップの加工区間情報を評価対象に設定する(S1202)。凸部優先処理の最終加工ステップの加工区間情報には、最終加工ステップにおける簡略面積d凸優先 sjと、簡略区間設定部43が算出した各簡略区間の簡略面積閾値dlimit sjが含まれている。加工程度評価部45は、d凸優先 sjの絶対値と、dlimit sj絶対値とを比較する(S1203)。|d凸優先 sj|>|dlimit sj|の場合(S1203のYES)は、この加工ステップの復元フラグをtrueに更新する(S1204)。これにより、この加工ステップにおいて簡略された部位を復元させることができる。そして、評価対象を1つ前の加工ステップに更新し(S1205)、1つ前の加工ステップにて、簡略面積が簡略面積閾値を超えているかを確認する(S1203)。これを繰り返すことで、簡略面積が簡略面積閾値を超えていない加工ステップを把握することができる。簡略面積閾値を超えていない場合は、当該加工ステップにおける加工結果に基づき、評価値を算出する(S1206)。
また、加工程度評価部45は、凹部優先処理での最終加工ステップの加工区間情報を評価対象に設定する(S1207)。凹部優先処理の最終加工ステップの加工区間情報には、最終加工ステップにおける簡略面積d凹優先 sjと、簡略区間設定部43が算出した各簡略区間の簡略面積閾値dlimit sjが含まれている。加工程度評価部45は、d凹優先 sjの絶対値と、dlimit sj絶対値とを比較する(S1208)。|d凸優先 sj|>|dlimit sj|の場合(S1208のYES)は、この加工ステップの復元フラグをtrueに更新する(S1209)。そして、評価対象を1つ前の加工ステップに更新し(S1210)、1つ前の加工ステップにて、簡略面積が簡略面積閾値を超えているかを確認する(S1208)。これを繰り返すことで、簡略面積が簡略面積閾値を超えていない加工ステップを把握することができる。簡略面積閾値を超えていない場合は、当該加工ステップにおける加工結果に基づき、評価値を算出する(S1207)。
S1202からS1206までの処理と、S1207からS1211までの処理とは、並行して行われてもよいし、いずれかが先に行われてもよい。
簡略面積閾値未満である凸部優先処理による加工結果の評価値と、簡略面積閾値未満である凹部優先処理による加工結果の評価値との両方を算出した後は、加工程度評価部45は、両方の評価値を比較し、いずれかの加工結果を簡略形状と決定する(S1212)。そして、簡略形状に基づき、各簡略区間の加工区間情報を更新する(S1213)。以上で、簡略形状の決定のフローが終了する。
加工区間情報管理部46は、加工区間情報を管理する。算出された加工区間情報を加工結果DBへ格納する。また加工結果DBから加工区間情報の取得を行う。
空間構造加工部5は、指定された加工方法に基づき、加工対象空間(基準面)の分割または集約を行う。分割または集約を行うことにより、加工結果を活用するシミュレーションなどに適した加工結果を生成することができる。
ここでは、分割とは、基準面を複数の分割片に分割することを意味する。また、ここでは、集約とは、複数の基準面を1つに合成することを意味する。分割の方法および集約の方法については後述する。
分割片生成部51は、予め指定された指定要素の種類のオブジェクトの位置を分割基準として、加工対象である基準面を分割する線を生成する。そして、分割線で囲まれた領域、または、基準面の形状の輪郭線と分割線で囲まれた領域を、分割片とする。
分割基準となる指定要素は、構造壁、柱などの建物の構造要素でもよいし、設備機器等の建物の設備要素でもよい。分割基準は、加工パラメタ設定部2の入力画面に表示された「分割基準」から指定することができる。分割方法は、予め定めておいてもよいし、加工パラメタ設定部2から選択できるようにしてもよいし、選択された分割基準に基づき、複数の分割方法から一意に決定されてもよい。
分割片再構成部52は、指定された加工方法と加工制約に基づき、分割片を再構成する。再構成とは、複数の分割片を合成することを意味する。
分割片情報管理部53は、構造加工の結果を、分割片情報として、管理する。具体的には、加工結果DBへの分割片情報の格納および加工結果DBからの分割片情報の取得を行う。分割片情報は、分割片の生成時に、分割片生成部51により生成されるものである。分割片情報には、分割片に対応付けられるID、当該分割片が生成された加工ステップ数、分割片に含まれる頂点のIDと位置座標、分割片が合成された合成片のリストである合成片IDリスト、隣接する分割片のリストである隣接片IDリスト、元の空間ID、分割片の形状と重なる簡略区間を表す区間IDリストなどが含まれることが考えられる。
なお、分割片情報には、加工ステップごとに、当該加工ステップ時における分割片の情報が含まれる。ゆにえ、分割片情報を参照することにより、最後の加工処理後の分割片の状態のみならず、各加工ステップにおける状態も参照することができる。
分割結果評価部54は、構造加工の結果が複数得られた場合に、指定された定量評価基準に基づき、複数の構造加工の結果に対し、比較評価および順位付けを行う。
図25は、空間構造加工部5の空間構造加工処理の概略フローチャートである。空間構造加工部5は、初めに空間の分割に関する処理を、分割対象である基準面それぞれに対し、行う。空間の分割に関する処理は、分割線の生成(S1301)と、分割片の生成(S1302)と、分割片の再構成(S1303)の3つの処理からなる。分割線の生成と、分割片の生成は、分割片生成部51が行う。分割片の再構成は、分割片再構成部52が行う。
次に、空間構造加工部5は、空間の集約に関する処理を行う。集約は、分割対象以外の基準面を対象に行われる。集約対象がないまたは集約を行わないとする場合(S1304のNO)は、集約処理は省略される。集約対象がある場合(S1304のYES)は、空間構造加工部5は、まず集約対象であって隣接している基準面をグループ化する(S1305)。そして各グループそれぞれに対し、基準面を合成する(S1306)。これらの集約処理は、分割片再構成部52が行う。
次に、分割片を生成する方法について説明する。
(分割片生成方法1)
図26は、分割片の生成方法の一例を示す図である。図26(A)は、空間形状加工部4により形状簡略化された基準面を示す図である。図26(B)は、当該基準面に対し、分割線を引いた図である。図26(C)は、生成された分割片を示す図である。図26(A)に示す基準面は、空間形状加工部4により、外周に接していた柱による凹部が簡略化されたものとする。外周に接している黒色の四角は、簡略化された凹部を示すものであり、便宜上、表示しているものである。ここでは、指定要素を柱として、つまり凹部を基準に、分割線を生成する。
分割片生成部51は、簡略化された柱の辺と重なるような分割線を生成する。図26(B)では、このように生成された分割線を点線で表している。また、分割片生成部51は、簡略化される前に存在した凹部の窪んだ部分の辺(基準面の外周と接しない辺)の中点を通る垂線を生成する。図26(B)では、この垂線は破線で表されている。また、このように生成された分割線のうち、基準面の外周とも他の分割線とも直行しない分割線は削除するものとする。そして、図26(C)示すように、分割線で囲まれた領域、または基準面の形状の輪郭線と分割線で囲まれた領域が、分割片となる。分割片が生成されたとき、分割片生成部51は、分割片情報を生成する。この分割線の生成方法は、先に説明した空間形状加工部4の方向軸取得部42が行う方向軸の取得の方法の1つと同じである。なお、方向軸の取得の方法と異なる方法にて、分割線を生成してもよい。
図27は、分割片の再構成について説明する図である。図27(A)は、図26(C)で示した図と同じであり、分割片を示す。分割片再構成部52は、これらの分割片に対し、合成処理を行う。合成処理は、面積が最小の分割片を、当該分割片に対し基本軸のX軸またはY軸の方向にて隣接する分割片に合成(吸収)させるものである。図27(B)は、X軸方向に隣接する分割片を合成する場合を示す。複数の分割片と接している場合は、合成させる分割片を任意に選んでもよいが、ここでは、面積の大きいほうに合成するものとする。この合成を、合成により新たに生成される分割片面積が予め指定された閾値を超えない限り繰り返す。これにより、一定値以上の面積を有する分割片のみが残る。次に、先ほどの合成処理とは異なる軸方向に隣接する分割片に対し、同様の合成処理を行う。図27(C)は、X軸方向に隣接する分割片を合成した後に、Y軸方向に隣接する分割片を合成する場合を示す。図27(B)では存在した小さな分割片がなくなっていることが分る。図27(C)では、さらに、Y軸方向に分割片を合成させて、より大きい分割片を生成する。図27(D)は、再構成の結果を示す。
なお、方向軸の決定方法で説明した通り、方向軸が複数ある場合には、方向軸ごとに分割片の合成を行う。
なお、X軸またはY軸のいずれかを先に合成するかにより合成の結果は異なる。分割片再構成部52は、このため、X軸を先に行う合成と、Y軸を先に行う合成の両方を行った上で、各合成結果の評価値を算出する。そして、より良い評価値の合成結果を最終結果とする。算出方法は任意に定めてよい。例えば、生成された分割片の数が少ないほうがよい場合は、分割数に基づき、評価値を算出する。また、生成された分割片の大きさが均一のほうがよい場合は、分割片の面積の標準偏差に基づき、評価値を算出する。また、生成された分割片の大きさができるだけ大きいほうがよい場合は、生成された分割片の面積と、予め定められた分割片の面積の上限値との偏差に基づき、評価値を算出する。なお、評価値を算出する方法は1つでもよいし、複数の方法を組み合わせてもよい。複数の方法を組み合わせる場合は、方法ごとに重み付けを行ってもよく、重みは任意に定めてよい。
採用基準および採用基準の値、例えば面積の上限値などの指定は、加工パラメタ設定部2の入力画面に表示された「採用基準」と「最大面積」から指定することができる。
また、分割片再構成部52は、最終結果として採用した再構成による分割片に関する分割片情報と、加工区間情報を更新する。以上により、分割片生成方法1による分割が終了する。
(分割片生成方法2)
指定要素の位置を重心として、ボロノイ境界を生成し、分割する方法について説明する。平面上に複数の母点が存在する場合に、平面上の点がそれらの母点のいずれかに最も近いかに基づき、平面を複数の領域に分割したとき、分割された領域をボロノイ領域と、ボロノイ領域の境界線をボロノイ境界という。この方法は、例えば、加工パラメタ設定部2の入力画面に表示された「分割基準」に、設備機器が指定された場合に、実行されることが考えられる。例えば、空調の室内ユニット、センサ、無線アクセスポイントなどの設備機器の担当範囲の解析を行うためのBIMモデルを生成する場合などで、当該方法が利用されることが考えられる。
図28は、ボロノイ境界により分割片の生成と再構成について説明する図である。図28(A)は、ボロノイ境界による分割片を示す図である。図28(B)は、分割片の再構成を示す図である。図28(C)は、再構成により生成された分割片と、指定要素と非関係の分割片を示す図である。指定要素と非関係の分割片は、先に述べた分割片生成方法1にて、さらに分割してもよい。
分割片生成部51は、基準面上に存在する複数の指定要素(図28(A)に示す黒い四角)を取得し、指定要素を母点として、公知のボロノイ境界の生成手法に基づき、基準面をボロノイ境界により分割する。
図28(B)に示す分割片の再構成では、分割片再構成部52は、指定要素を中心とする、当該指定要素に最も近いボロノイ境界との内接円を、指定要素ごとに生成する。そして、その内接円に対し外接する矩形を生成し、矩形に基づき分割片を再構成する。これにより、図(A)のような不規則な形状をした分割片が、規則的な形状をした分割片に再構成され、より簡略化したBIMモデルとなる。
なお、ここでは、ボロノイ境界との内接円としたが、建物、空間などの状況などを考慮して、内接円とはせずに、円の半径を定めてもよい。例えば、指定要素である設備機器の性能を考慮して、円の半径を定めてもよい。ここでは、このことを性能考慮と称する。また、空間内に存在する人間、熱源、もしくは障害物となる要素の分布密度などを考慮して、円の半径を定めてもよい。ここでは、このことを密度考慮と称する。性能考慮と密度考慮はいずれか一方を行っても、両方を行ってもよい。性能考慮と密度考慮を行うか否かは、加工パラメタ設定部2の入力画面に表示された「状況考慮」から指定することができる。なお、ここでは、性能考慮と密度考慮の例を挙げたが、その他のものを考慮してもよい。
図29は、分割片生成方法2における分割片の再構成のフローチャートである。
分割片再構成部52は、分割片の方向軸を設定するために、分割片の外周の一部が、基準面の外周の一部でもある分割片を取得する(S1401)。そして、取得した分割片の方向軸を、基準面の外周と同じ向きに設定する(S1402)。これは、ボロノイ領域である分割片それぞれの方向軸を設定することが困難であるため、形状加工により方向軸と平行である基準面の外周を利用するためである。外周に接する分割片の方向軸を設定後、外周に接していない分割片の方向軸を、隣接する方向軸の定まった分割片に基づき、決定する。
分割片再構成部52は、方向軸が未設定の分割片(外周に接していない分割片)を取得する(S1403)。未設定の分割片が取得できた場合(S1404のYES)は、取得した分割片のうち、方向軸が設定済みである分割片と隣接する分割片を選択する(S1405)。選択された分割片に対し、隣接の分割片の方向軸に基づき、方向軸を設定する。選択された分割片が、方向軸が設定済みの分割片と1つ隣接している場合は、その隣接している分割片の方向軸と同じに設定する。選択された分割片が、方向軸が設定済みの分割片と複数隣接している場合は、隣接している分割片の各方向軸のベクトルを合成したものを方向軸に設定する(S1406)。
選択された全ての分割片に対し、方向軸を設定した後は、再度、方向軸が未設定の分割片を取得する(S1403)。これを繰り返すことにより、基準面内の全ての分割片の方向軸が設定される。未設定の分割片がなくなった場合(S1404のNO)は、全ての分割片に対し、状況考慮に依存する処理を行う。状況考慮を行わない場合は、指定要素の位置から最短の分割線までの距離を半径とする円を生成する(S1407)。そして、生成した円に外接する、方向軸と同じ向きの矩形を生成する(S1408)。この矩形を分割片とし、分割片が重なる部分を更新し、分割片情報を追加する(S1409)。分割片が重なる部分は、分割片との交点同士を接続する線を生成して、分割すればよい。
全ての分割片に対し処理を行った後は、分割片でない余白領域を取得する(S1410)。そして、取得した余白領域それぞれにおいて、指定要素と非関係の分割片を生成する(S1411)。この分割は、前述の分割片生成方法1にて行えばよい。
以上の処理が完了したときは、加工区間情報を更新する。以上が、分割片生成方法2の分割片の再構成のフローチャートとなる。
状況考慮に依存する処理において、密度考慮を行う場合について説明する。図30は、密度考慮を行う場合の状況考慮に依存する処理のフローチャートである。密度考慮の場合でも、内接円を生成し(S1501)、内接円に外接する矩形を生成する(S1502)までは同じである。次に、分割片再構成部52は、指定要素を中心に、方向軸のX軸方向と平行な直線およびY軸方向と平行な直線により、ボロノイ領域と内接円と外接矩形とを、4分割する(S1503)。そして、分割されたボロノイ領域を、さらに、外接矩形との重複部分である重複領域と、それ以外の部分である非重複領域に分ける。そして、重複領域ごとに、予め定めた方法に基づき、重複領域および非重複領域の密度係数を算出する(S1504)。そして、算出した密度係数に応じて、4分割された外接矩形を拡大または縮小させた上で、外接矩形を変形させる(S1505)。そして、変形された外接矩形とボロノイ領域との重複部分を新たな分割片とし、分割片情報を更新する(S1506)。
図31は、密度考慮の場合の処理について説明する図である。指定要素を中心に、X軸方向と平行な直線およびY軸方向と平行な直線が、ボロノイ領域と内接円と外接矩形とを、分割している。そして、分割された各ボロノイ領域と外接矩形との重複部分を、灰色で示し、これらを重複領域A1、B1、C1、およびD1とする。そして、分割された各ボロノイ領域において、外接矩形との重複していない部分を、非重複領域A2、B2、C2、およびD2とする。
分割片再構成部52は、各重複領域および各非重複領域の密度Dを求める。密度は、当該領域内に存在する人、計算機といった熱源の分布程度でもよく、1平方メートルあたりに存在する熱源の数または熱量などで表すことが考えられる。また、一定の高さがある障害物の占有程度でもよく、1立方メールあたりに存在する障害物の数または容積などで表すことが考えられる。また熱量などの数値は、平均値、最大値、95%信頼区間の上限値などで表してもよい。
分割片再構成部52は、指定要素からボロノイ境界までの距離が最短である方向に存在する重複領域の密度を1とする。図31では、重複領域A1の密度が1となる。重複領域A1の密度を基準として、各重複領域および各非重複領域の密度係数Cdを算出する。つまり、密度係数Cdは、重複領域または非重複領域の密度を、基準とする重複領域(ここでは重複領域A1)の密度で除算したものである。例えば、重複領域B1の密度係数Cd(B1)は、Cd(B1)=D(B1)/D(A1)となる。
重複領域の密度係数Cdが1以上のときは、内接円の半径Rに、重複領域の密度係数Cdの逆数を積算し、新たな円の半径とする。例えば、重複領域B1の密度係数Cd(B1)≧1のとき、重複領域B1の半径R(B1)を、R(B1)=R×{1/Cd(B1)}とする。また、密度係数Cdが1未満のときは、内接円の半径Rに、非重複領域の密度係数Cdの逆数に1を加算した値を積算し、新たな円の半径とする。例えば、Cd(B1)<1のとき、R(B1)=R×{1+1/Cd(B2)}とする。これにより、図31(B)に示すように、分割された内接円(扇型)がそれぞれ拡大または縮小する。また、扇型の拡大または縮小に応じて、外接矩形の各頂点の位置を移動させる。具体的には、指定要素から外接矩形の頂点までのベクトルに、分母を内接円の半径Rとし、分子を新たな半径とした比率を積算すればよい。
図31(C)は、移動された各頂点による新たな矩形を示す。この変形された新たな矩形とボロノイ領域との重複部分(図31(D)の灰色部分)を新たな分割片とする。また、分割片情報を更新する。
性能考慮を行う場合は、指定要素とされた設備機器の性能、例えば、空調機の制御範囲などにより、内接円の半径を拡大または縮小すればよい。その他の処理は、状況考慮をしない場合と同様である。
性能考慮と密度考慮の両方を行う場合は、先に性能考慮を行った上で、つまり、内接円の半径の拡大または縮小を行った上で、密度考慮を行えばよい。
(分割片生成方法3および4)
この分割片生成方法3および4は、分割片のX軸方向の幅(X軸幅)とY軸方向の幅(Y軸幅)とを調整し、なるべく同じ長さにすることを目的とする。
図32は、分割片生成方法3および4による分割について説明する図である。図32(A)は、図27(D)で示した、分割片生成方法1で分割した分割片である。図32(B)は、分割片生成方法3で分割した場合を示す。図32(C)は、分割片生成方法4で分割した場合を示す。新たな分割線は点線で示されている。
分割片生成方法3は、分割片の最小のX軸幅またはY軸幅に対する、各分割片のX軸幅の比およびY軸幅の比率を求め、そのX軸幅およびY軸幅の比率に基づき、分割片をさらに分割する方法である。図32(A)に示された8つの分割片において、各分割片のX軸幅の比は、およそ、1:1:1:2:2:2:2:2である。各分割片のY軸幅の比は、およそ、1:1:1:1:1:1:1:1である。よって、X軸幅の比率が2である分割片のX軸幅を2等分する。なお、比率は整数とし、小数点以下は切り捨てとする。Y軸幅の比は全て1なので、分割されない。これにより、各分割片をなるべく同じ幅に近づけることができる。
分割片生成方法4は、予め指定されたX軸幅の最大値を、予め指定された単位面積の平方根で除算し、算出された商の整数値にて、各分割片のX軸幅を等分割する。また、予め指定されたY軸幅の最大値を、前述の単位面積の平方根で除算し、算出された商の整数値にて、各分割片のY軸幅を等分割する。単位面積は、1分割片あたりの面積の基準値を意味する。これにより、各分割片をなるべく同一の大きさの正方形、あるいは菱形に近づけることができる。なお、ここでは正方形、あるいは菱形になるよう、単位面積の平方根に基づき、X軸幅とY軸幅を分割したが、分割する単位面積のX軸幅とY軸幅の比率は任意に決定してもよい。
なお、再構成結果を等分割する際に用いられる最大幅と単位面積は、加工パラメタ設定部2の入力画面に表示された「細分方法」から指定することができる。
(集約方法)
次に、集約の方法について説明する。図33は、集約について説明する図である。図33(A)の実線で囲まれた部分は基準面(空間)である。点線は分割線である。灰色で示された基準面は、分割対象に指定されていない基準面であり、白色で示された基準面は、分割対象に指定され、分割片が生成された基準面である。このように、複数の基準面がある場合において、分割対象でない基準面を集約対象として、集約を行う。
分割片再構成部52は、基準面の外周の一部が隣接または共有することにより隣接関係にあると言える基準面を取得し、基準面の外周が最長となるように合成する。隣接する複数の基準面を1グループと考えれば、基準面を分割片とみなすことができる。そして、分割片生成方法1の再構成を行えば、集約を行うことができる。図33(A)では、白色で示された基準面の上側の3つの基準面を1グループに、白色で示された基準面の下側の2つの基準面を別の1グループとすれば、図33(B)のように、集約される。
集約するときは、集約する空間および条件を選択できるようにしてもよい。例えば、未選択の空間のうち隣接するものを合成して1分割片とする隣接Space単位集約、未選択の空間のうち隣接かつ同種用途のものを合成して1分割片とする、隣接・同種Space単位集約といったものが考えられる。集約する条件は、加工パラメタ設定部2の入力画面に表示された「集約方法」から指定することができる。
加工結果成形部6は、加工結果を活用できるように調整した上で、指定のデータ表現に基づき、加工結果を成形する。ここでいう調整とは、形状の復元、BIMモデルが有する属性の追加(BIMモデル化)などが含まれる。図34は、加工結果成形部6の成形処理の概略フローチャートである。加工結果成形部6は、加工対象空間それぞれに対し、加工形状の復元処理を行う(S1601)。また、加工結果である分割片などを3D化する(S1602)。3D化とは、分割片などに対し、高さの情報を付与することである。
全ての加工対象空間に対する処理が終了後、一連の処理により加工または新規作成されたオブジェクトなどに対し、BIMモデルが有する属性を追加する(S1603)。そして、指定された表現形式のデータを生成する(S1604)。
形状復元部61は、加工区間情報に基づき、加工結果を復元する。図35は、形状復元部61の復元処理の結果の一例を示す図である。図35(A)は、復元前の加工結果である分割片を示す。図35(B)は、復元結果の一例である。ここでは、復元する指定要素を柱とし、外周部分の柱のみを復元した場合である。図(C)は、復元結果の他の一例である。図(C)でも、復元する指定要素を柱としたが、内部の柱のみを復元した場合である。このように、指定要素が同じであっても、外周を加工した加工ステップと、内部を加工した加工ステップの情報を、加工区間情報に含めておくことで、復元対象を加工ステップごとに復元することができる。
図36は、復元処理のフローチャートである。本処理は、形状復元部61は、各加工対象空間の各簡略区間に対して行われる。形状復元部61は、簡略区間における最終加工ステップの加工区間情報を取得し(S1701)、復元フラグを確認する(S1702)。復元フラグがtrueである簡略区間には、復元すべき加工情報が含まれる。
復元フラグがtrueでない場合(S1702のNO)は、次の簡略区間に移る。復元フラグがtrueである場合(S1702のYES)は、形状復元部61は、復元フラグがtrueである簡略区間の加工ステップを、最終加工ステップから1つずつ遡る。加工ステップには、予め定めた採番ルールに基づき、識別番号が付与されており、加工ステップの昇順または降順に、加工区間情報をソートすることが可能である。そして、初めて復元フラグがfalseである加工ステップを発見したときは、その加工ステップにおける加工区間情報を取得する(S1703)。この加工ステップによる加工処理が復元する加工処理となる。
加工区間情報には、加工ステップ時点の頂点IDリストが含まれる。形状復元部61は、その頂点IDリストに基づき、対象区間の形状の復元を行う(S1704)。そして、形状復元部61は、復元された簡略区間に係る分割片に関する分割片情報を更新する(S1705)。復元された簡略区間の区間IDを参照し、当該区間IDを有する分割片を抽出すればよい。分割片情報は、その復元する区間と重なる分割片の部分を、復元した形状に合わせて、更新すればよい。全ての加工対象空間の全ての簡略区間に対して処理を行ったならば、復元処理は終了する。
また、形状復元部61は、基準面または分割片の3D化も行う。3D化とは、空間オブジェクト(空間)が有する高さ情報を、当該空間オブジェクトに対応する、加工された基準面または分割片などに継承させることである。空間形状加工部4の基準面取得部41が基準面を生成した際に、基準面を平面として生成したため、基準面および基準面を分割した分割片は、高さ情報を有していない。そのため、形状復元部61は、分割片に対し、高さ情報を付与する。これにより、高さ情報を用いる処理にも、加工結果を利用することができる。
高さには、空間内の高さの最大値もしくは平均値、または空間が存在する階(フロア)自体の高さなど、様々なものが考えられるが、簡略化のために、一律に選択されるものとする。いずれの高さとするかは、加工パラメタ設定部2から取得すればよい。加工パラメタ設定部2の入力画面に表示された「空間高さ」から指定することができる。
以下に、選択する高さとその場合の算出方法を示す。
[1]空間sの最大の高さ Hmax s
(取得例その1)
空間sを構成する全頂点から、高さを表すz座標を取得し、その最大値zmax sから最小値zmin sの差分をHmax sとする。つまり、Hmax s=zmax s−zmin sとする。
(取得例その2)
空間sを構成する要素(オブジェクト)を対象に、構成要素の高さの最大値から最小値の差分をHmax sとする。例えば、天井など、上面における全ての要素の全ての頂点のz座標について、その最大値をzmax s.ceilingとする。また、例えば、壁など、側面における全ての要素の全頂点のz座標について、その最大値をzmax s.wallとする。また、例えば、床など、底面における全ての要素の全頂点のz座標について、その最小値をzmin s.slabとする。このとき、zmax s.ceilingとzmin s.slabとの差分またはzmax s.wallとzmin s.slabとの差分をHmax sとする。つまり、Hmax s=zmax s.ceiling−zmin s.slab、またはHmax s=zmax s.wall−zmin s.slabとなる。
なお、要素の厚みを考慮する場合は、上面については、最大のz座標をもつ要素の属性情報から厚みを取得し、zmax sから引けばよい。底面については、最小のz座標をもつ要素の属性情報から厚みを取得し、zmin sに加えればよい。
[2]空間sの平均高さHave s
例えば、天井など、上面における全ての要素の全ての頂点のz座標について、その平均値をzave s.ceilingとする。または、例えば、床など、底面における全ての要素の全頂点のz座標について、その平均値をzave s.slabとする。つまり、Have s=zave s.ceiling、またはHave s=zave s.slabとなる。
[3]空間sがある階の高さHfloor s
空間sを含む階とその上階を対象とし、空間sを含む階の底面の高さの基準値zbase fと、その上階の底面の高さの基準値zbase f+1との差分とする。つまり、Hfloor s=zbase f+1−zbase fとなる。なお、zbase fとzbase f+1は、階の属性情報から取得すればよい。
BIMモデル生成部62は、形状復元部61により3D化された分割片などに対し、BIMモデルが有する属性の追加などをさらに行い、BIMモデルとして、より利用しやすくする。例えば、平面(床面)であった基準面または分割片などは、形状復元部61により、高さ情報を有することができたが、底面、側面、上面などの立体的(3D)幾何形状に関する属性情報を有していない。ここでは、属性情報(建物属性)の付与と関係情報の付与を、例として、説明する。
(属性情報の付与)
分割片の基となった空間オブジェクトの属性情報を、加工対象抽出部3などから取得し、当該属性情報に含まれる3D幾何形状に関する要素、例えば、底面、側面、上面などの属性情報(建物属性)を付与する。例えば、ある底面に対し、この底面は「床(slab)」であり、その材質は「コンクリート」であるという情報を付与する。
なお、建物要素の種類はBIMモデルの概念体系に準拠する。例えば、IFCで規定された概念体系、gbXMLで規定された概念体系などがある。
加工前と加工後に違いがない要素、または加工前に存在していた要素から加工により派生した要素には、元の属性情報を付与してもよい。また、加工によって新たに生成された要素に対して、新たな属性情報を付与してもよい。例えば、基準面の外周の一部ではない分割片の辺は、実際には存在しないため、BIMモデル上では、仮想上の壁とし、材質の属性を透過や透明としてもよい。また、分割片の辺または面などの平面の形状が有している属性情報または加工結果の形状に基づき、属性情報を推定して、付与してもよい。例えば、形状加工結果が類似(一致および相似を含む)であり、かつ用途も同じ空間を、建物情報DB1または加工結果DB7から取得し、その空間が持つ同要素の属性と同じにしてもよい。
(関係情報の付与)
各要素間の関係に関する関係情報を生成する。この関係には、構造関係、構成関係、および接続関係がある。
構造関係は、建物とその建物の組立部品に関する要素との関係を意味し、いわゆる親子関係を示す木構造の関係である。構造関係は、空間上の位置関係(空間配置)も考慮して定められる。また、建物と、その建物の組立部品に関する要素と、その要素の組み立て部品に関する要素も構造関係にあると言える。
例えば、加工した空間とその空間が存在する階には、構造関係があると言える。また、加工した空間とその空間に存在する要素、例えば、建具、設備、機器などにも、構造関係があると言える。また、例えば、加工した空間と、それを形成する壁と、その壁に付属する窓、ドアなども、一連の構造関係にあると言える。
構成関係は、建物が持つ機能(システム)と、そのための所属部品としての要素、との関係を意味する。構成関係もいわゆる親子関係であるが、空間配置は必ずしも考慮されなくともよい。また、建物が持つ機能(システム)と、そのための所属部品としての要素と、その要素が有する機能のための所属部品としての要素も、構成関係にあると言える。
例えば、ある用途に関する加工された空間と、その用途に必要な要素、例えば、建具、設備、機器などには、構成関係があると言える。
接続関係は、親子関係はないが、空間的に接続されている関係を意味する。例えば、加工した空間と隣接する空間は、親子関係を有していないが隣接しているため、接続関係があると言える。
なお、属性情報などを追加した加工結果を、実際のBIMモデルに変換するときは、既存のBIM対応CADシステムが利用している既存のBIMモデル生成エンジンなどを利用すればよい。
指定形式データ出力部63は、BIMモデル生成部62より生成されたBIM規定の属性情報が付与されたデータを、加工パラメタ設定部2にて指定されたデータ形式に基づき、出力する。データ形式としては、ifc、ifcXMLなどのIFC形式のスキーマ、または、xmlなどのgbXML形式のスキーマが考えられる。
出力形式の指定は、加工パラメタ設定部2の入力画面に表示された「出力形式」から指定することができる。
また、加工した空間の所在場所情報のみを出力してもよい。例えば、機器間の情報通信に用いられるMQTT(MQ Telemetry Transport)のトピックを出力してもよい。トピックとは、通信対象の情報と、その情報の所在を示すデータである。トピックはスラッシュ記号で区切られた階層構造(木構造)で表現され、通信対象の情報の所在、通信対象の情報などを階層構造で表現する。つまり、建物を構成する構成要素の構造関係、構成関係、接続関係といった関係属性をトピックで表現することもできる。例えば、「/場所/建物用途/建物名/階/部屋名/ゾーン名/設備用途/設備名」というように、加工した空間の所在場所を特定できる情報のみを出力してもよい。
加工結果DB7は、加工パラメタ設定部2で設定した加工パラメタ、加工対象抽出部が抽出した加工前の建物情報3、空間形状加工部4の処理結果、空間構造加工部5の処理結果、および加工結果成形部6の処理結果などを格納する。またこの他にも、これまでに説明した各部による加工結果、例えば、加工区間情報、分割片情報も含んでもよい。また、上記以外の情報を格納してもよい。
なお、加工結果DB7は、加工結果を建物情報DB1に送り、建物情報DB1から加工結果を利用できるようにしてもよい。または、加工結果DB7と建物情報DB1とを1つにまとめてもよい。
加工結果出力部8は、ユーザからの入力を受け付けて、加工結果DB7に格納された加工結果を出力する。出力は、加工結果DB7を管理するRDBMSやKey−Valueストア形式のDBMSなどのソフトウェアの機能を利用して、抽出すればよい。出力する形式は任意でよい。例えば、画像として表示してもよいし、ファイルとして保存してもよい。画像として表示するときは、並べて表示しても、重ねて表示してもよい。また、加工の結果が複数得られる場合は、例えば、その複数の結果をリストにて一覧表示させ、選択された結果を描画表示させてもよい。ファイルとして保存するときは、加工結果のデータ形式のままでも、指定されたデータ形式に変更してもよい。
図37は、出力の一例を示す図である。図37では、加工結果を図で、描画エリアに表示している。描画エリアの上には、様々な機能を持たせた複数のボタンが配置されている。これらのボタンを押下することで、出力形式の変更、出力結果が保持する情報の表示、加工パラメタ設定部の起動、当該加工結果に基づくシミュレーションの開始などを実行させるようにしてもよい。
また、図だけではなく、加工に関する情報を表示してもよい。例えば、加工区間情報から得られる、形状加工開始から終了までの加工ステップをリスト表示してもよい。そして、選択された加工ステップ時点の加工結果を描画してもよい。また、選択した加工ステップから形状加工終了の加工ステップまで、描画表示を1ステップずつ自動で切り替えるといったことも考えられる。
以上のように、本発明の実施形態によれば、設備の配置設計、解析評価などにおいて、空間情報の生成の低コスト化、シミュレーションの低コスト化、並びにBIMデータの加工品質の標準化および向上が図れる。また、加工結果の空間情報を、設備の制御にフィードバックすることにより、設備の制御の精度を向上すること、および加工結果の比較により設備の再配置案を獲得することも期待できる。
また、上記に説明した実施形態における各処理は、ソフトウェア(プログラム)によって実現することが可能である。よって、上記に説明した実施形態における空間情報生成装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することが可能である。
図38は、本実施形態に係る空間情報生成装置を実現したハードウェア構成例を示すブロック図である。空間情報生成装置1は、プロセッサ(CPU)901、主記憶装置902、補助記憶装置903、通信装置904、デバイスインタフェース905、入力装置906、出力装置907を備え、これらがバスを介して接続された、コンピュータ装置9として実現できる。
プロセッサ901が、補助記憶装置903からプログラムを読み出して、主記憶装置902に展開して、実行することで、などの機能を実現することができる。
本実施形態の空間情報生成装置は、当該空間情報生成装置で実行されるプログラムをコンピュータ装置に予めインストールすることで実現してもよいし、プログラムをCD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して配布して、コンピュータ装置に適宜インストールすることで実現してもよい。
ネットワークインタフェース904は、通信ネットワークに接続するためのインタフェースである。加工パラメタ設定部2の設定画面および加工結果出力部8からの出力結果は、このネットワークインタフェース904を介して、他の装置に送信されてもよい。ここではネットワークインタフェースを1つのみ示しているが、複数のネットワークインタフェースが搭載されていてもよい。
デバイスインタフェース905は、外部記憶媒体7などの機器に接続するインタフェースである。外部記憶媒体7は、HDD、CD−R、CD−RW、DVD−RAM、DVD−R、SAN(Storage area network)等の任意の記録媒体でよい。建物情報DB1、加工結果DB7などは、外部記憶媒体10としてデバイスインタフェース905に接続されてもよい。また、加工パラメタ設定部2の設定画面を表示する出力する入力装置および加工結果出力部8からの出力結果を出力する出力装置とデバイスインタフェース905に接続されてもよい。
主記憶装置902は、プロセッサ901が実行する命令、および各種データ等を一時的に記憶するメモリ装置であり、DRAM等の揮発性メモリでも、MRAM等の不揮発性メモリでもよい。補助記憶装置903は、プログラムやデータ等を永続的に記憶する記憶装置であり、例えば、HDDまたはSSD等がある。空間情報生成装置が保持するデータは、主記憶装置902、補助記憶装置903または外部記憶媒体7に保存される。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。