Lighting Power Density using ElumTools

Since day one of ElumTools, Revit has coexisted and offered several powerful tools for electrical analysis, including Lighting Power Density reporting functionality.  The latest releases of ElumTools include new functionality to make it easier to leverage Revit’s LPD tools as a natural part of the typical ElumTools workflow.

The Create Schedule command now includes some additional parameters which are associated with Rooms and Spaces.  To take advantage of the new electrical parameters, the first step is to create and configure Spaces in the host model.

Once you have Spaces set up, you need to make some decisions about how you wish to use each parameter.  Here is an overview of the role played by each.

Specified Lighting Load

These are intended to be reporting parameters and are fairly easy to define.  At a high level, the Specified Lighting Load parameters are values that are simply entered by the user as a design goal.  They are in no way connected to the Lighting Fixture families which are actually placed in the model.

Specified Loads are defined in the Electrical Instance Parameters of each Space.  See below.  Space Lighting Loads can either be specified “By Space Type”, particularly handy for code compliance evaluation, or individually on a per Space basis.

Actual Lighting Load

Actual Lighting Load is intelligently determined by Revit, based on the Luminaire family instances actually placed in the model.  This is intended to help ensure final design proposals meet the design specification and applicable electrical codes.

For Actual Lighting Loads to calculate as expected, all luminaire families must have a properly configured Electrical Connector.  This is a somewhat complex area and will be the subject of a future blog post. Conveniently, however, all of the families in the Built-in ElumTools library have the Electrical Connector set up “out of the box”, as of version 2018.4.

The luminaire families ship with a default load of 0VA, since each family could potentially represent many kinds of fixtures (with very different loads).  To get accurate LPD numbers, the user simply needs to define the Apparent Load Type Parameter appropriately for each fixture Type.


For Revit to compute the Actual Lighting Loads, the appropriate checkbox must be checked in the Electrical Settings. Otherwise, all Actual Lighting Loads will be reported as zero.

Computation of Lighting Loads can sometimes be a performance intensive process.  Therefore, it can be convenient to disable the load calculation functionality when working with larger models and/or on slower systems.



Luminaire Family Validation Made Easy

When a calculation is invoked, ElumTools automatically checks all Lighting Fixture families in the environment to determine whether the family has valid photometry applied.  If the program detects luminaires without photometry it throws a handy warning, alerting the user of the problem.  This is especially helpful for newbies as a quick check to see whether or not all the families are in order.

However, sometimes this warning will be triggered at times when the user actually intentionally doesn’t have a  photometric file assigned.  Take the case below.

In this case, ElumTools is warning the user that it found 4 table lamps (60 W Incandescent) without valid photometry assigned.  For most serious illumination engineering projects, this is what you want (a table lamp typically won’t be an integral part of a commercial lighting solution).  Often these kinds of families will be included in the Revit project for Rendering purposes, but are not germane to quantitative lighting analysis.

What to do?  You could of course click the “Do not show me this again” check box.  But that is a global change that will prevent the warning from popping in all cases, not just this particular one.

The latest releases of ElumTools now allow the user to “approve” individual Luminaire Types directly in Luminaire Manager.  This lets you suppress the invalid luminaire warning on a case-by-case basis.

By default, ElumTools will throw a warning for all Luminaire Types which show a “Red X” in Luminaire Manager (the way it has always worked).

Now, Luminaire Manager also gives the opportunity to click the “red X” and change it to a more friendly “green X”.  Family Types with green X’s still do not contain valid photometry.  But ElumTools will interpret them as “approved” and will not show a warning.

Similarly, you can also approve Luminaire Family Types which DO have valid photometry assigned.  This has no effect on the behavior of ElumTools (apart from changing the icon in Luminaire Manager) and is simply convenient for documentation.  It is in no way a requirement to approve Luminaire Types prior to calculating.

Behind the scenes, ElumTools stores whether a Family Type has been approved, as a shared parameter called “ElumTools Validated”.  This can be easily scheduled which can serve as a quick way to see which families still need validation (particularly useful on large projects).  Revit even provides some conditional formatting tools to pretty things up.  What fun.

Calculation Points on Stairs

Stairs present an interesting challenge when placing calculation points in ElumTools.  Adding area based points, such as space points or region points, isn’t a good option because the calculation grid will be flat.  Planar face points also present a challenge as they would necessitate adding a separate calculation grid to each tread of the stair case (flexible but tedious).  These challenges make stairs a good candidate for line based calculation points.  Here’s a sample work flow.

  1. Create a Reference Plane following the profile of the stairs.  This will typically be easiest in a Section View.
  2. Draw a model line on the sloped reference plane.  This is typically easiest in a Plan View.
  3. Add line-based calculation points to the newly created model line, and use offset lines to create the grid.

Typically for stairs, you will want to define a tight point spacing to be used along the run of the calculation line. Offset lines can then be used to place points along the horizontal span of each tread.

Screen Shot 4

When calculating the stairwell, you will see the calculation points follow the profile of the stairs based on the spacing specified in the Add Points dialog.  Some iteration may be required to get points located in the necessary locations, particularly for complex staircases.  But by using line based points you will save the time of having to locate a separate grid on each tread.

Screen Shot 5

See the video below for an illustration of the steps described above.

Masking Calculation Points

ElumTools now allows calculation points to be associated with both Filled Regions and Areas.  That’s right. It is no longer a requirement that the calculation points be associated with the Room or Space being calculated.  Instead, the calculation points grid can have any shape. This provides an easy mechanism to exclude calculation points from portions of the grid that do not require analysis.

This flexibility can be useful in situations where large equipment or furniture is present.   An easy work flow for this situation is to,

  1. Create a Filled Region or Masking Region, leaving a hole for the equipment.
  2. Add Calculation Points to the Region using the ElumTools command.
  3. Calculate the Room as usual. ElumTools will place points only within the boundary of the Region, while still calculating every element in the Room.  This ensures that all equipment will be properly considered for the Calculation, but calculation statistics will not be skewed due to objects occluding light reaching the calculation work plane.




Calculation Point Family Management

Every time a calculation grid is added to the project, ElumTools places an instance of the ElumTools Calculation Points Family into the Revit model.  This can be a useful visual indicator to determine where calculation points have been placed.  However, it is sometimes convenient to hide the Calculation Points Family.  This can be done using the Toggle Calc Points Family Visibility command as shown below.


The main caveat is the command will not hide the family if the active view has a View Template applied. You are instead greeted with the tool tip below and the Calculation Points Family remains visible.


What to do? Any View Template can be modified to hide the Calculation Points Family. The family is in its own subcategory and can be hidden, just as any other subcategory can be hidden in Revit.


Now suppose you’d like to hide the Generic Models category, but leave the ElumTools Calculation Points subcategory visible.  This can easily be accomplished by a few clicks on the Filters Tab of the Visibility/Graphics dialog.

Step 1. Enable Generic Models in Visibility/Graphics.


Step 2. Create a new Filter.

Create a Filter that hides all Generic Model families whose Family Name does not contain the string “ElumTools”.  This methodology can be applied to either a View Template, or the Visibility Graphics settings of any View in the Project.

Filter Dialog2

Duplicate Linked Models – a cautionary tale

Revit has an interesting feature that allows you to load duplicate linked models with the same name.  This can be useful in some situations but is often a consequence of a simple oversight.  This can sometimes cause problems, and is best understood through a visual example.

Design Tree

This can lead to problems in many parts of Revit and often isn’t a recommended workflow. One such problem you may encounter when using ElumTools is the inability to correctly specify Material Mapping settings. See below.


One solution to this problem is to define all nested linked models as “Overlays” rather than attachments. When nested models are defined as overlays, Revit only locates one instance of each linked model in the host file, which is typically desirable behavior.


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!

How important are surface reflectances?

The obvious answer to this question is “it depends on the application,” and every lighting professional can expound on the topic at length. However, in the case of ElumTools in Revit, the answer takes on a slightly more critical edge, as it is very easy to make mistakes that can produce unexpected results.

Here is the problem: ElumTools derives all surface reflectances from the material map (ElumTools ribbon, Material Mapping). ElumTools does NOT use the Revit values in Electrical Settings for the Space (shown below).  This is a common misconception for beginning users.


When designing ElumTools, we wanted the ability to associate reflectance as closely as possible with the actual material color for more accurate computations. The Revit API provides an easy avenue and allows ElumTools to see a material’s “Graphics Color”. From this color, we can calculate reflectance as shown below, where R, G and B are the percent contributions of the red, green and blue pixels, respectively.


Unfortunately, this approach assumes that the Graphics Color of the material is true to its actual color. This may not be the case. Therefore, ElumTools provides the very import material mapping interface to allow changes. The obvious downside:  if the user does not carefully map the materials by inspecting the reflectances that have been calculated from the Revit material colors, the lighting calculations will not be as expected.

In the case of linked architectural models, this problem can be exaggerated. Many of the materials are set in the architect’s model and are often not easy to associate with Room or Space surfaces, as the linked model elements are not selectable in the host model. The linked model materials and their calculated reflectances are available from the drop down menu at the top of the Material Mapping dialog (shown below).


It is extremely important that you make sure that ALL material reflectances are what you want for lighting calculations, in all models, by setting the value for each relevant material as shown below. It is typical that you will have to change, at minimum, the ceiling tile, carpet and wall color.


Let’s look at a case where extra diligence is required. Imagine the Revit Graphics color for a material is white. Examine the material map in the next screen capture: this is exactly the case. ElumTools will internally not allow 100% reflectance, so it is set to 99%.

There is an easy way to sort the materials list in ElumTools to expose ALL of the highest reflectance materials. Sort the reflectance column by clicking on the top of the column. In the file shown there are several materials with 99% reflectance (white material). This is quite an interesting problem, as it allows light to continue bouncing around the environment almost infinitely. Only 1% of the light is absorbed on each bounce. It is also highly unlikely that the material’s reflectance is actually that high.


When computing the results for a model with such high reflectance surfaces, the calculation engine will grind away for much longer than normally experienced, as light continues to bounce from surface to surface. Eventually the process reaches convergence, but as you might guess, the light levels are much higher than anticipated!

Here are a couple of tips to improve the process:

  1. Take the time to assign accurate reflectances to the important materials (ceiling, walls, floor) and then SAVE the materials map to be used with any project. This works nicely if the materials in your architectural models tend to be the same or similar. The Save and Load buttons are in the lower left corner of the Material Mapping dialog.
  2. Alternatively, group selected materials and assign them a single reflectance. For example: Shift-select all materials and assign them a reflectance of 50% as shown below. Then locate your ceiling and floor materials and reassign them to 80% and 20%, or your preference.


The bottom line: if you set your materials correctly, your lighting calculations will be accurate and as expected!

This article was born from an actual user experience. As the ElumTools development team examined the models, we started thinking of ways to make the process easier. Currently we are investigating a way to have a “Simplified Materials Map” that would allow you to assign Ceiling, Walls, Floor and “Other” reflectances and ask the software to sort it out internally. Back in the 2012 API and original ElumTools design we didn’t think we had that ability, but it may now be possible. Stay tuned.

Daylighting in ElumTools 2014.4

It is now possible to calculate daylight illuminance (fc or lux) in ElumTools 2014 (released 2014.4) using the familiar Room, Space or Selected Elements techniques. The electric lighting component can be included as well if desired. The current capability calculates results for a single date and time for your Revit project location, or any site you might elect to study using the Perez sky model and weather data published by the US-DOE.


To get started you will first need to install ElumTools 2014.4 (or later depending on when you read this) AND the separate weather database available from the ElumTools website. Assuming you are already well versed in ElumTools workflow, you obviously need to validate materials and luminaire families (if considering electric lighting) and place work plane calculation points.


Now switch modes to Daylighting using the Modes menu which previously contained only General Use (electric) and Emergency modes. You will notice an additional button appears on the ribbon to set the “Daylight Parameters”. Click there and you will see your Revit project latitude and longitude shown. Don’t be alarmed if the True North angle seems odd. ElumTools uses a different coordinate system than Revit with Zero East and positive angles CCW. The Revit true north angle is automatically converted to the ET system in this dialog.


If you like, you can add your own site locations using the Sites button which can be useful if you want to quickly compare what your daylighting performance might be at another location without changing the Revit site. The Weather database allows you to easily locate latitude and longitude for the site location of your choice. It’s easy to reset to your Revit site by just clicking the Reset button.

Next, set your date, time and select the sky model. The IES and CIE sky models are included but the Perez model is required when using real weather data (LEED version 4, Nov 2013 release requires local weather data be used). Use the “Select Closest” button to load the weather station closest to your Revit project site location.

That’s it, unless you want to include electric lighting in the calculation in which case you must check the box at the top of the dialog. You can dim and switch your lights on an instance basis if desired when including electric lighting component from Revit Properties. LEED calculations stipulate daylight alone so playing with the electric contribution is for your own knowledge.

Once you close the dialog you are free to use any of ElumTools calculation options to compute daylight illuminance (single Room or Space, Multiple Rooms/Spaces or Selected Elements). If you have created Revit schedules for lighting results, they will now report daylight illuminance. You can switch back and forth between daylight and electric lighting results (or Emergency) using the Mode menu and results are maintained for each calculation type.

Watch the short video on YouTube (or to see the step-by-step process.


You MUST set the visible transmittance of your glazing in ElumTools materials map. ElumTools collapses all multi-pane systems into a single “Daylight Portal” with Vt_total equal to the transmittance property set in the materials map. All glazing must be in an exterior wall/roof and should be oriented properly (exterior side out).



The current daylight implementation cannot consider exterior structural elements such as light-shelves or other exterior devices. It also cannot see any external structures such as the skyscraper across the street. We are working on conquering these details as we speak.