I mentioned a number of uses of the temporary transaction trick a few days back.
Autodesk's own Revit API transaction expert Arnošt Löbel has a very important point to add to that discussion:
The procedure as described is not always going to work.
First of all, you need to regenerate manually before retrieving any modified geometry; even that is not always guaranteed to give you the accurate and proper geometry.
Many times you will need to actually commit the 'temporary' transaction, since that is the only way to guarantee that all changes propagate though the model.
In order to undo the temporary transaction, you need to enclose it within a transaction group and roll back that group at the end. It goes as follows:
- Start a transaction group.
- Start a transaction
- Make changes.
- Commit the transaction
- Retrieve changed geometry
- Roll back the transaction group
Unfortunately, all too many are unaware of the fact that it is safe to read a model only after regeneration, and sometimes only after committing the open transaction. This is not only related to the 'temporary transaction' trick, it is simply a matter of fact: one should query model geometry only between transactions, or at least after regeneration (and auto-joining, if appropriate).
Cloud Based Team Foundation Service
We have seen how Git and Github can simplify global source code management and sharing, and Victor demonstrates one aspect of this by regularly providing his samples such as the Revit external access demo via that platform.
Now Microsoft joined the club, announcing its own cloud-based software project management platform, e.g. for Visual Studio, the Team Foundation Service.
Rotating Annotation Symbol
Saikat Bhattacharya discusses using the AnnotationSymbol.Location.Rotate and ElementTransformUtils.RotateElement methods to rotate an annotation symbol, and presents a sample code snippet implementing it.