IFCファイルとSTEP形式

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


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

◆STEP(Standard for Exchange of Product Model Data)

IFCは、STEP準拠である。 STEPとは、ISO10303s(注)の別称である。 JISではJIS B 3700s にあたる。

(注)「s」はシリーズ、すなわち複数の規格群であることを示す。ISO9000sなどと同じ。ISO10303sには70個もの規格がある。

ISO10303の題名は「Industorial automation systems and integration Product data representation and exchange.」、JISの和訳では「産業用オートメーションシステム及びその結合−製品データの表現及び交換」である。 すなわち、ISO10303は製品データの表現方法を規定したものということができる。

ISO10303の中には「Part21」という規格がある。 これは、ファイルの表現形式を規定した規格である。 我々が実際にSTEPを意識するのは、こうした形式で記述されたファイルを見る時であろう。 そして、IFCファイルは、通常、このPart21形式で表わされる。

◆IFCファイルとPart21

簡単なIFCファイルの内容を下記に示す。(注)

(注)Part21形式のファイルでは、データの区切りは「;」で示される。改行はデータの区切りではない。また「/*」と「*/」で囲まれた部分はコメントである。ちなみに、データの表現形式は「線形リスト」、すなわちカンマ「,」で区切ってカッコ「()」で囲んだものである。

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;
#10=IFCSPACE($,$,$,$,(),$,(),$,(),.INTERNAL.,$,$,0.,0.,0.,0.,0.,0.,0.);
ENDSEC;
END-ISO-10303-21;

Part21形式のファイルは、「ISO-10303-21;」で始まり「END-ISO-10303-21;」で終わる。 この間には、「HEADER;」で始まり「ENDSEC;」で終わるHEADERセクションと、「DATA;」で始まり「ENDSEC;」で終わるDATAセクションが含まれる。

◆HEADERセクション

HEADERセクションでは、データの全体的な情報が記述される。 上記のHEADERセクションからコメント部および不要な空白と改行を取り除くと、下記のようになる。(注)

(注)Part21形式のファイルでは、「'」と「'」で囲まれた部分は文字列である。また「(」と「)」で囲まれた部分は複数のデータを持ちうる。

HEADER;
FILE_DESCRIPTION((''),'2;1');
FILE_NAME('new','2001-03-15T10:26:50+09:00',(''),(''),'ST-DEVELOPER v7','','');
FILE_SCHEMA (('IFC20_LONGFORM'));
ENDSEC;

HEADERセクションには、「FILE_DESCRIPTION」「FILE_NAME」「FILE_SCHEMA」の記述が必須である。 それぞれの項目およびその属性については、下記による。(注)

(注)「ex.」は上記内のもの。英文はISO原文を抜粋したもの。訳文は筆者によるもの。訳文中「()」内は意訳。

FILE_DESCRIPTIONthe version of this part of ISO 10303 used to create the exchange structure as well as its contets
→その内容と同様に交換構造(データ形式)を生成するために使われる、ISO10303のこの部分(Part21)のバージョン
descriptionan informal description of the contents of this structure
→この構造の内容の非公式な記述
implementation_level
→ex.「2;1」
an identification of the required capability of the system to process the data in this exchange structure
→この交換構造の中のデータを処理するために、システムの要求される能力の証明(Part21のバージョンと適合性クラス)
FILE_NAMEhuman readable information about the exchange structure
→交換構造についての、人が読める情報
name
→ex.「new」
used to name this particular instance of an exchange structure
→交換構造のこの特定のインスタンス(このデータ)を名前付けるために使われる(データ名またはファイル名)
time_stamp
→ex.「2001-03-15T10:26:50+09:00」
the date and time specifying when the exchange structure was created
→いつ交換構造が生成されたかを示す日付と時間(データ作成日時、日本の場合は標準時+09:00とする)
authorthe name and mailing adress of the person responsible for creating the exchange structure
→交換構造を生成することに責任のある人(作成者)の名前とメーリングアドレス
organizationthe group or organization with whom the author is associated
→作成者が所属するグループまたは組織
preprocessor_version
→ex.「ST-DEVELOPER v7」
the system used to create the exchange structure, including the system product name and version
→交換構造を生成(元データから変換)するために使われたシステム、システムの製品名とバージョンを含む
originating_systemthe system from which the data in this exchange structure originated
→この交換構造の中のデータ(元データ)が生成されたシステム
authorizationthe name and mailing adress of the person who authorized the sending of the exchange structure
→交換構造の送付を認可した人(承認者)の名前とメーリングアドレス
FILE_SCHEMAidentifies the EXPRESS schemas
→EXPRESSのスキーマを証明する
schema_identifiers
→ex.「IFC20_LONGFORM」
the schemas that specify the entity instances in the data section
→DATAセクションの中のエンティティインスタンス(個々のデータ)を記述するスキーマ

わかりにくい表現もあるが、特に「implementation_level」と「schema_identifiers」が重要と思われる。

◆DATAセクション

DATAセクションには、エンティティインスタンス(個々のデータ)を記述する。 上記のDATAセクションの内容を、下記に再掲する。(注) この例はデータが1つだけであるが、通常は、このようなデータが多数、列記される。

(注)エンティティインスタンスは、「=」の左辺に識別子が、右辺にその内容が記述される。識別子は「#」で始まり数字が続く。また内容は、エンティティ名または「(」で始まる。前者は上位のエンティティが一意に決まるもの、後者はそうでないものである。後者の場合、「()」内に自分とその上位のエンティティが全て記述される。また属性の「$」は省略可能なものである。

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

ここに、「#10」というインスタンスは「IFCSPACE」というエンティティであることが示されている。「IFCSPACE」は、STEPの規定に基づいてユーザー(IAI)が定義したものであり、詳細内容(属性の意味など)はIFCによることになる。

◆STEPの理解

IFCファイルについての解説書をあまり見かけないのは、STEP準拠だからなのだろう。 まずはSTEPを理解しなさい、ということらしい。

STEPは、CALS絡みでは避けて通れないものだが、あまりにも膨大で、どこから手をつければ良いのかなかなか見当がつかない。この例のように、実際のIFCファイルをもとに、必要最低限の部分だけを理解していくのも一つの方法であろう。


参考資料

JIS B 3700-1-1996 産業用・・(中略)・・第1部:概要及び基本原理、日本規格協会
JIS B 3700-11-1996 産業用・・(中略)・・第11部:記述法:EXPRESS言語、日本規格協会
JIS B 3700-21-1996 産業用・・(中略)・・第21部:実装法:交換構造のクリアテキスト符号化、日本規格協会
CADデータ長期保存規約、CADデータ長期保存研究会、初版、2000年5月、(株)カットシステム


目次