IFCファイルを作る/(2)IFCファイルに情報を追加する

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


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

◆IFCファイルにデータを追加する

IFCファイルの主要部分は「DATA」セクションである。 ここに個々の部材、例えば部屋、壁、柱、配管等々が定義される。 部材のデータを追加するには「Add」メソッドを使ってエンティティ(実体)オブジェクトを生成し、上書き保存する。 例えば「IfcSpace」(部屋)を追加してみる。

'/// 部屋のエンティティを追加 ///
'[2]または[3]に入れる
Dim objEntity
Set objEntity = objDesign.Add("IfcSpace")
If IsObject(objEntity) = TRUE Then
' 処理[4]
  objDesign.save()
  Set objEntity = Nothing
End If

これにより、DATAセクションに、以下のデータが追加される。

DATA;
#10=IFCSPACE($,$,$,$,(),$,(),$,(),.INTERNAL.,$,$,0.,0.,0.,0.,0.,0.,0.);
ENDSEC;

さらに、これに部屋名を設定してみる。追加したエンティティオブジェクトのアトリビュート(属性)オブジェクトを取得し、「SpaceName」に部屋名として例えば「"Office Room"」を設定する。

'/// 部屋のアトリビュートの集合を取得 ///
'[4]に入れる
Dim objAttributes
Set objAttributes = objEntity.Attributes
If IsObject(objAttributes) = TRUE Then
' 処理[5]
  Set objAttributes = Nothing
End If
'/// 部屋名のアトリビュートを取得 ///
'[5]に入れる
Dim objAttribute
Set objAttribute = objAttributes.Item("SpaceName")
If IsObject(objAttribute) = TRUE Then
' 処理[6]
  Set objAttribute = Nothing
End If
'/// 部屋名を設定 ///
'[6]に入れる
objAttribute.Value = "Office Room"

これにより、DATAセクションは、以下のようになる。

DATA;
#10=IFCSPACE($,$,$,$,(),$,(),$,(),.INTERNAL.,$,'Office Room',0.,0.,0.,0.,0.,0.,0.);
ENDSEC;

同様に、例えば部屋番号(ID)は「SpaceReference」で、部屋面積は「calcTotalArea」で、部屋容積は「calcTotalVolume」で設定できる。番号を「"R1"」、面積を「100.0」、容積を「250.0」に設定すると、DATAセクションは、以下のようになる。

DATA;
#10=IFCSPACE($,$,$,$,(),$,(),$,(),.INTERNAL.,'R1','Office Room',0.,100.,250.,0.,0.,0.,0.);
ENDSEC;


目次 / /