10. Modul IFCIN - Industry Foundation Classes IFC lesen

10.1. Allgemeines

Mit dem Modul können Objekte aus IFC-Files - STEP Physical File (SPF) *.ifc - gelesen werden.

Das Modul basiert auf dem IFC SDK der Open Design Alliance (ODA).

Der Modul wird mit:

|INCL \script\odaifcin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

10.2. Parametermap IFCIN_PARAM

Folgende Parameter können in der Map IFCIN_PARAM Parameter für den Modul gesetzt werden:

Parameterreq/optBeschreibung
STATISTICSoON oder OFF. Default OFF. Statistik anzeigen.

10.3. Objektmodell

Allgemeine Komponenten in jedem IN-Objekt
Komponentereq/optBeschreibung
IN.IFC_ID(i) r

IFC ID des Objektes.

IN.IFC_CLASS(s)rIFC Class Objektes.
IN.IFC_NAME(s) o

Name des Objektes

IN.IFC_GEOM(g) o

Geometrie des Objektes falls vorhanden.

IN.IFC_PROPERYSETS(li)oPropertysets des Objektes falls vorhanden.
IN.*(*)oWeitere Attribute zur IFC-Klasse, wie diese in der Beschreibung der IFC Klassen aufgeführt sind. Siehe zum Beispiel https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Listenelemente für OUT.IFC_PROPERTYSETS

Beinhaltet eine Liste vom Maps mit den Propertiysets.

Jede Map eines Propertysets beinhaltet einen Namen und eine Liste mit den einzelnen Propertysinglevalues.

Komponentereq/optBeschreibung
<m>.IFC_ID(i) r

IFC ID des Propertysets.

<m>.IFC_CLASS(s)rIFC Class des Propertysets. Immer IFCPROPERTYSET .
<m>.IFC_NAME(s)rName des Propertysets.
<m>.IFC_PROPERTYSINGLEVALUES(li)rListe mit Maps mit den Propertysinglevalues des Propertysets. Jeder Propertysinglevalue mit Name und Wert in der Map.
<m>.*(*)oWeitere Attribute zur IFC-Klasse, wie diese in der Beschreibung der IFC KLassen aufgeführt sind. Siehe zum Beispiel https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Listenelemente für OUT.IFC_PROPERTYSETS.IFC_PROPERTYSINGLEVALUES

Beinhaltet eine Liste vom Maps mit den Propertiysinglevalues.

Jede Map eines Propertysinglevalues beinhaltet einen Namen mit Wert.

Komponentereq/optBeschreibung
<m>.IFC_ID(i) r

IFC ID des Propertysinglevalue.

<m>.IFC_CLASS(s)rIFC Class des Propertysinglevalue. Immer IFCPROPERTYSINGLEVALUE .
<m>.IFC_NAME(s)rName des Propertysinglevalue.
<m>.IFC_VALUE(*)rWert des Propertysinglevalue.
<m>.*(*)oWeitere Attribute zur IFC-Klasse, wie diese in der Beschreibung der IFC KLassen aufgeführt sind. Siehe zum Beispiel https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/

10.4. Exportierte Prozeduren und Methoden

ProzedurIFCIN_OPEN ! [s input][]
BeschreibungÖffnet das IFC-File <input> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
'c:\temp\test.ifc' IFCIN_OPEN
ProzedurIFCIN_READ_OBJECT ! [][b state]
Beschreibung

Liest das nächste IN-Objekt aus dem aktuellen Inputfile. Falls kein Objekt mehr gelesen werden kann, wird der Status FALSE geliefert. Die Prozedur wird von RUN1 automatisch aufgerufen.

Beispiel
IFCIN_READ_OBJECT [TRUE]
ProzedurIFCIN_CLOSE ! [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
IFCIN_CLOSE
ProzedurIFCIN_DISPLAY_IN0 ! [][]
BeschreibungDisplays das IN-Object mit allen Komponenten und Subkomponenten.
Beispiel
IFCIN_DISPLAY_IN0

10.5. Skriptbeispiel

Beispiel ohne Datenbankanbindung.

! Diese ICS Konfiguration zeigt alle von ifcin.mod
! gelesenen Objekte in der .log Datei an.

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG => FILE
   MESSAGE => 'Enter .ifc Input File'
   FILE_FILTER => ifc
   FILE_EXISTS => TRUE
   OPT => input
END_MAP

MAP IFCIN_PARAM
   STATISTICS     => ON
END_MAP

MAP INPUT_SOURCES
   I1 => IFCIN,OPT.input
END_MAP

MAP INOUT
   I1          => IN.IFC_CLASS
   I1,IFCSPACE => IFCIN_DISPLAY_IN0
   I1,*        => IFCIN_DISPLAY_IN0
END_MAP

MAP MACRO
END_MAP

|INCL \script\odaifcin.mod
|INCL \script\run1.prg