Dead-End: Improve Family Instance Creation #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using the batch methods did not yield better performance in Revit 2025. My guess is that at some point in the recent releases the instance generation performance was greatly increased and the batch methods are no longer wielding any practical benefits. Furthermore, this makes using the family instances as inputs down the chain of nodes impossible or very impractical.
superseded details
List of Affected Nodes/Modules
FamilyInstance.ByPoint
FamilyInstance.ByPointAndLevel
FamilyInstance.ByCoordinates
FamilyInstance.ByCoordinateSystem
FamilyInstance.ByFace
FamilyInstance.ByFace2
FamilyInstance.ByHostAndPoint
Current Performance
Revit provides batch family instance creation methods. However using them directly would require the introduction of new nodes or changing the existing nodes' method signature.
Proposed Performance
We can collect all of the family instance creations and schedule them to run in a single batch call at the end of the transaction.
Dynamo Tuneup Comparison
We have CPU time and then we have Revit time. TuneUp and profiling in VS can't show the whole picture, because it doesn't capture the Revit regeneration time. Creating 30k instances and returning control to the user takes a lot longer than what is reported.
Checklist