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]]

Aufklappen Wertebereiche
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

Aufklappen Erläuterung
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

Aufklappen Beispiel
! 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 Besonderheiten
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.

Aufklappen Kontext
3D-Skript