IFCファイルを作る/(1)最初の一歩、最も簡単なIFCファイルを作る

2001年3月15日作成、2024年1月1日変更
三木(作成時、IAI設備FM分科会に所属)


(注)利用したIFCのバージョンは2.0。以降のバージョンでは差異がある。

◆IFCファイルを作る

IFCの理解を深めるには、実際にIFCのデータを作るのが早道かもしれない。 IFCのデータを作成するには、IFCサーバーコンポーネント(SECOM足達氏作成のフリーソフト)を利用すると良い。 IFCサーバーコンポーネントは、IFCを扱う各種のオブジェクトを生成し、データの設定、取得を行なう手段を提供する。

'【VBScriptのソース】
'ScriptEngine MajorVersion : 5
'IfcSvr Version : 1.0.0.7
'/// IFCサーバーオブジェクトを生成 ///
Dim objIFCsvr
Set objIFCsvr = CreateObject("IFCsvr.R200")
If IsObject(objIFCsvr) = TRUE Then
' 処理[1]
  Set objIFCsvr = Nothing
End If

◆最も簡単なIFCファイルを作る

まずは、最も簡単なIFCファイルを作ってみる。 「NewDesign()」メソッドを使ってデザインオブジェクトを作り、「save」メソッドを使ってこれをファイルに保存する。

'/// デザインオブジェクトを新規生成 ///
'[1]に入れる
Dim objDesign
Dim txt_path,txt_file
txt_path = "C:\Program Files\IFCsvrR200\sample\" '適当なパス名
txt_file = "new.ifc" '適当なファイル名
Set objDesign = objIFCsvr.NewDesign(txt_path & txt_file)
If IsObject(objDesign) = TRUE Then
' 処理[2]
  Set objDesign = Nothing
End If

'/// ファイルへ保存 ///
'[2]に入れる
objDesign.save()

これにより、以下のようなファイルが作成される。 おそらくは、これが最も簡単なIFCファイルであろう。

ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
 * from STEP Tools, Inc. (www.steptools.com)
 */

FILE_DESCRIPTION(
/* description */ (''),
/* implementation_level */ '2;1');

FILE_NAME(
/* name */ 'new',
/* time_stamp */ '2001-03-15T10:26:50+09:00',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v7',
/* originating_system */ '',
/* authorisation */ '');

FILE_SCHEMA (('IFC20_LONGFORM'));
ENDSEC;

DATA;
ENDSEC;
END-ISO-10303-21;

◆IFCファイルからデータを取得する

作成されたファイルからはデータを取得することができる。 「OpenDesign()」メソッドを使ってファイルを開き、例えば「Name」プロパティを取得してみる。

'/// 既存ファイルを開きデザインオブジェクトを生成 ///
'[1]に入れる
Dim objDesign
Dim txt_path,txt_file
txt_path = "C:\Program Files\IFCsvrR200\sample\"
txt_file = "new.ifc"
Set objDesign = objIFCsvr.OpenDesign(txt_path & txt_file)
If IsObject(objDesign) = TRUE Then
' 処理[3]
  Set objDesign = Nothing
End If
'/// デザインオブジェクトの「Name」プロパティを取得 ///
'[3]に入れる
MsgBox objDesign.Name

「Name」プロパティは、IFCファイルの「FILE_NAME」部の「/* name */・・・」に格納されている名前(ファイル名)である。 実行結果は以下のようになる。

「Name」プロパティ

デザインオブジェクトのその他のプロパティも、同様の方法で取得できる。


目次 /