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 > Analyzein 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 contactsupport@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 Measurementsettings model. Its validator therefore still requires a Curtain Wall Panel in the project and checks a writable text result parameter,Commentsby 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 |
Point-located instance hosted by a Wall | Location point offset by half the wall thickness along the instance facing direction, plus |
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 |
|---|---|---|---|
|
|
| Used by BIMO to calculate solar vectors. Negative latitude is rejected. |
|
|
| First whole hour in the range; included. |
|
|
| End of the range; this hour is excluded. |
|
|
| Sets solar declination. Day 112 is approximately April 22 in a non-leap year. |
|
| Writable text parameter on Curtain Wall Panels | Not used as Preview Rays output, but the current shared form still validates it. |
|
|
| Interval between tested directions. A smaller step creates more rays and takes more processing time. |
|
| No explicit range | Sets virtual-opening depth and moves the calculation point. |
|
| 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. |
|
| No explicit range | Applied only to Curtain Wall Panels and point-located instances hosted by a Wall. |
|
|
| Not used by Preview Rays; this is a Solar Exposure setting. |
|
| Text | Not used by Preview Rays. |
|
| Text | Not used by Preview Rays. |
|
| No explicit range | Determines calculated ray length from solar altitude. |
|
| No explicit range | Caps the length of every drawn ray. |
|
| 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 |
|---|---|
| Missing or greater than |
| Instance-specific first hour when |
| Instance-specific end hour when |
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
Activate the required 3D view and check its visibility and section box.
Preselect family instances, or leave the selection empty.
Run Preview Rays if it is available in your Ribbon.
Review the
Daylight Measurementpreset and settings, then select OK.If Revit displays Pick family instances, select the elements and choose Finish.
If the Create rays preview progress indicator appears, wait for completion or cancel processing.
Inspect the generated rays, calculation-point crosses, and virtual-opening outlines in the 3D view.
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 Orientationis 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, andVariant #3can 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
DirectShapeper instance in a single Revit transaction namedCreate rays preview.The command does not replace an earlier preview. Repeated runs add new elements that can overlap.
Preview Rays does not write
Commentsor 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 Upwardis 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 | 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 |
An error names | The instance has |
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. |