Mapping Material Reflectances by Revit Category

Perhaps one of the most time consuming aspects of preparing your Revit model for accurate lighting calculations is the process of mapping the “in-use” Revit materials to reasonable surface reflectances. Recall that ElumTools only has access to the Revit material’s “Graphics Shading Color” from which we can calculate a reflectance value. ElumTools does not see the reflectances set by MEP Space for Revit’s lighting estimation routine. If this sounds foreign, please see my previous post: “How Important are Surface Reflectances”.

Because the graphics color may not accurately represent the true real-world surface color, it is necessary to examine all of the Revit materials in use in the ElumTools Material Mapping dialog and “map” each of them to a suitable reflectance value. This process takes not only time, but careful thought.

With ElumTools 2015 (and >2014.7) we have introduced a way to save time by allowing reflectance to be assigned to a Revit “Category” instead of the individual materials within that category. For example: imagine all ceiling types within the “Ceilings” category. Now you can assign one value for reflectance to the Ceilings category and have all ceiling types assume that value. We call it a “Category Override” as it overrides all of the reflectance values calculated from graphics color, as well as those you have set manually for materials in that category.

To use this new feature:

    1. Open the ElumTools Materials Mapping dialog and click the radio button in the upper left corner to select “View Category Overrides”.
    2. ElumTools sorts categories and places “Common” categories at the top of the list. As a default this includes Ceilings, Walls, Floors and Glazing; the most popular places to standardize.
    3. To enable an override by category, simply check the box
    4. And verify the settings for surface type and reflectance (Advanced Settings can be applied as well but that is another conversation).

This makes it easy to standardize your reflectances for common surfaces, and you can enable and disable an override by just checking or unchecking the box. However, keep in mind that all surfaces that do not make sense to standardize, for example: those red walls in the Conference Rooms, will blow the whole deal. If you have even one member of the category that must be unique, you can’t use an override!

Nifty Tricks

You can filter the category list by typing in the category name area. For example: if you wanted all categories that started with “Flex…”, you would type “Flex” into the Category Name area as shown below and all categories beginning with Flex would be exposed.

category filterRemove the filter temporarily by unchecking the box in the lower left corner of the dialog. Click the X to end the filter completely. You can edit a filter by retyping in the category name area again, or use the Edit Filter button in the lower right hand corner to make your changes.

Another handy option is the ability to remove all geometry within a category from the calculations entirely. This can be done in other ways as well, but this method is extremely simple and can be done in seconds. First locate the categories to be ignored. You can do this with a filter or by scrolling the dialog through the category list. As an example, let’s remove all the furniture from the lighting calculations.

  1. Filter the list for “Furn”
  2. Check the category boxes to enable the overrides
  3. Set the Surface Type property as “Ignore”

Category ignore

Any calculations you now execute in ElumTools will have all furniture removed!

Category Overrides can save you tons of time if you are able to take advantage of them in terms of setting standardized reflectances. It is also important to understand that all other surfaces not covered by an override are still utilizing the “Map by Material” method. Make sure their reflectances make sense by shifting the dialog status back to “View Project Materials” in the upper right corner and validating each important material.

Watch our YouTube video on Category Overrides to see it happen and cement in the process!

ElumTools 2014 (and 2015) Calculation Geometry Settings

It might seem silly to talk about ElumTools 2014 after the 2015 release, but we communicate with Revit users all the time who are still in the 2013 world, or  (gasp…) even earlier. While we are not so naïve as to think that Revit users might upgrade their projects from older versions to 2014 or 2015 for ElumTools alone, however, if lighting is important, there are some very compelling improvements that were implemented in the ElumTools 2014 framework that deserve attention.

Prior to the release of ElumTools 2014.2 we had been using Revit’s Room and Space boundary tools to find geometry (walls, floors, etc). This worked fine for basic environments with flat ceilings. However, it was not always suitable for more complicated architectural environments. Missing walls, ceilings and more were fairly common. Realizing this was unacceptable, and with a little help from the Revit 2014 API, we got smart and essentially rewrote the boundary tools to look for all geometry essential for lighting calculations. The result is a substantial improvement in ElumTools functionality.

ET Settings 1

Fig. 1

Opening the Settings dialog in ElumTools 2014 we see the Calculation tab (Fig 1). Gone are the old settings under “Rooms/Surfaces” of “Include Hosted Elements” and “Include Room/Space Contents”. In their place we have “Filter by View Visibility” and an “Advanced” button. Sounds complicated… and it can be. But the good news is, the defaults are very good and seldom do you need to use the Advanced button.

What did we gain? How about this (Fig 2):


Fig. 2

Notice immediately, ElumTools is picking up the system families: stairs and railings. Then, by ensuring that the room definition has suitable upper and lower boundaries, you can get geometry for multiple floors and sloped elements such as the skylight glazing. None of this was possible prior to ElumTools 2014.2. Note: the decimal point in the program version is important.  This denotes the second release of the 2014 version. The 2014.1 release is simply 2013 reincarnated for 2014 Revit.


Fig. 3

Let’s look at the new filter by view visibility option. In the new Optimized (2014.2) mode of operation (default), all geometry that is visible in the 3D View titled “ElumTools_WorkingView” (created automatically) will be considered in the calculation of the selected area: Room or Space (Fig. 3).

This loses the simplicity of turning off furniture with the old Room/Space contents switch, but it adds lots of flexibility in that you can filter out anything you like from the calculations by simply hiding it in the ElumTools_WorkingView. This might not only be furniture, but small details such as plumbing fixtures or plants. To use the Filter by View setting, open the ElumTools Settings dialog and switch the “Filter by View Visibility” to True (Fig. 4). Then use Revit’s Visibility Graphics system to filter the view before running your calculations.


Fig. 4


Fig. 5

So what’s behind the “Advanced” button? (Fig.5) As mentioned previously in this post, the defaults are adequate for most environments, but that said, there are a few cases where you may need to make an adjustment to ensure ElumTools can see all of the necessary geometry.

The Advanced settings have two distinct behaviors: the ability to increase the size of the room/space calculation volume (top portion of the dialog), and the ability to assign a specific treatment to some geometric components (lower portion). In both cases, the goal is to enable the ElumTools room/space calculation volume to include the geometry that you want, and perhaps omit portions that you do not.

The top section of the dialog is simple: increase the value used for “Offset” to expand the calculation volume (Boundary, Upper, Lower)(Fig. 6). The idea here is some geometric elements that are important to the calculation may lie outside the volume entirely (do not intersect).


Fig. 6

An example would be the glazing in a curtain wall. In order to allow ElumTools Room/Space boundaries to find this important element (especially for daylighting), we can expand the “Boundary Offset” from the default value (0.020833) by a small amount to intersect the curtain glazing (change to 0.1). See the example below (Fig. 7).


Fig. 7

One – This room contains a curtain wall. Two – With the default settings we see no glass, and thus, no daylight! Three – Adjust the Boundary offset to 0.1 and now we have glass, and light!

The lower portion of the dialog provides control over the treatment of specific categories of geometry (and more) contained in the Revit project (once again, the defaults are typically adequate). When the calculation volume is increased to help find intersecting geometry (the Boundary Offset), it may leave small “slivers” of geometric elements that are now captured within the expanded boundary, but are outside of the actual volume created by the intersection of all the elements such as ceiling, walls, and floor (Fig. 8). It is nice to be able to remove these excess portions of geometry that have no impact on the computations from the visualization (and calculation). Bring on the “Remove Slivers” option!


Fig. 8

In development we identified several categories that always needed special treatment for slivers (ceilings, floors, roofs, walls). These categories are shown in the dialog and assigned “Remove Slivers” by default (Fig. 9).


Fig. 9



However, it is possible when setting the Boundary Offset to a larger value (0.35 for example) that you may defeat the sliver removal process due to the “Sliver Removal Tolerance” being too small (also Fig. 9). The solution is to simply increase the “Sliver Removal Distance Tolerance”. A value double the Boundary Offset is usually sufficient.



In a slightly different use case, some categories require special treatment in order to capture the entire element. This is typical of a category such as Curtain Wall Mullions where the boundary intersects the element but does not capture all surfaces. These categories are assigned the property “Include Entire Element” by default. You will notice in the renderings of our daylight room above, the mullions are extending beyond the room when viewed from outside, this is the result of the capture entire element behavior.

Given the two behaviors: “Remove Slivers” and “Include Entire Element”, you may find cases in your projects where some geometric elements are either creating slivers, or, are not being captured by ElumTools. To assign a behavior, locate the category in the list by using the filter, then assign it the desired property.

For example: in Figure 10 below we have searched for all categories that contain the text “curtain”. The results are shown. We can then select the behavior for the desired category from the pull down menu.


Fig. 10

As you might expect, some of these things are subject to “Trial and Error”.  Hopefully, you can dial-in your results quickly!