LightType Class


This class encapsulates light information.

Namespace: Autodesk.Revit.DB.Lighting
Assembly: RevitAPI (in RevitAPI.dll) Version: 24.0.0.0 (24.0.0.0)
Since:  2013

Syntax

C#
public class LightType : IDisposable
Visual Basic
Public Class LightType _
	Implements IDisposable
Visual C++
public ref class LightType : IDisposable

Examples

CopyC#
public void GetLightData(Document document)
{
    // This code demonstrates how to get light information from project and family document
    LightType lightData = null;
    if (document.IsFamilyDocument)
    {
        // In family document, get LightType via LightFamily.GetLightType(int) method. 
        LightFamily lightFamily = LightFamily.GetLightFamily(document);
        for (int index = 0; index < lightFamily.GetNumberOfLightTypes(); index++)
        {
            lightData = lightFamily.GetLightType(index);
        }
    }
    else
    {
        // In family document, get LightType via GetLightTypeFromInstance or GetLightType method.
        // In order to get the light information, please get a light fixture instance first
        FilteredElementCollector collector = new FilteredElementCollector(document);
        collector.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_LightingFixtures);
        FamilyInstance lightFixture = collector.Cast<FamilyInstance>().First<FamilyInstance>();
        if (lightFixture == null)    // check null reference
            return;

        // Get the LightType for given light fixture
        lightData = LightType.GetLightTypeFromInstance(document, lightFixture.Id);
    }

    // Get the light data via LightType
    Color filterColor = lightData.ColorFilter;  // get the ColorFilter property
    LossFactor lossFactor = lightData.GetLossFactor();  // get the loss factor
    if (lossFactor is AdvancedLossFactor)
    {
        AdvancedLossFactor advancedFactor = lossFactor as AdvancedLossFactor;
        double luminaireValue = advancedFactor.LuminaireDirtDepreciation;
    }
}
CopyVB.NET
Public Sub GetLightData(document As Document)
   ' This code demonstrates how to get light information from project and family document
   Dim lightData As LightType = Nothing
   If document.IsFamilyDocument Then
      ' In family document, get LightType via LightFamily.GetLightType(int) method. 
      Dim lightFamily__1 As LightFamily = LightFamily.GetLightFamily(document)
      For index As Integer = 0 To lightFamily__1.GetNumberOfLightTypes() - 1
         lightData = lightFamily__1.GetLightType(index)
      Next
   Else
      ' In family document, get LightType via GetLightTypeFromInstance or GetLightType method.
      ' In order to get the light information, please get a light fixture instance first
      Dim collector As New FilteredElementCollector(document)
      collector.OfClass(GetType(FamilyInstance)).OfCategory(BuiltInCategory.OST_LightingFixtures)
      Dim lightFixture As FamilyInstance = collector.Cast(Of FamilyInstance)().First()
      If lightFixture Is Nothing Then
         ' check null reference
         Return
      End If

      ' Get the LightType for given light fixture
      lightData = LightType.GetLightTypeFromInstance(document, lightFixture.Id)
   End If

   ' Get the light data via LightType
   Dim filterColor As Color = lightData.ColorFilter
   ' get the ColorFilter property
   Dim lossFactor As LossFactor = lightData.GetLossFactor()
   ' get the loss factor
   If TypeOf lossFactor Is AdvancedLossFactor Then
      Dim advancedFactor As AdvancedLossFactor = TryCast(lossFactor, AdvancedLossFactor)
      Dim luminaireValue As Double = advancedFactor.LuminaireDirtDepreciation
   End If
End Sub

Inheritance Hierarchy

SystemObject
  Autodesk.Revit.DB.LightingLightType

See Also

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →