IfcSurfaceStyleRendering

Definition from IAI: IfcSurfaceStyleRendering holds the properties for visualization related to a particular surface side style.

It allows rendering properties to be defined by:

- a transparency component (Transparency attribute)
- a colour component (SurfaceColour attribute inherited from IfcSurfaceStyleShading)
- a reflectance component, given either by
  - applying reflectance factors to the surface colour:
    - diffuse component (SurfaceColour * DiffuseFactor)
    - transmission component (SurfaceColour * TransmissionFactor )
    - diffuse transmission component (SurfaceColour * DiffuseTransmissionFactor)
    - reflection component (SurfaceColour * ReflectionFactor)
    - specular component (SurfaceColour * SpecularFactor attribute together with SpecularHighlight)
  - explicitly defining such factors as colours (DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour and SpecularColour)
- a displacement component, currently only given by a texture map with the TextureType = bump
- a coverage component, currently only given by the alpha component of the texture map (2 or 4 component colour texture)

> NOTE: The inherited attribute SurfaceColour is treated as the ambient colour and specifies how much ambient light from light sources this surface shall reflect. Ambient light is omnidirectional and depends only on the number of light sources, not their positions with respect to the surface.

> NOTE: If the reflectance method, as given by the IfcReflectanceMethodEnum is "GLASS", the transmission factor controls the level of transparency in the glass, In this case the transparency factor is interpreted as transmission factor.

> NOTE: Both Transparency and TransmissionColour (or factor) are included, the following definitions apply
> - Transparency is the ratio of the transmitted flux in a solid angle of 2 * PI sr (one hemisphere). It is a simple colour filtration that does not account for refraction.
> - Transmission factor of a material is the ratio of transmitted flux in a given solid angle to the transmitted flux of a completely diffuse material with 100% transmission in the same solid angle. It is the portion of light that goes through the material and may be refracted.

> NOTE: IFC 2x Edition 2 adds additional capability for presentation of physically accurate illuminance on surfaces. VRML type rendering and rendering based on ISO 10303-46 continues to be supported by a subset of the information. For reflectance equations and further information about the surface style properties and its processing, see:
> - ISO/IEC 14772-1: 1997: The Virtual Reality Modeling Language

> NOTE: The definition of IfcSurfaceStyleRenderingProperties includes the definitions as found in ISO 10303-46:1994, in particular of:
> - surface_style_rendering_with_properties
> - surface_style_rendering_ambient
> - surface_style_rendering_ambient_diffuse
> - surface_style_rendering_ambient_diffuse_specular
> - surface_style_transparent

> In addition to the attributes as defined in ISO 10303-46, i.e. ambient_reflectance, diffuse_reflectance, specular_reflectance, specular_exponent, and specular_colour, the current IFC definition adds other colours, reflectance factors and specular roughness..

> HISTORY: New Entity in IFC 2x.

EXPRESS specification:

ENTITY IfcSurfaceStyleRendering
SUBTYPE OF ( | IfcSurfaceStyleShading);
Transparency | : | OPTIONAL IfcNormalisedRatioMeasure;
DiffuseColour | : | OPTIONAL IfcColourOrFactor;
TransmissionColour | : | OPTIONAL IfcColourOrFactor;
DiffuseTransmissionColour | : | OPTIONAL IfcColourOrFactor;
ReflectionColour | : | OPTIONAL IfcColourOrFactor;
SpecularColour | : | OPTIONAL IfcColourOrFactor;
SpecularHighlight | : | OPTIONAL IfcSpecularHighlightSelect;
ReflectanceMethod | : | IfcReflectanceMethodEnum;
END_ENTITY;

Attribute definitions:

Transparency | : | Definition from ISO/CD 10303-46: The degree of transparency is indicated by the percentage of light traversing the surface. Definition from VRML97 - ISO/IEC 14772-1:1997: The transparency field specifies how "clear" an object is, with 1.0 being completely transparent, and 0.0 completely opaque. If not given, the value 0.0 (opaque) is assumed.
DiffuseColour | : | The diffuse part of the reflectance equation can be given as either a colour or a scalar factor. The diffuse colour field reflects all light sources depending on the angle of the surface with respect to the light source. The more directly the surface faces the light, the more diffuse light reflects. The diffuse factor field specifies how much diffuse light from light sources this surface shall reflect. Diffuse light depends on the angle of the surface with respect to the light source. The more directly the surface faces the light, the more diffuse light reflects. The diffuse colour is then defined by surface colour * diffuse factor.
TransmissionColour | : | The transmissive part of the reflectance equation can be given as either a colour or a scalar factor. It only applies to materials which Transparency field is greater than zero. The transmissive colour field specifies the colour that passes through a transparant material (like the colour that shines through a glass). The transmissive factor defines the transmissive part, the transmissive colour is then defined by surface colour * transmissive factor.
DiffuseTransmissionColour | : | The diffuse transmission part of the reflectance equation can be given as either a colour or a scalar factor. It only applies to materials whose Transparency field is greater than zero. The diffuse transmission colour specifies how much diffuse light is reflected at the opposite side of the material surface. The diffuse transmission factor field specifies how much diffuse light from light sources this surface shall reflect on the opposite side of the material surface. The diffuse transmissive colour is then defined by surface colour * diffuse transmissive factor.
ReflectionColour | : | The reflection (or mirror) part of the reflectance equation can be given as either a colour or a scalar factor. Applies to "glass" and "mirror" reflection models. The reflection colour specifies the contribution made by light from the mirror direction, i.e. light being reflected from the surface. The reflection factor specifies the amount of contribution made by light from the mirror direction. The reflection colour is then defined by surface colour * reflection factor.
SpecularColour | : | The specular part of the reflectance equation can be given as either a colour or a scalar factor. The specular colour determine the specular highlights (e.g., the shiny spots on an apple). When the angle from the light to the surface is close to the angle from the surface to the viewer, the specular colour is added to the diffuse and ambient colour calculations. The specular factor defines the specular part, the specular colour is then defined by surface colour * specular factor.
SpecularHighlight | : | The exponent or roughness part of the specular reflectance.
ReflectanceMethod | : | Identifies the predefined types of reflectance method from which the method required may be set.

Inheritance graph

ENTITY IfcSurfaceStyleRendering;
ENTITY IfcSurfaceStyleShading;
SurfaceColour | : | IfcColourRgb;
ENTITY IfcSurfaceStyleRendering;
Transparency | : | OPTIONAL IfcNormalisedRatioMeasure;
DiffuseColour | : | OPTIONAL IfcColourOrFactor;
TransmissionColour | : | OPTIONAL IfcColourOrFactor;
DiffuseTransmissionColour | : | OPTIONAL IfcColourOrFactor;
ReflectionColour | : | OPTIONAL IfcColourOrFactor;
SpecularColour | : | OPTIONAL IfcColourOrFactor;
SpecularHighlight | : | OPTIONAL IfcSpecularHighlightSelect;
ReflectanceMethod | : | IfcReflectanceMethodEnum;
END_ENTITY;