Ejemplos de código fuente de macro

Utilice estos ejemplos de código para explorar las herramientas del Administrador de macros.

Hello World

En este código de ejemplo, se abre un cuadro de diálogo titulado "Dialog" con el contenido "Hello World".
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;

namespace My_First_Module
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    [Autodesk.Revit.DB.Macros.AddInId("E04BAFB6-D442-457A-A88C-CF2D7208793E")]
	public partial class ThisApplication
	{
		private void Module_Startup(object? sender, EventArgs e)
		{

		}

		private void Module_Shutdown(object? sender, EventArgs e)
		{

		}

		public void hello()
        {
            TaskDialog.Show("Dialog","Hello World");
        }
		
		
		#region Revit Macros generated code
		private void InternalStartup()
		{
			this.Startup += new System.EventHandler(Module_Startup);
			this.Shutdown += new System.EventHandler(Module_Shutdown);
		}
		#endregion
	}
}

Seleccionar todos los elementos

En este ejemplo de código, se seleccionarán todos los elementos del modelo actual.
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;

namespace My_First_Module
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    [Autodesk.Revit.DB.Macros.AddInId("E04BAFB6-D442-457A-A88C-CF2D7208793E")]
	public partial class ThisApplication
	{
		private void Module_Startup(object? sender, EventArgs e)
		{

		}

		private void Module_Shutdown(object? sender, EventArgs e)
		{

		}

				
		public void SelectAllElements()
		{
			// Get the UIDocument
			Autodesk.Revit.UI.UIDocument uidoc = this.ActiveUIDocument;
			
			// Get the Document from the UIDocument
			Autodesk.Revit.DB.Document doc = uidoc.Document;
			
			// Create a FilteredElementCollector that will collect all elements in the Document
			FilteredElementCollector collector = new FilteredElementCollector(doc);
			
			// Apply no filter, which means all elements are collected
			collector.WherePasses(new LogicalOrFilter(new ElementIsElementTypeFilter(false), new ElementIsElementTypeFilter(true)));
			
			// Convert the collected elements to a list of element ids
			IList<ElementId> ids = collector.ToElementIds().ToList();

			// Check if there are elements to select
			if (ids.Count > 0)
			{
				// Start a new transaction (Revit API requires this for most changes to the model)
				using (Transaction trans = new Transaction(doc, "Select All Elements"))
				{
					trans.Start();
					
					// Make the selection
					uidoc.Selection.SetElementIds(ids);
					
					trans.Commit();
				}
			}
		}
		
		#region Revit Macros generated code
		private void InternalStartup()
		{
			this.Startup += new System.EventHandler(Module_Startup);
			this.Shutdown += new System.EventHandler(Module_Shutdown);
		}
		#endregion
	}
}