CAD/BIM
Revit 2027 está instalado, pero su add-in no aparece en la cinta de opciones, o Revit avisa al arrancar de que no se puede cargar. La causa es casi siempre la misma: Revit 2027 funciona con .NET 10 y su add-in se compiló para .NET 8 o para .NET Framework.
Cómo está estructurado un add-in de Revit
Un add-in de Revit es una DLL de .NET con al menos una clase que implementa IExternalCommand (un comando) o IExternalApplication (inicio y cierre, por ejemplo para la cinta de opciones). Qué DLL y qué clase debe cargar Revit se indica en un pequeño archivo XML con la extensión .addin, el manifiesto. Cada cambio en el modelo necesita una transacción de Revit:
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
[Transaction(TransactionMode.Manual)]
public class KommentarSetzen : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message,
ElementSet elements)
{
var uidoc = commandData.Application.ActiveUIDocument;
var doc = uidoc.Document;
// Cada cambio en el modelo necesita una transacción de Revit
using (var t = new Transaction(doc, "Kommentar setzen"))
{
t.Start();
foreach (var id in uidoc.Selection.GetElementIds())
{
var parameter = doc.GetElement(id)
.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS);
if (parameter != null && !parameter.IsReadOnly)
{
parameter.Set("geprüft");
}
}
t.Commit();
}
return Result.Succeeded;
}
}
El comando escribe el comentario en todos los elementos seleccionados. Con el atributo TransactionMode.Manual, el add-in gestiona sus transacciones por sí mismo. Si falta el Commit, Revit deshace los cambios al salir del bloque using.
Qué cambia con Revit 2027
Revit 2024 y versiones anteriores funcionan con .NET Framework 4.8, Revit 2025 y 2026 con .NET 8. Revit 2027 funciona con .NET 10 y, según Autodesk, todos los add-ins deben compilarse con el SDK de .NET 10. Microsoft pone fin al soporte de .NET 8 el 10 de noviembre de 2026. Por eso, Autodesk ha anunciado que también pasará Revit 2025 y 2026 a .NET 10 y ha pedido a los desarrolladores que prueben sus add-ins con ello.
Según el blog para desarrolladores de Autodesk sobre el SDK de Revit 2027, se añaden otros cambios:
- Nuevas ubicaciones: Revit ya no busca los add-ins para todos los usuarios en
C:\ProgramData\Autodesk\Revit\Addins\2027, sino enC:\Program Files\Autodesk\Revit\Addins\2027. La carpeta por usuario sigue funcionando. TambiénApplication.AllUsersAddinsLocationdevuelve otro valor. - Aislamiento: desde Revit 2026, un add-in puede recibir un contexto de carga propio en el manifiesto, en
ManifestSettings, conUseRevitContextyContextName. Revit 2027 añadePublicAssemblies,DependenciesyUseAllContextsForDependencyResolution, para que los add-ins puedan hacer referencia unos a otros de forma explícita. - API modificada:
ModelPathUtils.GetAllCloudRegions()sustituye aCloudRegionUSyCloudRegionEMEA. Como obsoletos o eliminados, Autodesk menciona, entre otros, la importación AXM, partes deMechanical.Zone, métodos antiguos para crear armaduras y algunas propiedades deEnergyDataSettings.
Migrar en cuatro pasos
Paso 1: el archivo de proyecto. Cree un archivo de proyecto nuevo en formato SDK. Si Revit 2024 y 2027 deben atenderse desde un mismo código fuente, el SDK compila ambas versiones una tras otra:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Un código fuente, dos compilaciones: Revit 2024 y Revit 2027 -->
<TargetFrameworks>net48;net10.0-windows</TargetFrameworks>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net48'">
<RevitPfad>C:\Program Files\Autodesk\Revit 2024\</RevitPfad>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0-windows'">
<RevitPfad>C:\Program Files\Autodesk\Revit 2027\</RevitPfad>
</PropertyGroup>
<ItemGroup>
<Reference Include="RevitAPI">
<HintPath>$(RevitPfad)RevitAPI.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="RevitAPIUI">
<HintPath>$(RevitPfad)RevitAPIUI.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
</Project>
Para Revit 2025 y 2026 se añade, si es necesario, otro destino. Autodesk recomienda además un global.json que fije el SDK de .NET 10, y Visual Studio 2026 como entorno de desarrollo.
Paso 2: compilar y resolver los avisos. La advertencia CA1416 la elimina la línea [assembly: SupportedOSPlatform("windows")], que la propia Autodesk propone para los ejemplos del SDK. Después vienen los puntos en los que usted utiliza partes de la API eliminadas o modificadas.
Paso 3: las trampas de .NET 10. Lo que vale para AutoCAD vale también aquí: BinaryFormatter siempre lanza una excepción, la página de códigos 1252 necesita registrar CodePagesEncodingProvider y Process.Start solo abre archivos con UseShellExecute = true. Esto afecta precisamente a los add-ins que leen archivos de Excel o CSV.
Paso 4: entregar y probar. Adapte su instalador a las nuevas ubicaciones y pruebe su add-in en Revit 2027 junto con los demás add-ins de sus usuarios. Precisamente con bibliotecas compartidas, solo allí se ve si el aislamiento funciona como se esperaba.
Errores típicos
- El add-in se compila para .NET 8 y se coloca en Revit 2027. No se carga.
- El instalador sigue escribiendo el manifiesto en
ProgramData. Revit 2027 ya no busca allí. - Faltan
UseWPFyUseWindowsFormsen el archivo de proyecto, aunque la interfaz necesita ambos. - Las DLL de Revit se copian en la carpeta de salida con
Privateentrue. - Pulsar Esc al seleccionar provoca
Autodesk.Revit.Exceptions.OperationCanceledException. Quien captura la excepción homónima deSystemnotifica una cancelación como error. - Dos add-ins traen la misma biblioteca en versiones diferentes, y nadie lo ha probado.
Cómo le ayudamos
- Formación: nuestra formación «Revit .NET API con C#» trabaja con Revit 2027 y .NET 10.
- Revisión de add-ins Revit 2027: revisamos su add-in en cuanto a .NET 10, las nuevas ubicaciones y el aislamiento, y le decimos qué hay que hacer.
- Proyecto: desarrollamos add-ins de Revit, por ejemplo una exportación de datos de proyectos de laboratorio a XML, JSON y PDF para un proveedor de tecnología de laboratorio, y migramos los existentes. Concierte una primera conversación.
- El libro: el libro técnico de Ebi F. Eilber «AutoCAD .NET API», cuya publicación está prevista para 2027, describe en detalle las trampas de .NET 10.
Fuentes: Autodesk Developer Blog, «Revit 2027 SDK: .NET 10, API Changes and Additions» (10/04/2026) y «Call for Preview Testing: Revit 2026/2025 Migration to .NET 10» (29/04/2026); Ebi F. Eilber, AutoCAD .NET API (libro técnico, publicación prevista para 2027)
