RVTDocs.com
Namespace: Autodesk.Revit.DB

SunAndShadowSettings

Class
Description:
The SunAndShadowSettings class represents the sun control.
Remarks:
The SunAndShadowSettings element represents the settings applied to a project or view regarding the position, dates, time intervals and other options for the sun control and solar studies. To differentiate between the project and view settings, test the ViewSpecific or OwnerViewId property. If the element is not view-specific this element represents a project-wide setting. If the element is associated to a view, this element represents a per view SunAndShadowSettings. When you create a new view, a new view-specific SunAndShadowSettings element is automatically created for it.
Inheritance Hierarchy:
System.Object
  Autodesk.Revit.DB.Element
    Autodesk.Revit.DB.SunAndShadowSettings
Syntax
public class SunAndShadowSettings : Element
Examples
SunAndShadowSettings sunSettings = view.SunAndShadowSettings; // get current settings from view

// modify Sun and Shadow Settings
DateTime sunrise = sunSettings.GetSunrise(DateTime.SpecifyKind(new DateTime(2011, 4, 20), DateTimeKind.Local)); // sunrise on April 20, 2011
DateTime sunset = sunSettings.GetSunset(DateTime.SpecifyKind(new DateTime(2011, 4, 22), DateTimeKind.Local)); // sunset on April 22, 2011
sunSettings.SunAndShadowType = SunAndShadowType.MultiDayStudy;
sunSettings.StartDateAndTime = sunrise.AddHours(2); // start 2 hours after sunrise on April 20, 2011
sunSettings.EndDateAndTime = sunset.AddHours(-2); // end 2 hours before sunset on April 22, 2011
if (sunSettings.IsTimeIntervalValid(SunStudyTimeInterval.Hour)) // check that this interval is valid for this SunAndShadowType
    sunSettings.TimeInterval = SunStudyTimeInterval.Hour;

// check for validity of start and end times
if (!(sunSettings.IsAfterStartDateAndTime(sunSettings.EndDateAndTime)
    && sunSettings.IsBeforeEndDateAndTime(sunSettings.StartDateAndTime)))
    TaskDialog.Show("Error", "Start and End dates are invalid");

view.get_Parameter(BuiltInParameter.VIEW_GRAPH_SUN_PATH).Set(1); // turn on display of the sun path