Here you are the solution and don't forget to mark the reply as answer 
#region Namespaces
using System;
using System.Text;
using System.Linq;
using System.Xml;
using System.Reflection;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Media.Imaging;
using System.Windows.Forms;
using System.IO;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Events;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.DB.Mechanical;
using Autodesk.Revit.DB.Electrical;
using Autodesk.Revit.DB.Plumbing;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.UI.Events;
//using Autodesk.Revit.Collections;
using Autodesk.Revit.Exceptions;
using Autodesk.Revit.Utility;
using RvtApplication = Autodesk.Revit.ApplicationServices.Application;
using RvtDocument = Autodesk.Revit.DB.Document;
#endregion
namespace RevitAddinCS2
{
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class ExtCmd : IExternalCommand
{
#region Cached Variables
private static ExternalCommandData _cachedCmdData;
public static UIApplication CachedUiApp
{
get
{
return _cachedCmdData.Application;
}
}
public static RvtApplication CachedApp
{
get
{
return CachedUiApp.Application;
}
}
public static RvtDocument CachedDoc
{
get
{
return CachedUiApp.ActiveUIDocument.Document;
}
}
#endregion
#region IExternalCommand Members
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
_cachedCmdData = commandData;
if (CachedDoc.IsFamilyDocument)
{
message = "The document must be a project document.";
return Result.Failed;
}
CachedApp.SharedParametersFilename = @"C:\shared.txt";
// get SP from SP file
DefinitionFile df = CachedApp.OpenSharedParameterFile();
DefinitionGroups dgs = df.Groups;
StringBuilder sb = new StringBuilder();
foreach (DefinitionGroup dg in dgs)
{
sb.AppendLine(string.Format("Group Name: {0}", dg.Name));
foreach (Definition d in dg.Definitions)
{
if (d != null)
{
ExternalDefinition ed = d as ExternalDefinition;
sb.AppendLine(string.Format("Parameter {0} with Guid: {1}", ed.Name, ed.GUID.ToString()));
}
}
}
if(sb.Length > 0)
{
TaskDialog.Show("Revit", sb.ToString());
}
return Result.Succeeded;
}
#endregion
}
}
¯\_(ツ)_/¯
Let it work like a charm.
Mustafa Salaheldin


Digital Integration Manager, DuPod
Facebook |
Twitter |
LinkedIn