Let me begin directly with some Revit API sample code today.
Here is a little external application showing how you can optionally prohibit family creation by subscribing to the cancellable DocumentCreating event:
class App : IExternalApplication { void OnDocumentCreating( object sender, DocumentCreatingEventArgs e ) { DocumentType typ = e.DocumentType; if( DocumentType.Family == typ ) { TaskDialog d = new TaskDialog( "Open Family Editor?" ); d.MainInstruction = "Creating a new family " + "document... would you like to proceed?"; d.MainContent = string.Format( "Document type: {0}\r\nCancellable: {1}", typ, (e.Cancellable ? "Yes" : "No") ); d.CommonButtons = TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.No; d.DefaultButton = TaskDialogResult.No; if( TaskDialogResult.No == d.Show() ) { e.Cancel(); } } } public Result OnStartup( UIControlledApplication a ) { a.ControlledApplication.DocumentCreating += new EventHandler<DocumentCreatingEventArgs>( OnDocumentCreating ); return Result.Succeeded; } public Result OnShutdown( UIControlledApplication a ) { return Result.Succeeded; } }
Surprisingly short and simple, isn't it, and the code speaks for itself, does it not?
Here is CancelFamilyCreation.zip containing the full source code, Visual Studio solution and add-in manifest of this little add-in.
For some little less hard-core UK-related BIM news, Stephen Hamil of RIBA Enterprises pointed out a couple of interesting titbits related to NBS and the National BIM Library, a free resource for the UK construction industry:
Thank you, Stephen, for the note.
Finally, I took a quick look at the free dbStuff Revit add-ins ChangeTextCase and NumberStuffByDirection, which look both useful and interesting. Thank you, Dima Chiriacov, for sharing these!