[Serializable] public sealed class Material : ModelComponent

Constructors

Material

#Since v5.0
public Material()

Material

#Since v6.0
public Material(Material other)
other (Material)

Properties

AlphaTransparency

#Since v6.0
public bool AlphaTransparency { get; set; }

AmbientColor

#Since v5.0
public Color AmbientColor { get; set; }

ComponentStatus

public virtual ComponentStatus ComponentStatus { get; set; }
Gets or sets the component status of the model component.
inherited fromModelComponent

ComponentType

#Since v6.0
public override ModelComponentType ComponentType { get; }

DefaultMaterial

#Since v5.0
public static Material DefaultMaterial { get; }

DeletedName

public string DeletedName { get; }
Gets the name of a component that is deleted.
inherited fromModelComponent

DiffuseColor

#Since v5.0
public Color DiffuseColor { get; set; }

DisableLighting

#Since v6.0
public bool DisableLighting { get; set; }

Disposed

public bool Disposed { get; }
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
inherited fromCommonObject

EmissionColor

#Since v5.0
public Color EmissionColor { get; set; }

FresnelIndexOfRefraction

#Since v6.0
public double FresnelIndexOfRefraction { get; set; }
Gets or sets the Fresnel index of refraction of the material, default is 1.56

FresnelReflections

#Since v6.0
public bool FresnelReflections { get; set; }
Gets or sets if Fresnel reflections are used.

HasId

public bool HasId { get; }
Returns a value indicating whether the component has an ID.
inherited fromModelComponent

HasIndex

public bool HasIndex { get; }
Returns a value indicating whether the component has an Index.
inherited fromModelComponent

HasName

public bool HasName { get; }
Returns a value indicating whether the component has a Name.
inherited fromModelComponent

HasUserData

public bool HasUserData { get; }
Gets true if this class has any custom information attached to it through UserData.
inherited fromCommonObject

Id

public virtual Guid Id { get; set; }
Gets or sets the ID of the current instance.
inherited fromModelComponent
InvalidOperationExceptionWhen setting the ID failed. This usually happened because the instance ID is already locked.

IdIsLocked

public bool IdIsLocked { get; }
Returns a value indicating whether the component ID is already locked.
inherited fromModelComponent

Index

public virtual int Index { get; set; }
Gets or sets the model component index attribute.
inherited fromModelComponent
InvalidOperationExceptionWhen setting the Index failed. This usually happens because the instance Index is already locked.

IndexIsLocked

public bool IndexIsLocked { get; }
Returns a value indicating whether the component Index is already locked.
inherited fromModelComponent

IndexOfRefraction

#Since v5.1
public double IndexOfRefraction { get; set; }
Gets or sets the index of refraction of the material, generally >= 1.0 (speed of light in vacuum)/(speed of light in material)

InstanceDefinitionModelSerialNumber

[CLSCompliant(false)] public virtual uint InstanceDefinitionModelSerialNumber { get; }
When a component is in a model as part of the information required for a linked instance definition, this value identifies the linked instance definition reference model.
inherited fromModelComponent
Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

IsComponentStatusLocked

public bool IsComponentStatusLocked { get; }
The component status itself can be locked. This returns an indication.
inherited fromModelComponent

IsDefaultMaterial

#Since v5.0
public bool IsDefaultMaterial { get; }
By default Rhino layers and objects are assigned the default rendering material.

IsDeleted

#Since v5.0
public override bool IsDeleted { get; }
Deleted materials are kept in the runtime material table so that undo will work with materials. Call IsDeleted to determine to determine if a material is deleted.

IsDocumentControlled

#Since v5.6
public override bool IsDocumentControlled { get; }
If true this object may not be modified. Any properties or functions that attempt to modify this object when it is set to "IsReadOnly" will throw a NotSupportedException.

IsPhysicallyBased

#Since v7.0
public bool IsPhysicallyBased { get; }

IsReference

#Since v5.0
public override bool IsReference { get; }
Rhino allows multiple files to be viewed simultaneously. Materials in the document are "normal" or "reference". Reference materials are not saved.

IsSystemComponent

public bool IsSystemComponent { get; }
True if this model component is a system constant.

An incomplete list of system constant model components is below:

  • ON_ModelComponent::Unset

  • ON_InstanceDefinition::Empty

  • ON_Linetype::Unset
  • ON_Linetype::Continuous
  • ON_Linetype::ByLayer
  • ON_Linetype::ByParent

  • ON_Layer::Unset
  • ON_Layer::Default

  • ON_TextStyle::Unset
  • ON_TextStyle::Default
  • ON_TextStyle::ByLayer
  • ON_TextStyle::ByParent

  • ON_DimStyle::Unset
  • ON_DimStyle::Default
  • ON_DimStyle::DefaultInchDecimal
  • ON_DimStyle::DefaultInchFractional
  • ON_DimStyle::DefaultFootInchArchitecture
  • ON_DimStyle::DefaultMillimeterSmall
  • ON_DimStyle::DefaultMillimeterLarge
  • ON_DimStyle::DefaultMillimeterArchitecture
inherited fromModelComponent

IsValid

public virtual bool IsValid { get; }
Tests an object to see if it is valid.
inherited fromCommonObject

MaterialIndex

#Since v5.6
[EditorBrowsable(EditorBrowsableState.Never)] public int MaterialIndex { get; }

MaxShine

#Since v5.0
public static double MaxShine { get; }

ModelSerialNumber

[CLSCompliant(false)] public virtual uint ModelSerialNumber { get; }
A value identifying the model that manages this component.
inherited fromModelComponent
Remarks: If the component is being managed by a model, this value identifies the model. In Rhino, this value is the document runtime serial number. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

Name

#Since v5.0
public override string Name { get; set; }

NameIsLocked

public bool NameIsLocked { get; }
Returns a value indicating whether the component Name is already locked.
inherited fromModelComponent

PhysicallyBased

#Since v7.0
public PhysicallyBasedMaterial PhysicallyBased { get; }

PreviewColor

#Since v6.6
public Color PreviewColor { get; }
Very simple preview color function for GUIs.

RDKMaterialID

#Since v8.6
public Guid RDKMaterialID { get; }
Gets the RDK material ID.
Remarks: Multiple Rhino materials ( with unique component IDs) can have the same RDK material ID.

ReferenceModelSerialNumber

[CLSCompliant(false)] public virtual uint ReferenceModelSerialNumber { get; }
When a component is in a model for reference, this value identifies the reference model.
inherited fromModelComponent
Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

ReflectionColor

#Since v5.0
public Color ReflectionColor { get; set; }

ReflectionGlossiness

#Since v6.0
public double ReflectionGlossiness { get; set; }
Gets or sets the reflection glossiness.

Reflectivity

#Since v5.7
public double Reflectivity { get; set; }
Gets or sets how reflective a material is, 0f is no reflection 1f is 100% reflective.

RefractionGlossiness

#Since v6.0
public double RefractionGlossiness { get; set; }
Gets or sets the refraction glossiness.

RenderMaterial

#Since v6.0
public RenderMaterial RenderMaterial { get; }
Get the RenderMaterial related to this Material. Will create a new RenderMaterial if none exists. This can happen for older documents.

RenderMaterialInstanceId

#Since v6.0
public Guid RenderMaterialInstanceId { get; set; }

RenderPlugInId

#Since v5.0
public Guid RenderPlugInId { get; set; }
The Id of the RenderPlugIn that is associated with this material.

Shine

#Since v5.0
public double Shine { get; set; }
Gets or sets the shine factor of the material.

SpecularColor

#Since v5.0
public Color SpecularColor { get; set; }

Transparency

#Since v5.0
public double Transparency { get; set; }
Gets or sets the transparency of the material (0.0 = opaque to 1.0 = transparent)

TransparentColor

#Since v5.0
public Color TransparentColor { get; set; }

UseCount

#Since v5.0
public int UseCount { get; }
Number of objects and layers that use this material.

UserData

public UserDataList UserData { get; }
List of custom information that is attached to this class.
inherited fromCommonObject

UserDictionary

public ArchivableDictionary UserDictionary { get; }
Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.
inherited fromCommonObject

UserStringCount

#Since v5.0
public int UserStringCount { get; }

Methods

ClearId

public void ClearId()
Resets the HasId property of the model component to false, if possible.
inherited fromModelComponent
InvalidOperationExceptionIf the ID is locked.

ClearIndex

public void ClearIndex()
Resets the HasIndex property of the model component to false, if possible.
inherited fromModelComponent
InvalidOperationExceptionIf the index is locked.

ClearMaterialChannels

#Since v6.26
public void ClearMaterialChannels()
Removes all material channels

ClearName

public void ClearName()
Resets the HasName property of the model component to false, if possible.
inherited fromModelComponent
InvalidOperationExceptionIf the name is locked.

CommitChanges

#Since v5.0
public bool CommitChanges()

ConstructConstObject

protected void ConstructConstObject(object parentObject, int subobjectIndex)
Assigns a parent object and a sub-object index to this.
inherited fromCommonObject
parentObject (object)The parent object.
subobjectIndex (int)The sub-object index.

CopyFrom

#Since v6.0
public void CopyFrom(Material other)
other (Material)

DataCRC

[CLSCompliant(false)] public uint DataCRC(uint currentRemainder)
Increments the Cyclic Redundancy Check value by this instance.
inherited fromModelComponent
currentRemainder (uint)The current remainder value.
The updated remainder value.

Default

#Since v5.0
public void Default()
Set material to default settings.

Dispose

public void Dispose()
Actively reclaims unmanaged resources that this instance uses.
inherited fromCommonObject

Dispose

protected virtual void Dispose(bool disposing)
For derived class implementers.

This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.

You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.

Also, you must call the base virtual method within your overriding method.

inherited fromCommonObject
disposing (bool)true if the call comes from the Dispose() method; false if it comes from the Garbage Collector finalizer.

EnsurePrivateCopy

public void EnsurePrivateCopy()
If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.
inherited fromCommonObject

GetBitmapTexture

#Since v5.0
public Texture GetBitmapTexture()

GetBumpTexture

#Since v5.0
public Texture GetBumpTexture()
Gets the bump texture of this material.
A texture; or null if no bump texture has been added to this material.

GetEnvironmentTexture

#Since v5.0
public Texture GetEnvironmentTexture()

GetObjectData

[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
inherited fromCommonObject
info (SerializationInfo)The System.Runtime.Serialization.SerializationInfo to populate with data.
context (StreamingContext)The destination (see System.Runtime.Serialization.StreamingContext) for this serialization.

GetTexture

#Since v7.0
public Texture GetTexture(TextureType which)
Get the texture that corresponds with the specified texture type for this material.
which (TextureType)

GetTextures

#Since v5.7
public Texture[] GetTextures()
Get array of textures that this material uses

GetTransparencyTexture

#Since v5.0
public Texture GetTransparencyTexture()

GetUserString

#Since v5.0
public string GetUserString(string key)
Gets a user string.
key (string)id used to retrieve the string.
string associated with the key if successful. null if no key was found.

GetUserStrings

#Since v5.0
public NameValueCollection GetUserStrings()
Gets an independent copy of the collection of (user text key, user text value) pairs attached to this object.
A collection of key strings and values strings. This

IsValidWithLog

public bool IsValidWithLog(out string log)
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
inherited fromCommonObject
log (out string)A textual log. This out parameter is assigned during this call.
true if this object is valid; false otherwise.

LockId

public void LockId()
Locks the component Id property.
inherited fromModelComponent

LockIndex

public void LockIndex()
Locks the component Index property.
inherited fromModelComponent

LockName

public void LockName()
Locks the component Name property.
inherited fromModelComponent

MaterialChannelIdFromIndex

#Since v6.26
public Guid MaterialChannelIdFromIndex(int material_channel_index)
Finds id of the material channel at given index.
material_channel_index (int)Index
Id of the material channel

MaterialChannelIndexFromId

#Since v6.26
public int MaterialChannelIndexFromId(Guid material_channel_id, bool bAddIdIfNotPresent)
Finds index of the material channel that refers to a material channel with the given id. Optionally adds channel if one is not found.
material_channel_id (Guid)Id
bAddIdIfNotPresent (bool)Controls whether to add channel if none exist
Index of the material channel

NonConstOperation

protected virtual void NonConstOperation()
For derived classes implementers.

Defines the necessary implementation to free the instance from being constant.

inherited fromCommonObject

OnSwitchToNonConst

#
protected override void OnSwitchToNonConst()

SetBitmapTexture

#Since v5.0
public bool SetBitmapTexture(string filename)
filename (string)

SetBitmapTexture

#Since v9.0
public bool SetBitmapTexture(string name, Bitmap bitmap)
Uses the pixels of an in-memory bitmap as this material's bitmap texture, without writing an image file.

The pixels are copied into TextureCache under name. Calling this again with the same name replaces them in place, and the change shows up on the next redraw.

name (string)The name to cache the pixels under. See TextureCache.Set(string, Bitmap).
bitmap (Bitmap)The pixels to use.
true on success.

SetBitmapTexture

#Since v5.0
public bool SetBitmapTexture(Texture texture)
texture (Texture)

SetBumpTexture

#Since v5.0
public bool SetBumpTexture(string filename)
filename (string)

SetBumpTexture

#Since v5.0
public bool SetBumpTexture(Texture texture)
texture (Texture)

SetEnvironmentTexture

#Since v5.0
public bool SetEnvironmentTexture(string filename)
filename (string)

SetEnvironmentTexture

#Since v5.0
public bool SetEnvironmentTexture(Texture texture)
texture (Texture)

SetTexture

#Since v7.0
public bool SetTexture(Texture texture, TextureType which)
Set the texture that corresponds with the specified texture type for this material.
texture (Texture)An instance of Rhino.DocObjects.Texture
which (TextureType)Use Rhino.DocObjects.TextureType

SetTransparencyTexture

#Since v5.0
public bool SetTransparencyTexture(string filename)
filename (string)

SetTransparencyTexture

#Since v5.0
public bool SetTransparencyTexture(Texture texture)
texture (Texture)

SetUserString

#Since v5.0
public bool SetUserString(string key, string value)
Attach a user string (key,value combination) to this geometry.
key (string)id used to retrieve this string.
value (string)string associated with key.
true on success.

ToJSON

public string ToJSON(SerializationOptions options)
Create a JSON string representation of this object
inherited fromCommonObject
options (SerializationOptions)

ToPhysicallyBased

#Since v7.0
public void ToPhysicallyBased()

ToString

public override string ToString()
Returns the name of the model component type, and then its name and index.
inherited fromModelComponent
Remarks: This is provided as a visual aid. Do not rely on this for serialization.
Object.ToString