# GeometryInstanceAttribute

#### new Cesium.GeometryInstanceAttribute(options)
Core/GeometryInstanceAttribute.js 48

  Values and type information for per-instance geometry attributes.

  Name | Type | Description
  --- | --- | ---
  `options` | Object | Object with the following properties:
  Name | Type | Default | Description
  --- | --- | --- | ---
  `componentDatatype` | ComponentDatatype |  | optional The datatype of each component in the attribute, e.g., individual elements in values.
  `componentsPerAttribute` | Number |  | optional A number between 1 and 4 that defines the number of components in an attributes.
  `normalize` | Boolean | `false` | optional When `true` and `componentDatatype` is an integer format, indicate that the components should be mapped to the range [0, 1] (unsigned) or [-1, 1] (signed) when they are accessed as floating-point for rendering.
  `value` | Array.<Number> |  | optional The value for the attribute.

  ##### Throws:

  - DeveloperError : options.componentsPerAttribute must be between 1 and 4.

  ##### Example:

      var instance = new Cesium.GeometryInstance({
        geometry : Cesium.BoxGeometry.fromDimensions({
          dimensions : new Cesium.Cartesian3(1000000.0, 1000000.0, 500000.0)
        }),
        modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
          Cesium.Cartesian3.fromDegrees(0.0, 0.0)), new Cesium.Cartesian3(0.0, 0.0, 1000000.0), new Cesium.Matrix4()),
        id : 'box',
        attributes : {
          color : new Cesium.GeometryInstanceAttribute({
            componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
            componentsPerAttribute : 4,
            normalize : true,
            value : [255, 255, 0, 255]
          })
        }
      });

  ##### See:

  - ColorGeometryInstanceAttribute
  - ShowGeometryInstanceAttribute

### Members

#### componentDatatype : ComponentDatatype
Core/GeometryInstanceAttribute.js 74

  The datatype of each component in the attribute, e.g., individual elements in `GeometryInstanceAttribute#value`.
  Default Value: `undefined`

#### componentsPerAttribute : Number
Core/GeometryInstanceAttribute.js 93

  A number between 1 and 4 that defines the number of components in an attributes. For example, a position attribute with x, y, and z components would have 3 as shown in the code example.
  Default Value: `undefined`

  ##### Example:

      show : new Cesium.GeometryInstanceAttribute({
        componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
        componentsPerAttribute : 1,
        normalize : true,
        value : [1.0]
      })

#### normalize : Boolean
Core/GeometryInstanceAttribute.js 118

  When `true` and `componentDatatype` is an integer format, indicate that the components should be mapped to the range [0, 1] (unsigned) or [-1, 1] (signed) when they are accessed as floating-point for rendering.

  This is commonly used when storing colors using `ComponentDatatype.UNSIGNED_BYTE`.

  Default Value: `false`

  ##### Example:

      attribute.componentDatatype = Cesium.ComponentDatatype.UNSIGNED_BYTE;
      attribute.componentsPerAttribute = 4;
      attribute.normalize = true;
      attribute.value = [
        Cesium.Color.floatToByte(color.red),
        Cesium.Color.floatToByte(color.green),
        Cesium.Color.floatToByte(color.blue),
        Cesium.Color.floatToByte(color.alpha)
      ];

#### value : Array.<Number>
Core/GeometryInstanceAttribute.js 137

  The values for the attributes stored in a typed array. In the code example, every three elements in `values` defines one attributes since `componentsPerAttribute` is 3.
  Default Value: `undefined`

  ##### Example:

      show : new Cesium.GeometryInstanceAttribute({
        componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
        componentsPerAttribute : 1,
        normalize : true,
        value : [1.0]
      })