Skip to content

Instantly share code, notes, and snippets.

View ricaun's full-sized avatar

Luiz Henrique Cassettari ricaun

View GitHub Profile
@ricaun
ricaun / ExtensionApplication.cs
Last active May 9, 2025 19:08
AutoCAD abstraction for IExtensionApplication
using Autodesk.AutoCAD.ApplicationServices.Core;
using Autodesk.AutoCAD.Ribbon;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Windows;
using System;
namespace ricaun.AutoCAD.UI
{
/// <summary>
/// Abstract base class for implementing an AutoCAD Extension Application.
@ricaun
ricaun / AutoCADVersion.CopyBundleFiles.csproj
Last active May 8, 2025 17:31
Copy BundleFiles Target for Autodesk AutoCAD
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<CopyBundleFiles>true</CopyBundleFiles>
</PropertyGroup>
<PropertyGroup>
<BundleDestinationFolder>$(AppData)\Autodesk\ApplicationPlugins\$(MSBuildProjectName).bundle</BundleDestinationFolder>
</PropertyGroup>
@ricaun
ricaun / RevitVersion.CopyAddinFiles.csproj
Last active May 8, 2025 00:24
Copy AddinFiles Target for Autodesk Revit
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<CopyAddinFiles>true</CopyAddinFiles>
</PropertyGroup>
<PropertyGroup>
<AddinDestinationFolder>$(AppData)\Autodesk\Revit\Addins\$(RevitVersion)\</AddinDestinationFolder>
</PropertyGroup>
@ricaun
ricaun / InventorVersion.CopyAddinFiles.csproj
Last active May 8, 2025 00:24
Copy AddinFiles Target for Autodesk Inventor
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<CopyAddinFiles>true</CopyAddinFiles>
</PropertyGroup>
<PropertyGroup>
<AddinDestinationFolder>$(AppData)\Autodesk\Inventor $(InventorVersion)\Addins\</AddinDestinationFolder>
</PropertyGroup>
@ricaun
ricaun / RibbonToolTipExtension.cs
Created April 21, 2025 15:36
SetTooltipVideo extension using ricaun.Revit.UI
using ricaun.Revit.UI;
using System;
namespace RevitAddin.ToolTipVideo.Revit;
public static class RibbonToolTipExtension
{
public static IRibbonItem SetTooltipVideo<IRibbonItem>(this IRibbonItem ribbonItem, string videoPath,
string title = null,
string toolTip = null,
@ricaun
ricaun / UIDocumentCloseExtension.cs
Last active February 25, 2025 12:45
Revit api extension to close all or active UI documents.
using Autodesk.Revit.UI;
using System;
using UIFramework;
namespace RevitTest.UIDocument.Tests
{
///<summary>
/// Provides extension methods for closing UI documents in the Revit application.
/// </summary>
public static class UIDocumentCloseExtension
@ricaun
ricaun / ricaun.RevitInAddInContext.cs
Created January 19, 2025 16:11
Revit API in AddIn context implementation.
bool InAddInContext(UIApplication application)
{
// ActiveAddInId is null when invoke outside Revit Api context.
return application.ActiveAddInId is not null;
}
@ricaun
ricaun / AsyncExternalEventHandler.cs
Created July 24, 2024 14:07
Simple Async ExternalEventHandler for Revit API
using Autodesk.Revit.UI;
using System;
using System.Threading.Tasks;
public class AsyncExternalEventHandler : IExternalEventHandler
{
private readonly Action<UIApplication> execute;
private readonly ExternalEvent externalEvent;
private TaskCompletionSource<bool> eventCompleted;
public AsyncExternalEventHandler(Action<UIApplication> execute)
@ricaun
ricaun / code.cmd
Last active August 2, 2024 11:46
File to use in Revit 2025 to force Macro Manager to open csproj file with your IDE.
@echo off
REM Navigate to the specified directory
cd /d "%~1"
REM Loop through all .csproj files and open them
for %%f in (*.csproj) do (
start "" "%%~f"
)
@ricaun
ricaun / AppScale.cs
Created March 18, 2024 21:17
BitmapSource Dpi Extension to scale dpi image to fit in the 32x32 inside Revit
using Autodesk.Revit.UI;
using ricaun.Revit.UI;
namespace RevitAddin.Forum.Revit
{
[AppLoader]
public class AppScale : IExternalApplication
{
private RibbonPanel ribbonPanel;
public Result OnStartup(UIControlledApplication application)