Preview Rays

Learn how to use Preview Rays in BIMO for Revit to visualize unobstructed solar rays and validate Solar Exposure settings.

Preview Rays creates a static direct-sun ray preview for selected family instances in the active 3D view. For every sampled time, the command checks the virtual opening and model geometry, then draws only the rays that reach the calculation point without an obstruction.

Current availability: Preview Rays is registered in the BIMO Library and included under BIMO > Analyze in the default Ribbon scheme, but it is hidden by default and controlled by plan or workspace configuration. The current pricing matrix does not map the command to a specific tier, so this page does not promise PRIMO, OPTIMO, or ULTIMO access. If the command is missing, check the Ribbon and workspace access configuration or contact support@bimo.tools.

BIMO builds are available for Revit 2021-2027, and the Preview Rays source has no command-specific Revit version restriction.

When To Use

Use Preview Rays when you need to:

  • see the direct-sun directions available to a selected window, panel, or other family instance;

  • understand which sampled times pass through a virtual opening without an obstruction;

  • check how walls, floors, roofs, ceilings, masses, and Generic Models affect one calculation point;

  • visually compare family or facade orientations before running Solar Exposure.

Preview Rays is not a code-compliance calculation. It is a static snapshot of BIMO's simplified solar model, not a live Revit Sun Path visualization.

Requirements Before Running

  • Open a Revit project. Family documents are not supported.

  • Activate a 3D view. The command does not run on plans, sections, elevations, sheets, or schedules.

  • Configure visibility, the section box, and linked models in the active 3D view as they should participate in obstruction checks.

  • Prepare one or more family instances with a supported point or curve location.

  • Check True North for the active Project Location.

  • Review the hours, day, latitude, sampling step, and preview dimensions before running.

Current form limitation: Preview Rays shares the Daylight Measurement settings model. Its validator therefore still requires a Curtain Wall Panel in the project and checks a writable text result parameter, Comments by default, even though Preview Rays never writes that parameter. If the form rejects the result parameter, add or select a suitable Curtain Wall Panels parameter or contact support.

Selecting Instances

Preselect compatible Family Instances and run Preview Rays. Incompatible elements in the current selection are ignored. If no compatible instances are selected, Revit displays Pick family instances; pick the elements and complete the selection with Finish.

The command accepts FamilyInstance without an additional category filter. However, being a family instance does not guarantee successful processing: the command also needs a valid Facing Orientation and a supported location type.

Calculation Point

Preview Rays checks one point for each selected instance.

Instance Type

Initial Calculation Point

Curtain Wall Panel

Panel transform origin plus Offset Upward.

Point-located instance hosted by a Wall

Location point offset by half the wall thickness along the instance facing direction, plus Offset Upward.

Other point-located instance

Location point without the upward offset.

Curve-located instance

Curve midpoint without the upward offset.

Other location type

Unsupported; the command fails and rolls back the result of the entire run.

After finding the point, the command moves it backward from Facing Orientation by Window Depth. For panels on a curved Curtain System, orientation may be reversed using Mass geometry and CurveHostDistanceTolerance.

Command Settings

The base command opens the shared Daylight Measurement settings. The table lists source-confirmed defaults and validation.

Setting

Default

Valid Range

Effect On Preview Rays

Latitude

55

0-90

Used by BIMO to calculate solar vectors. Negative latitude is rejected.

Sunrise Hour

7

4-20

First whole hour in the range; included.

Sunset Hour

17

4-20

End of the range; this hour is excluded.

Day Of Year

112

1-365

Sets solar declination. Day 112 is approximately April 22 in a non-leap year.

Calculation Result Parameter

Comments

Writable text parameter on Curtain Wall Panels

Not used as Preview Rays output, but the current shared form still validates it.

Minute Step

5

1-15

Interval between tested directions. A smaller step creates more rays and takes more processing time.

Window Depth (mm)

0

No explicit range

Sets virtual-opening depth and moves the calculation point.

Window Width (mm)

0

No explicit range

Sets virtual-opening width. With a non-positive value, the internal side-obstruction check uses 1000 mm, but no opening outline is drawn.

Offset Upward (mm)

500

No explicit range

Applied only to Curtain Wall Panels and point-located instances hosted by a Wall.

Minimum Time Period (minutes)

60

1-901

Not used by Preview Rays; this is a Solar Exposure setting.

Discontinuous Insolation Label

Intermittent with a leading space

Text

Not used by Preview Rays.

Not Enough Time Label

- No continuous hour with a leading space

Text

Not used by Preview Rays.

Preview Rays Height (mm)

100000

No explicit range

Determines calculated ray length from solar altitude.

Preview Rays Maximum Length (mm)

500000

No explicit range

Caps the length of every drawn ray.

CurveHostDistanceTolerance

400

No explicit range

Distance tolerance used to determine panel orientation on a curved Mass face.

Sunrise Hour and Sunset Hour are validated independently. The form does not check that sunset is later than sunrise. If sunset equals or precedes sunrise, no solar directions are generated and a DirectShape may contain only the calculation-point cross and, with suitable settings, the opening outline.

For even sampling, use a step that divides 60: for example, 1, 2, 3, 4, 5, 6, 10, 12, or 15. Depth, width, offset, height, maximum length, and tolerance have no explicit range validation; use meaningful non-negative values and test one instance first.

Instance-Specific Hours

Any selected instance can override the shared hours when it has these integer parameters:

Instance Parameter

Behavior

Use BIMO Settings

Missing or greater than 0: use command settings. 0 or negative: read the instance-specific hours below.

Sunrise Hour

Instance-specific first hour when Use BIMO Settings is not positive.

Sunset Hour

Instance-specific end hour when Use BIMO Settings is not positive.

For an instance-specific range, sunset must be later than sunrise and both values must be from 1 through 23. Missing or invalid override-hour parameters cause an error and roll back the entire run. Latitude, day, step, and all other values still come from the selected BIMO preset.

Step-By-Step Workflow

  1. Activate the required 3D view and check its visibility and section box.

  2. Preselect family instances, or leave the selection empty.

  3. Run Preview Rays if it is available in your Ribbon.

  4. Review the Daylight Measurement preset and settings, then select OK.

  5. If Revit displays Pick family instances, select the elements and choose Finish.

  6. If the Create rays preview progress indicator appears, wait for completion or cancel processing.

  7. Inspect the generated rays, calculation-point crosses, and virtual-opening outlines in the 3D view.

  8. After checking the result, use Revit Undo or manually delete the generated geometry when it is no longer needed.

What Is Created

The command creates one persistent Lines-category DirectShape for every selected instance. It can contain:

  • one line for every solar direction that is not blocked by the virtual opening or model geometry;

  • a 1000 × 1000 mm cross at the calculation point;

  • a three-sided virtual-opening outline when Facing Orientation is horizontal and both window width and depth are positive.

The obstruction check includes Generic Models, Masses, Floors, Roofs, Ceilings, and Walls, including references found in linked Revit models. Curtain Wall Panels are not in this filter. Preview Rays uses the active 3D view's geometry and visibility as-is; unlike Solar Exposure, it does not temporarily hide categories before ray casting.

Rays intentionally do not start at the cross. Whole-hour samples start 2000 mm away and end at 100% of the calculated extent; :30 samples start 2250 mm away and end at 95% of that extent; all other samples start 2500 mm away and end at 90% of it. The calculated extent depends on solar altitude and is capped by Preview Rays Maximum Length.

When a ray is absent, that direction was excluded by the virtual opening or a detected obstruction. Blocked rays are not shown with another color or separate geometry.

Presets, Variants, And Keyboard Shortcuts

Preview Rays supports BIMO presets for the shared Daylight Measurement settings. Three preset variants are generated for the command:

  • the base command opens the settings window;

  • Variant #1, Variant #2, and Variant #3 can run assigned presets and skip the window when their settings are valid;

  • each variant is a separate Ribbon item that can receive a Revit keyboard shortcut.

Variants have the same plan visibility, project-document, and active-3D-view restrictions as the base command. See Presets and Variants.

Examples

Curtain Wall Panel

Select one facade panel, set Offset Upward so the cross is at the required control point, and run the command. The preview shows only direct-sun directions available to that point.

Wall-Hosted Window

For an instance hosted by a Wall, set virtual-opening depth and width. The command accounts for half the wall thickness, the upward offset, and the virtual side boundaries of the opening.

Cross Without Rays

If only a cross is created, check hour order, instance orientation, True North, the section box, obstruction visibility, and virtual-opening dimensions. This may be a valid result when every calculated direction is blocked.

Model Changes And Cleanup

  • A successful run adds one DirectShape per instance in a single Revit transaction named Create rays preview.

  • The command does not replace an earlier preview. Repeated runs add new elements that can overlap.

  • Preview Rays does not write Comments or any other Solar Exposure result parameter.

  • Cancelling through the progress indicator or an error in one instance rolls back the shared transaction.

  • Immediately after the run, standard Revit Undo removes all generated elements in one step.

  • Later, select the generated DirectShapes in the 3D view and delete them manually. A separate published BIMO cleanup command for Preview Rays is not confirmed in the current Ribbon.

Check the selection carefully before manual deletion so you do not remove unrelated Lines-category elements.

Limitations

  • The solar model uses manually entered latitude, day, and whole-hour boundaries. It does not read Revit Sun Settings, longitude, time zone, daylight saving time, or weather data.

  • Latitude is limited to 0-90; the current form does not support a negative southern-hemisphere latitude.

  • One calculation point is checked, not the instance surface or volume.

  • Preview Rays shows only unobstructed rays and does not display why another ray was blocked.

  • The result depends on Facing Orientation, True North, the active 3D view, its section box and visibility, the supported obstruction categories, and linked-model geometry.

  • Curtain Wall Panels do not act as obstructions in the current intersection filter.

  • Offset Upward is not applied consistently to every location type.

  • With non-positive window width, the internal check uses 1000 mm even though no opening outline is drawn.

  • Preview dimensions have no explicit range validation. Values that are too small, negative, or inconsistent can create misleading geometry or a Revit error.

  • Generated geometry is static: it does not update after changes to the model, view, True North, or settings. Delete the old preview and rerun the command.

Errors And Troubleshooting

Problem

What To Check

Preview Rays is missing from the Ribbon

The command is hidden in the default scheme and controlled by plan or workspace configuration. Check the Ribbon configuration; the current matrix does not confirm a specific tier.

BIMO asks for a 3D view

Activate a 3D view and run the command again.

The form rejects Comments or another result parameter

The current shared validator requires a Curtain Wall Panel with a writable text parameter even though Preview Rays does not write it.

Revit displays Pick family instances

The current selection contains no compatible Family Instances. Select them manually and choose Finish.

A cross is created but no rays appear

Check that sunset is later than sunrise, the instance faces the expected direction, True North is correct, and the virtual opening and visible geometry do not block every direction.

An expected blocked ray is missing

This is expected: the command draws only unobstructed rays.

Rays point in the wrong direction

Check Facing Orientation, family flip state, True North, and the curved-Mass-face tolerance.

An error names Sunrise Hour and Sunset Hour

The instance has Use BIMO Settings set to 0 or lower, but its override hours are missing, outside 1-23, or sunset is not later than sunrise.

The entire run rolls back on one element

One instance has an unsupported location type, invalid orientation, or geometry Revit cannot create. Retry with the instances one at a time.

Previews overlap or appear duplicated

The command does not clean up old DirectShapes. Use Undo after a run or delete old geometry manually.

Rays did not update after a model change

The preview is static. Delete the old DirectShapes and run the command again.

The result parameter did not change

Preview Rays does not write parameters. To calculate and write minutes, use Solar Exposure, subject to its current availability.

An error has occurred. This app may no longer respond until reloaded. Reload 🗙