coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
generallinesfillsmaterialstextextended
MATERIAL DEFINE MATERIAL DEFINE MATERIAL BASED_ON DEFINE TEXTURE
Name
DEFINE_MATERIAL
Syntax
DEFINE_MATERIALname, typ,
red, green, blue[,
ambient, diffuse, specular, transparenct, shining, transparaency_attenuation][,
specular_red, specular_green, specular_blue,
emission_attenuation_red, emission_attenuation_green, emission_attenuation_blue,
emission_attenuation][,
fill_index][, fillcolor_index, texture_index] [,] [
ADDITIONAL_DATA parametername1 = expressionn+1 [..., parameternamem = expressionn+m]]
Aufklappen Range
name, Typ Text
0 ≤ typ ≤ 27 (≠8, ≠9, ≠18, ≠19), Typ integer
0 ≤ red ≤ 1, Typ real
0 ≤ green ≤ 1, Typ real
0 ≤ blue ≤ 1, Typ real
0 ≤ ambient ≤ 1, Typ real
0 ≤ diffuse ≤ 1, Typ real
0 ≤ specular ≤ 1, Typ real
0 ≤ transparenct ≤ 1, Typ real
0 ≤ shining ≤ 100, Typ real (nur bei specular>0)
0 ≤ transparaency_attenuation ≤ 4, Typ real
0 ≤ specular_red ≤ 1, Typ real
0 ≤ specular_green ≤ 1, Typ real
0 ≤ specular_blue ≤ 1, Typ real
0 ≤ emission_red ≤ 1, Typ real
0 ≤ emission_green ≤ 1, Typ real
0 ≤ emission_blue ≤ 1, Typ real
0 ≤ emission_attenuation ≤ 100 (≤ 65.5 nach Handbuch), Typ real
0 ≤ fill_index, Typ integer
0 ≤ fillcolor_index ≤ 255, Typ integer
0 ≤ texture_index, Typ integer
expressioni, Typ real, Wertebereich abhängig von keywordi oder parameternamei
Aufklappen Description
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 fillcolor_index=0 wird der aktuell aktivierte Stift verwendet.

texture_index=0 definiert das Material ohne Textur, fill_index=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, red, green, blue

typ=3: Metall
DEFINE MATERIAL "material_Metall" 3, red, green, blue

typ=4: Kunststoff
DEFINE MATERIAL "material_Kunststoff" 4, red, green, blue

typ=5: Glas
DEFINE MATERIAL "material_Glas" 5, red, green, blue

typ=6: Glänzendes Material
DEFINE MATERIAL "material_glänzend" 6, red, green, blue

typ=7: Konstantes Material (since ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant" 7, red, green, blue

typ=12: Mattes Material, schraffiert
DEFINE MATERIAL "material_matt_2" 12, red, green, blue,
  fill_index


typ=13: Metall, schraffiert
DEFINE MATERIAL "material_Metall_2" 13, red, green, blue,
  fill_index


typ=14: Kunststoff, schraffiert
DEFINE MATERIAL "material_Kunststoff_2" 14, red, green, blue,
  fill_index


typ=15: Glas, schraffiert
DEFINE MATERIAL "material_Glas_2" 15, red, green, blue,
  fill_index


typ=16: Glänzendes Material, schraffiert
DEFINE MATERIAL "material_glänzend_2" 16, red, green, blue,
  fill_index


typ=17: Konstantes Material, schraffiert (since ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant_2" 17, red, green, blue,
  fill_index


typ=22: Mattes Material, schraffiert + texturiert (since ArchiCAD 5.0)
DEFINE MATERIAL "material_matt_3" 22, red, green, blue,
  fill_index, fillcolor_index, texture_index


typ=23: Metall, schraffiert + texturiert (since ArchiCAD 5.0)
DEFINE MATERIAL "material_Metall_3" 23, red, green, blue,
  fill_index, fillcolor_index, texture_index


typ=24: Kunststoff, schraffiert + texturiert (since ArchiCAD 5.0)
DEFINE MATERIAL "material_Kunststoff_3" 24, red, green, blue,
  fill_index, fillcolor_index, texture_index


typ=25: Glas, schraffiert + texturiert (since ArchiCAD 5.0)
DEFINE MATERIAL "material_Glas_3" 25, red, green, blue,
  fill_index, fillcolor_index, texture_index


typ=26: Glänzendes Material, schraffiert + texturiert (since ArchiCAD 5.0)
DEFINE MATERIAL "material_glänzend_3" 26, red, green, blue,
  fill_index, fillcolor_index, texture_index


typ=27: Konstantes Material, schraffiert + texturiert (since ArchiCAD 6.0)
DEFINE MATERIAL "material_konstant_3" 27, red, green, blue,
  fill_index, fillcolor_index, texture_index


typ=1: Einfaches Material
DEFINE MATERIAL "material_einfach" 1, red, green, blue,
  ambient, diffuse, specular, transparenct,
  shining, transparaency_attenuation


typ=11: Einfaches Material, schraffiert
DEFINE MATERIAL "material_einfach_2" 11, red, green, blue,
  ambient, diffuse, specular, transparenct,
  shining, transparaency_attenuation, fill_index


typ=21: Einfaches Material, schraffiert + texturiert (since ArchiCAD 5.0)
DEFINE MATERIAL "material_einfach_3" 21, red, green, blue,
  ambient, diffuse, specular, transparenct,
  shining, transparaency_attenuation,
  fill_index, fillcolor_index, texture_index


typ=0: Allgemeines Material
DEFINE MATERIAL "material_allgemein" 0, red, green, blue,
  ambient, diffuse, specular, transparenct,
  shining, transparaency_attenuation,
  specular_red, specular_green, specular_blue,
  emission_red, emission_green, emission_blue,
  emission_attenuation


typ=10: Allgemeines Material, schraffiert
DEFINE MATERIAL "material_allgemein_2" 10, green, blue,
  ambient, diffuse, specular, transparenct,
  shining, transparaency_attenuation,
  specular_red, specular_green, specular_blue,
  emission_red, emission_green, emission_blue,
  emission_attenuation, fill_index


typ=20: Individuelles Material (since ArchiCAD 5.0)
DEFINE MATERIAL "material_allgemein_3" 20, green, blue,
  ambient, diffuse, specular, transparenct,
  shining, transparaency_attenuation,
  specular_red, specular_green, specular_blue,
  emission_red, emission_green, emission_blue,
  emission_attenuation,
  fill_index, fillcolor_index, texture_index
Aufklappen Example
! 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.
Aufklappen Specialities
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 since 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 since ArchiCAD® 10 verwendet werden.
Aufklappen Context
3D-Skript
Aufklappen References
GDL-Handbuch 4.5 (DE) p. 108
GDL-Handbuch 5.0 (DE) p. 142
GDL-Handbuch 6.0 (DE) p. 153
GDL-Handbuch 6.5 (DE) p. 150
GDL-Handbuch 7.0 (DE) p. 150
GDL-Handbuch 8.0 (DE) p. 102/109
GDL-Handbuch 8.1 (DE) p. 102/111
GDL-Handbuch 9.0 (DE) p. 162/180
GDL-Handbuch 10.0 (DE) p. 160/178
GDL-Handbuch 11.0 (DE) p. 166/184
GDL Reference Guide 9.0 (INT) p. 158/175
GDL Reference Guide 10.0 (INT) p. 160/177
GDL Reference Guide 11.0 (INT) p. 160/177
GDL Cookbook 3.1 (EN/DE) p. 1.44/2.76/2.92/2.148/2.155f.
 




separates Web Control Fenster Download Objekt

Aufklappen GDL WebControl