Autodesk introduced a bug in Revit 2017 which can cause the project Phase information to become corrupted when using the Wire command.  This manifests in all Phases being removed from the project, without the possibility to recover them or add new ones.  

ElumTools expects all projects to have at least one Phase, and will not function properly once this problem occurs.  Similarly, this issue also causes problems in many other parts of Revit.


Calculate Boundary (rooms, spaces, areas, regions) commands do not parse host model geometry correctly when project Phase information is corrupt.  If Filter by View Visibility is set to true, the user gets the error shown below.  If Filter by View Visibility is set to false, the calculation will run but ElumTools will fail to detect any elements residing in the host model.  This usually results in a black rendering since the luminaires must reside in the host model.

Applies to Revit 2017 and 2018.


Autodesk has released patches that address the problem.  Users should update to the following Revit versions or greater, as appropriate.  Note that at the time of writing, the updates provided by Autodesk do NOT fix the problem for files which have already been corrupted.  Installing the updates will simply prevent the same problem for occurring on future projects.

  • 2018.1
  • 2017.2.3

More information

Autodesk Bug Report


Because this problem only affects the calculate boundary commands, users can still use the Calculate View commands or Calculate Selected Element command on projects experiencing this problem.

Error Message

Could not complete ElumTools command:  CalculateBoundaryCommand

System.NullReferenceException: Object reference not set to an instance of an object.
   at ElumTools.RevitExtenstions.SetPhase(View view, Phase phase)
   at ElumTools.RevitExtenstions.FindOrCreateWorkingView3d(Document doc, ElumToolsWorkingView workingView, Phase phase)
   at ElumTools.HeliosExport.ExportBoundaryElements(ExtrusionCalculationSolidCreator creator)
   at ElumTools.HeliosExport.ExportBoundaryElements(List`1 boundaries)
   at ElumTools.HeliosExport.AddEntities(IEnumerable`1 boundaries)
   at ElumTools.CalculateBoundaryElements.ExtractEnvironment(IEnumerable`1 elements)
   at ElumTools.CalculateBoundaryElements.Calculate(BoundaryElement element)
   at ElumTools.CalculateBoundaryElements.Calculate(IEnumerable`1 elements, CalculateMultipleElementsMode mode)
   at ElumTools.CalculateBoundaryElements.Calculate(IEnumerable`1 elements, CalculateMultipleElementsMode mode)
   at ElumTools.CalculateBoundariesBaseCommand.ExecuteCalculation()
   at ElumTools.CalculateBaseCommand.Execute()
   at ElumTools.ElumToolsCommand.ExecuteCommand(String& message, ElementSet elements)
   at ElumTools.ElumToolsCommand.ExecuteInternal(String& message, ElementSet elements)
   at ElumTools.ElumToolsCommand.ExecuteTransaction(ExternalCommandData commandData, String& message, ElementSet elements)
   at ElumTools.ElumToolsCommand.Execute(ExternalCommandData commandData, String& message, ElementSet elements)

ElumTools 2017 Release 6 (2017.6.0.34)
7444  [2017-09-08 17:32 (-06:00 UTC)]