Name
DEFINE_MATERIAL
Syntax
DEFINE_MATERIAL name, typ,
rot, grün, blau[,
streulicht, diffus, spiegelung, transparenz, glanzlicht, abminderung_trans][,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung][,
schraffurindex][, schraffurstift, texturindex] [,] [ADDITIONAL_DATA parametername1 = ausdruckn+1 [..., parameternamem = ausdruckn+m]]
rot, grün, blau[,
streulicht, diffus, spiegelung, transparenz, glanzlicht, abminderung_trans][,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung][,
schraffurindex][, schraffurstift, texturindex] [,] [ADDITIONAL_DATA parametername1 = ausdruckn+1 [..., parameternamem = ausdruckn+m]]
name, Typ Text
0 ≤ typ ≤ 27 (≠8, ≠9, ≠18, ≠19), Typ integer
0 ≤ rot ≤ 1, Typ real
0 ≤ grün ≤ 1, Typ real
0 ≤ blau ≤ 1, Typ real
0 ≤ streulicht ≤ 1, Typ real
0 ≤ diffus ≤ 1, Typ real
0 ≤ spiegelung ≤ 1, Typ real
0 ≤ transparenz ≤ 1, Typ real
0 ≤ glanzlicht ≤ 100, Typ real (nur bei spiegelung>0)
0 ≤ abminderung_trans ≤ 4, Typ real
0 ≤ spiegelung_rot ≤ 1, Typ real
0 ≤ spiegelung_grün ≤ 1, Typ real
0 ≤ spiegelung_blau ≤ 1, Typ real
0 ≤ abstrahlung_rot ≤ 1, Typ real
0 ≤ abstrahlung_grün ≤ 1, Typ real
0 ≤ abstrahlung_blau ≤ 1, Typ real
0 ≤ abstrahlung ≤ 100 (≤ 65.5 nach Handbuch), Typ real
0 ≤ schraffurindex, Typ integer
0 ≤ schraffurstift ≤ 255, Typ integer
0 ≤ texturindex, Typ integer
ausdrucki, Typ real, Wertebereich abhängig von schlüsselworti oder parameternamei
0 ≤ typ ≤ 27 (≠8, ≠9, ≠18, ≠19), Typ integer
0 ≤ rot ≤ 1, Typ real
0 ≤ grün ≤ 1, Typ real
0 ≤ blau ≤ 1, Typ real
0 ≤ streulicht ≤ 1, Typ real
0 ≤ diffus ≤ 1, Typ real
0 ≤ spiegelung ≤ 1, Typ real
0 ≤ transparenz ≤ 1, Typ real
0 ≤ glanzlicht ≤ 100, Typ real (nur bei spiegelung>0)
0 ≤ abminderung_trans ≤ 4, Typ real
0 ≤ spiegelung_rot ≤ 1, Typ real
0 ≤ spiegelung_grün ≤ 1, Typ real
0 ≤ spiegelung_blau ≤ 1, Typ real
0 ≤ abstrahlung_rot ≤ 1, Typ real
0 ≤ abstrahlung_grün ≤ 1, Typ real
0 ≤ abstrahlung_blau ≤ 1, Typ real
0 ≤ abstrahlung ≤ 100 (≤ 65.5 nach Handbuch), Typ real
0 ≤ schraffurindex, Typ integer
0 ≤ schraffurstift ≤ 255, Typ integer
0 ≤ texturindex, Typ integer
ausdrucki, Typ real, Wertebereich abhängig von schlüsselworti oder parameternamei
Definiert einen neuen Materialtyp, der danach unter name verwendbar ist. Je nach gewähltem typ ist eine Vielzahl von beschreibenden Parametern möglich, die den Einstellungen der Materialien im Optionenmenü entsprechen. Siehe Abbildung. Die Wertebereiche der Parameter entsprechen aber nicht denen dieses Dialoges sondern denen hier unter Wertebereiche gelisteten. Farben werden nach ihrem RGB-Anteil in je 3 Parametern angegeben.
Bei den einfacheren Materialtypen werden die nicht spezifizierten Parameter mit konstanten Vorgaben angenommen.
Ist schraffurstift=0 wird der aktuell aktivierte Stift verwendet.
texturindex=0 definiert das Material ohne Textur, schraffurindex=0 analog ohne Schraffur auf der Oberfläche.
Die Materialdefinition ist auf eine Darstellung mit der internen Renderingengine zugeschnitten. Parameter für z.B. die Lightworksengine müssen separat oder z.B. für Artlantis extern (Billboards) definiert und/oder zugewiesen werden. Einige Parameter sind auch nicht mit jeder Grafikengine darstellbar: Z.B. sind mit der Z-Buffer engine oder OpenGL keine Vektorschraffuren und mit OpenGL nicht alle Textureinstellungen und keine Abstrahlung möglich.
Hier eine vollständige Liste aller möglichen Materialtypen in der Reihenfolge ihrer Komplexität:
typ=2: Mattes Material
DEFINE MATERIAL "material_matt" 2, rot, grün, blau
typ=3: Metall
DEFINE MATERIAL "material_Metall" 3, rot, grün, blau
typ=4: Kunststoff
DEFINE MATERIAL "material_Kunststoff" 4, rot, grün, blau
typ=5: Glas
DEFINE MATERIAL "material_Glas" 5, rot, grün, blau
typ=6: Glänzendes Material
DEFINE MATERIAL "material_glänzend" 6, rot, grün, blau
typ=7: Konstantes Material (ab ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant" 7, rot, grün, blau
typ=12: Mattes Material, schraffiert
DEFINE MATERIAL "material_matt_2" 12, rot, grün, blau,
schraffurindex
typ=13: Metall, schraffiert
DEFINE MATERIAL "material_Metall_2" 13, rot, grün, blau,
schraffurindex
typ=14: Kunststoff, schraffiert
DEFINE MATERIAL "material_Kunststoff_2" 14, rot, grün, blau,
schraffurindex
typ=15: Glas, schraffiert
DEFINE MATERIAL "material_Glas_2" 15, rot, grün, blau,
schraffurindex
typ=16: Glänzendes Material, schraffiert
DEFINE MATERIAL "material_glänzend_2" 16, rot, grün, blau,
schraffurindex
typ=17: Konstantes Material, schraffiert (ab ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant_2" 17, rot, grün, blau,
schraffurindex
typ=22: Mattes Material, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_matt_3" 22, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=23: Metall, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_Metall_3" 23, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=24: Kunststoff, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_Kunststoff_3" 24, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=25: Glas, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_Glas_3" 25, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=26: Glänzendes Material, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_glänzend_3" 26, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=27: Konstantes Material, schraffiert + texturiert (ab ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant_3" 27, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=1: Einfaches Material
DEFINE MATERIAL "material_einfach" 1, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans
typ=11: Einfaches Material, schraffiert
DEFINE MATERIAL "material_einfach_2" 11, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans, schraffurindex
typ=21: Einfaches Material, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_einfach_3" 21, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
schraffurindex, schraffurstift, texturindex
typ=0: Allgemeines Material
DEFINE MATERIAL "material_allgemein" 0, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung
typ=10: Allgemeines Material, schraffiert
DEFINE MATERIAL "material_allgemein_2" 10, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung, schraffurindex
typ=20: Individuelles Material (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_allgemein_3" 20, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung,
schraffurindex, schraffurstift, texturindex
Bei den einfacheren Materialtypen werden die nicht spezifizierten Parameter mit konstanten Vorgaben angenommen.
Ist schraffurstift=0 wird der aktuell aktivierte Stift verwendet.
texturindex=0 definiert das Material ohne Textur, schraffurindex=0 analog ohne Schraffur auf der Oberfläche.
Die Materialdefinition ist auf eine Darstellung mit der internen Renderingengine zugeschnitten. Parameter für z.B. die Lightworksengine müssen separat oder z.B. für Artlantis extern (Billboards) definiert und/oder zugewiesen werden. Einige Parameter sind auch nicht mit jeder Grafikengine darstellbar: Z.B. sind mit der Z-Buffer engine oder OpenGL keine Vektorschraffuren und mit OpenGL nicht alle Textureinstellungen und keine Abstrahlung möglich.
Hier eine vollständige Liste aller möglichen Materialtypen in der Reihenfolge ihrer Komplexität:
typ=2: Mattes Material
DEFINE MATERIAL "material_matt" 2, rot, grün, blau
typ=3: Metall
DEFINE MATERIAL "material_Metall" 3, rot, grün, blau
typ=4: Kunststoff
DEFINE MATERIAL "material_Kunststoff" 4, rot, grün, blau
typ=5: Glas
DEFINE MATERIAL "material_Glas" 5, rot, grün, blau
typ=6: Glänzendes Material
DEFINE MATERIAL "material_glänzend" 6, rot, grün, blau
typ=7: Konstantes Material (ab ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant" 7, rot, grün, blau
typ=12: Mattes Material, schraffiert
DEFINE MATERIAL "material_matt_2" 12, rot, grün, blau,
schraffurindex
typ=13: Metall, schraffiert
DEFINE MATERIAL "material_Metall_2" 13, rot, grün, blau,
schraffurindex
typ=14: Kunststoff, schraffiert
DEFINE MATERIAL "material_Kunststoff_2" 14, rot, grün, blau,
schraffurindex
typ=15: Glas, schraffiert
DEFINE MATERIAL "material_Glas_2" 15, rot, grün, blau,
schraffurindex
typ=16: Glänzendes Material, schraffiert
DEFINE MATERIAL "material_glänzend_2" 16, rot, grün, blau,
schraffurindex
typ=17: Konstantes Material, schraffiert (ab ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant_2" 17, rot, grün, blau,
schraffurindex
typ=22: Mattes Material, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_matt_3" 22, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=23: Metall, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_Metall_3" 23, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=24: Kunststoff, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_Kunststoff_3" 24, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=25: Glas, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_Glas_3" 25, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=26: Glänzendes Material, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_glänzend_3" 26, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=27: Konstantes Material, schraffiert + texturiert (ab ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant_3" 27, rot, grün, blau,
schraffurindex, schraffurstift, texturindex
typ=1: Einfaches Material
DEFINE MATERIAL "material_einfach" 1, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans
typ=11: Einfaches Material, schraffiert
DEFINE MATERIAL "material_einfach_2" 11, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans, schraffurindex
typ=21: Einfaches Material, schraffiert + texturiert (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_einfach_3" 21, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
schraffurindex, schraffurstift, texturindex
typ=0: Allgemeines Material
DEFINE MATERIAL "material_allgemein" 0, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung
typ=10: Allgemeines Material, schraffiert
DEFINE MATERIAL "material_allgemein_2" 10, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung, schraffurindex
typ=20: Individuelles Material (ab ArchiCAD 5.0)
DEFINE MATERIAL "material_allgemein_3" 20, rot, grün, blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_grün, spiegelung_blau,
abstrahlung_rot, abstrahlung_grün, abstrahlung_blau,
abstrahlung,
schraffurindex, schraffurstift, texturindex
! Abmessungen Demoblock
a = 1
b = 0.9
c = 0.6
! Definition der Schraffur
DEFINE FILLA "Rechteck" 1+2+4+8+16+32,1+32,1+32,1+32,1+2+4+8+16+32,0,0,0,
! skalierung,winkel,n
a/1, b/0.6, 0, 4,
! Linie 1 - frequenz,richtung,verschiebungX,verschiebungY,m
0.3,0, 0.00, 0.00, 0.00, 2,
0.20, 0.20,
! Linie 2 - frequenz,richtung,verschiebungX,verschiebungY,m
0.4,0, 90.00, 0.00, 0.00, 2,
0.15, 0.15,
! Linie 3 - frequenz,richtung,verschiebungX,verschiebungY,m
0.3,0, 0.00, 0.00, 0.15, 2,
0.20, 0.20,
! Linie 4 - frequenz,richtung,verschiebungX,verschiebungY,m
0.4,0, 90.00, 0.20, 0.00, 2,
0.15, 0.15
! Definition der Textur
DEFINE TEXTURE "Bild" "textur.jpg", 0.2, 0.15, 0, 0
! Definition des Materials
! surface color
oberflaeche_rot = 0.8
oberflaeche_gruen = 0.2
oberflaeche_blau = 0.2
streulicht=0.2 ! ambient
diffus = 0.1 ! diffuse
spiegelung= 0.1 ! specular
transparenz = 0 ! transparent
glanzlicht = 40 ! shining
abminderung_trans = 2 ! transparency attenuation
abstrahlung = 32.75 ! emission attenuation
! specular color
spiegelung_rot = 0.6
spiegelung_gruen = 0.6
spiegelung_blau = 0.6
! emission color
abstrahlung_rot = 0.1
abstrahlung_gruen = 0.1
abstrahlung_blau = 0.1
schraffurindex = IND(FILL,"Rechteck") ! fill index,
schraffurstift = 1 ! color index
texturindex = IND(TEXTURE,"Bild") ! texture index
DEFINE MATERIAL "individuelles_Material" 20,
oberflaeche_rot, oberflaeche_gruen, oberflaeche_blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_gruen, spiegelung_blau,
abstrahlung_rot, abstrahlung_gruen, abstrahlung_blau,
abstrahlung,
schraffurindex, schraffurstift, texturindex
! Materialattribut auf neues Material setzen
MATERIAL "individuelles_Material"
! Darstellung
BLOCK a,b,c
ADD a*2,b/2,a/2
SPHERE a/2
Definiert zunächst eine Oberflächenschraffur und legt die Bitmap-Texturierung fest. Nach der Materialdefinition und Aktivierung wird zur Demonstration ein Quader und eine Kugel ausgegeben.
a = 1
b = 0.9
c = 0.6
! Definition der Schraffur
DEFINE FILLA "Rechteck" 1+2+4+8+16+32,1+32,1+32,1+32,1+2+4+8+16+32,0,0,0,
! skalierung,winkel,n
a/1, b/0.6, 0, 4,
! Linie 1 - frequenz,richtung,verschiebungX,verschiebungY,m
0.3,0, 0.00, 0.00, 0.00, 2,
0.20, 0.20,
! Linie 2 - frequenz,richtung,verschiebungX,verschiebungY,m
0.4,0, 90.00, 0.00, 0.00, 2,
0.15, 0.15,
! Linie 3 - frequenz,richtung,verschiebungX,verschiebungY,m
0.3,0, 0.00, 0.00, 0.15, 2,
0.20, 0.20,
! Linie 4 - frequenz,richtung,verschiebungX,verschiebungY,m
0.4,0, 90.00, 0.20, 0.00, 2,
0.15, 0.15
! Definition der Textur
DEFINE TEXTURE "Bild" "textur.jpg", 0.2, 0.15, 0, 0
! Definition des Materials
! surface color
oberflaeche_rot = 0.8
oberflaeche_gruen = 0.2
oberflaeche_blau = 0.2
streulicht=0.2 ! ambient
diffus = 0.1 ! diffuse
spiegelung= 0.1 ! specular
transparenz = 0 ! transparent
glanzlicht = 40 ! shining
abminderung_trans = 2 ! transparency attenuation
abstrahlung = 32.75 ! emission attenuation
! specular color
spiegelung_rot = 0.6
spiegelung_gruen = 0.6
spiegelung_blau = 0.6
! emission color
abstrahlung_rot = 0.1
abstrahlung_gruen = 0.1
abstrahlung_blau = 0.1
schraffurindex = IND(FILL,"Rechteck") ! fill index,
schraffurstift = 1 ! color index
texturindex = IND(TEXTURE,"Bild") ! texture index
DEFINE MATERIAL "individuelles_Material" 20,
oberflaeche_rot, oberflaeche_gruen, oberflaeche_blau,
streulicht, diffus, spiegelung, transparenz,
glanzlicht, abminderung_trans,
spiegelung_rot, spiegelung_gruen, spiegelung_blau,
abstrahlung_rot, abstrahlung_gruen, abstrahlung_blau,
abstrahlung,
schraffurindex, schraffurstift, texturindex
! Materialattribut auf neues Material setzen
MATERIAL "individuelles_Material"
! Darstellung
BLOCK a,b,c
ADD a*2,b/2,a/2
SPHERE a/2
Definiert zunächst eine Oberflächenschraffur und legt die Bitmap-Texturierung fest. Nach der Materialdefinition und Aktivierung wird zur Demonstration ein Quader und eine Kugel ausgegeben.
DEFINE MATERIAL kann sowohl in einem Objekt als auch in einem MASTER-GDL vewendet werden. Bei der Definition in einem Objekt steht das Material aber nur lokal innerhalb dieses Objektes zur Verfügung. Wird das Material aber bereits im MASTER-GDL definiert, ist das Material im kompletten Projekt verfügbar. Da der Materialindex nur projektweit verwaltet wird, erhält ein lokal definiertes Material auch keinen Index. Es kann dann nur mit seinem Klartextnahmen gesetzt werden. Die IND()-Funktion liefert demnach für diese Materialien kein Ergebnis.
Global (im MASTER_GDL) definierte Materialien sind in allen Materialauswahldialogen aller Elemente verfügbar. Das gilt für alle Projekte, in denen diese MASTER_GDL Bestandteil der Bibliothek ist.
Wird der Befehl zu großzügig verwendet wird der Auswahldialog für Materialtypen leicht unübersichtlich.
Wurde ein Material so erst einmal innerhalb eines Projektes definiert bleibt es auch nach lösen der betreffenden MASTER_GDL vom Projekt erhalten. Das kann beim testweise Zuladen von Bibliotheken die Attributemenge ungewollt drastisch erhöhen. ArchiCAD® gibt da auch keinen Warnhinweis.
Der DEFINE MATERIAL-Befehl sollte daher mit Bedacht verwendet werden.
Der Bereich ADDITIONAL_DATA ist ab ArchiCAD® 9 gültig und wird separat erläutert. Das optionale Komma (,) davor wurde mit ArchiCAD® 10 eingeführt, um mit der Befehlserweiterung eine neue Programmzeile beginnen zu können, und war zuvor nicht erlaubt. Diese Quellcodelayout-unterstützende Option sollte ab ArchiCAD® 10 verwendet werden.
Global (im MASTER_GDL) definierte Materialien sind in allen Materialauswahldialogen aller Elemente verfügbar. Das gilt für alle Projekte, in denen diese MASTER_GDL Bestandteil der Bibliothek ist.
Wird der Befehl zu großzügig verwendet wird der Auswahldialog für Materialtypen leicht unübersichtlich.
Wurde ein Material so erst einmal innerhalb eines Projektes definiert bleibt es auch nach lösen der betreffenden MASTER_GDL vom Projekt erhalten. Das kann beim testweise Zuladen von Bibliotheken die Attributemenge ungewollt drastisch erhöhen. ArchiCAD® gibt da auch keinen Warnhinweis.
Der DEFINE MATERIAL-Befehl sollte daher mit Bedacht verwendet werden.
Der Bereich ADDITIONAL_DATA ist ab ArchiCAD® 9 gültig und wird separat erläutert. Das optionale Komma (,) davor wurde mit ArchiCAD® 10 eingeführt, um mit der Befehlserweiterung eine neue Programmzeile beginnen zu können, und war zuvor nicht erlaubt. Diese Quellcodelayout-unterstützende Option sollte ab ArchiCAD® 10 verwendet werden.
3D-Skript