You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I've noticed that the display of the Revit file info is a massive bottleneck for large lists of files. I've been running a script for 5200 families, and the display process of file information took over 80 minutes. This is only to show individual lines of the already processed information.
This bottleneck is caused by the ShowSupportedRevitFileInfo method.
I'm guessing that because each line calls the output method for each line that creates a new timer, it slows it down dramatically.
Removing the calls to output reduces the pre-processing time for the same 5200 families from 80 minutes to 10 seconds.
But I'm guessing that the logging should still be there, so I'd suggest changing this method to output a multi-line string instead, which can be processed by a slightly modified output method that allows for processing multi-line strings.
message="\n"ifnonExistentCount>0:
message+=""message+="WARNING: The following Revit Files do not exist ("+str(nonExistentCount) +"):"forsupportedRevitFileInfoinnonExistentRevitFileList:
message+=batch_rvt_monitor_util.ShowSupportedRevitFileInfo(supportedRevitFileInfo)
ifunsupportedCount>0:
message+="\n"message+="WARNING: The following Revit Files are of an unsupported version ("+str(unsupportedCount) +"):"forsupportedRevitFileInfoinunsupportedRevitFileList:
message+=batch_rvt_monitor_util.ShowSupportedRevitFileInfo(supportedRevitFileInfo)
ifunsupportedRevitFilePathCount>0:
message+="\n"message+="WARNING: The following Revit Files have an unsupported file path ("+str(unsupportedRevitFilePathCount) +"):"forsupportedRevitFileInfoinunsupportedRevitFilePathRevitFileList:
message+=batch_rvt_monitor_util.ShowSupportedRevitFileInfo(supportedRevitFileInfo)
Output(message)
and the output method needs to allow for a multiline string
This adds time to the processing (about 2 minutes) but shows the log, so still a 40x performance improvement.
The only thing is that the time stamp will be the same for the whole list of files, but if the list is generated in milliseconds, the output time doesn't matter.
I've also modified the READ_OUTPUT_INTERVAL_IN_MS in the BatchRvtGuiForm.cs to 10 ms, to show the text a bit quicker.
Hi,
I've noticed that the display of the Revit file info is a massive bottleneck for large lists of files. I've been running a script for 5200 families, and the display process of file information took over 80 minutes. This is only to show individual lines of the already processed information.
This bottleneck is caused by the ShowSupportedRevitFileInfo method.
I'm guessing that because each line calls the output method for each line that creates a new timer, it slows it down dramatically.
Removing the calls to output reduces the pre-processing time for the same 5200 families from 80 minutes to 10 seconds.
But I'm guessing that the logging should still be there, so I'd suggest changing this method to output a multi-line string instead, which can be processed by a slightly modified output method that allows for processing multi-line strings.
and a sample implementation
and the output method needs to allow for a multiline string
This adds time to the processing (about 2 minutes) but shows the log, so still a 40x performance improvement.
The only thing is that the time stamp will be the same for the whole list of files, but if the list is generated in milliseconds, the output time doesn't matter.
I've also modified the READ_OUTPUT_INTERVAL_IN_MS in the BatchRvtGuiForm.cs to 10 ms, to show the text a bit quicker.
You can check out this implementation in my fork - https://github.com/maciejwypych/RevitBatchProcessor
The text was updated successfully, but these errors were encountered: