Mit dem Modul können ICS Objekte nach IFC-Files - STEP Physical File (SPF) *.ifc - geschrieben werden.
Das Modul basiert auf dem IFC SDK der Open Design Alliance (ODA).
Der Modul wird mit:
|INCL \script\ODAIFCOUT.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map IFCOUT_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
VERSION | o | IFC2x3|IFC4 . IFC Version des
Outputfiles. Default ist IFC4 . |
GEOM_ORIGIN | o | <x>,<y>. Geometrie-Origin zu
dem die Geometrien der Objekte relativ mit einem Offset
geschrieben werden. |
STROKE | o | <real>. Strokewert mit dem
Kreisbögen in Liniensegmente aufgelöst werden. |
STATISTICS | o | ON oder OFF . Default
OFF . Statistik anzeigen ein oder aus. |
Für das Schreiben mit dem Modul können im OUT-Objekt folgende Komponenten gesetzt werden:
Komponente | req/opt | Beschreibung |
OUT.IFC_CLASS(s) | o | IFC Class des Objektes. Ist die Klasse nicht
definiert, wird eine Klasse
|
OUT.IFC_NAME(s) | o | Name des Objektes. |
OUT.IFC_TAG(s) | o | Tag des Objektes. |
OUT.IFC_GEOM(g,li,m) | o | Geometrie des Objektes. (siehe unten) |
OUT.IFC_PROFILE(s) | o |
|
OUT.IFC_GEOM_LENGTH(r) | o | Länge des Objektes. Mit Profil, die Länge des Profiles. |
OUT.IFC_GEOM_WIDTH(r) | o | Breite des Objektes. Mit Profil, die Breite des Profiles. |
OUT.IFC_GEOM_HEIGHT(r) | o | Höhe des Objektes. Mit Profil, die Höhe des Profiles. |
OUT.IFC_GEOM_XSCALE(r) | o | Die Skalierung des Objektes in die x-Richtung. |
OUT.IFC_GEOM_YSCALE(r) | o | Die Skalierung des Objektes in die y-Richtung. |
OUT.IFC_GEOM_ZSCALE(r) | o | Die Skalierung des Objektes in die z-Richtung. |
OUT.IFC_GEOM_XOFFSET(r) | o | Ein Offset des Objektes in die x-Richtung. |
OUT.IFC_GEOM_YOFFSET(r) | o | Ein Offset des Objektes in die y-Richtung. |
OUT.IFC_GEOM_ZOFFSET(r) | o | Ein Offset des Objektes in die z-Richtung. |
OUT.IFC_GEOM_ROTATION(r) | o | Ein Drehwinkel des Objektes. |
OUT.IFC_COLOR(s) | o | R/G/B . Farbe des Objektes. z.B.
125/233/52 |
OUT.IFC_BUILDINGELEMENTPROXYTYPE(s) | o | File mit abolutem oder relativen Pfad mit einem Objekttype zum inkludieren im Output-File. |
OUT.IFC_PROPERTYSETS(li) | o | Liste von Propertysets des Objektes. Jedes Propertyset ist eine Map. |
OUT.*(*) | o | Weitere 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/ |
OUT.IFC_GEOM
OUT.IFC_GEOM
kann folgendes
beinhalten:
Inhalt | Beschreibung | |
OUT.IFC_GEOM (g) | Eine einzelne Geometrie | |
OUT.IFC_GEOM (li of g) | Eine Liste von Geometrien | |
OUT.IFC_GEOM (m) | Eine Map mit den Geometrieattributen wie
IFC_GEOM ,
IFC_GEOM_LENGTH , etc. | |
OUT.IFC_GEOM (li of m) | Eine Liste von Maps mit den Geometrieattributen wie
IFC_GEOM ,
IFC_GEOM_LENGTH , etc. |
Mit einer Liste von Maps können unterschiedliche Geometrien in unterschiedlichen Ausprägungen für ein Objekt geschrieben werden. Zum Beispil bei einer Leitung: die Achse als Linien in einer bestimmten Farbe, das Profil als Körper in einer anderen Farbe.
OUT.IFC_PROPERTYSETS
Beinhaltet eine Liste vom Maps mit den Properiysets.
Jede Map eines Propertysets beinhaltet einen Namen und eine Map mit den einzelnen Properites als Dupel Name/Wert.
Komponente | req/opt | Beschreibung |
<m>.IFC_NAME(s) | r | Name des Propertysets. |
<m>.IFC_PROPERTYSINGLEVALUES(m) | r | Map mit den Propertysinglevalues des Propertysets. Jedes Propertysinglevalue mit Name und Wert in der Map. |
Prozedur | IFCOUT_OPEN ! [s output][] |
Beschreibung | Öffnet das IFC-File <output> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | IFCOUT_WRITE_OBJECT0 ! [][] |
Beschreibung | Schreibt ein Objekt in das
Outputfile. Das OUT-Objekt muss gemäss dem Objektmodell
vorbereitet sein. Die id des Objektes wird in
IFCOUT_VAR.IFC_OBJECT_ID abgelegt.. |
Beispiel |
|
Prozedur | IFCOUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | IFCOUT_SET_DIMENSION2 ! r length, r width |
Beschreibung | Setzt
|
Beispiel | Anwendung mit
Anwendung in einer Rule.
|
Weitere Methoden mit analoger Anwendung:
Prozedur | IFCOUT_SET_HEIGHT1 ! r height |
Prozedur | IFCOUT_SET_ROTATION1 ! r rotation |
Prozedur | IFCOUT_SET_GEOMETRY1 ! g geometry |
Prozedur | IFCOUT_SET_SCALE3 ! r xscale, r yscale, z zscale |
Prozedur | IFCOUT_SET_OFFSET3 ! r xoffset, r yoffset, z zoffset |
Prozedur | IFCOUT_SET_COLOR1 ! s rgb-color |
Prozedur | IFCOUT_SET_PROFILE1 ! s profile |
Prozedur | IFCOUT_SET_IFCBUILDINGELEMENTPROXYTYPE1 ! s ifc-file |
Weitere Methoden zur Anwendung in Scripts.
Prozedur | IFCOUT_WRITE_CLASS ! [m *o] [i id] |
Beschreibung | Schreibt ein Objekt. Das Objekt
muss enstprechend dem Objektmodell im |
Beispiel |
|
Prozedur | IFCOUT_WRITE_IFCRELAGGREGATES ! [s RelatingObject, s RelatedObjects] [] |
Beschreibung | Schreibt ein Objekt der Klasse
|
Beispiel |
|
Prozedur | IFCOUT_WRITE_IFCPROPERTYSET ! [s RelatedObjects] [] |
Beschreibung | Schreibt zu Objekte
Propertysets der Klasse |
Beispiel |
|
Beispiel ohne Datenbankanbindung.
! Diese ICS Konfiguration kopiert einige von il2in.mod ! gelesenen Objekte mit odaifcout.mod in eine ifc-Datei. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE MESSAGE => 'Enter INTERLIS Input File' FILE_FILTER => xtf FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => FILE MESSAGE => 'Enter IFC Output File' FILE_FILTER => ifc FILE_EXISTS => FALSE OPT => output END_MAP MAP IL2IN_PARAM LOG_TABLE => ON TRACE => OFF STATISTICS => ON VALUE_CHECK => OFF MODELS => XTF MODEL_NAME => OFF FORCE_COMPILE => OFF END_MAP MAP IFCOUT_PARAM STATISTICS => ON END_MAP MAP INPUT_SOURCES I1 => IL2IN,OPT.input END_MAP MAP INOUT I1 => IN.CLASS I1,LKPunkt => P,CIRCLE,D,1.0,1.0,H,1.0,G,IN.SymbolPos,IFCOUT_WRITE_OBJECT0 I1,LKLinie => D,1.0,1.0,H,1.0,G,IN.Linie,IFCOUT_WRITE_OBJECT0 I1,LKFlaeche => H,1.0,G,IN.Flaeche,IFCOUT_WRITE_OBJECT0 I1,* => OFF END_MAP MAP MACRO P => IFCOUT_SET_PROFILE1 D => IFCOUT_SET_DIMENSION2 H => IFCOUT_SET_HEIGHT1 G => IFCOUT_SET_GEOMETRY1 END_MAP |INCL \script\il2in.mod |INCL \script\odaifcout.mod |INCL \script\run1.prg