BuildingCoder.CmdLinkedFileElements.Execute C# (CSharp) Méthode

Execute() public méthode

public Execute ( ExternalCommandData commandData, string &message, ElementSet highlightElements ) : System.Result
commandData ExternalCommandData
message string
highlightElements ElementSet
Résultat System.Result
        public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet highlightElements)
        {
            /*

              // retrieve all link elements:

              Document doc = app.ActiveUIDocument.Document;
              List<Element> links = GetElements(
            BuiltInCategory.OST_RvtLinks,
            typeof( Instance ), app, doc );

              // determine the link paths:

              DocumentSet docs = app.Documents;
              int n = docs.Size;
              Dictionary<string, string> paths
            = new Dictionary<string, string>( n );

              foreach( Document d in docs )
              {
            string path = d.PathName;
            int i = path.LastIndexOf( "\\" ) + 1;
            string name = path.Substring( i );
            paths.Add( name, path );
              }
              */

              // Retrieve lighting fixture element
              // data from linked documents:

              List<ElementData> data = new List<ElementData>();
              UIApplication app = commandData.Application;
              DocumentSet docs = app.Application.Documents;

              foreach( Document doc in docs )
              {
            FilteredElementCollector a
              = Util.GetElementsOfType( doc,
            typeof( FamilyInstance ),
            BuiltInCategory.OST_LightingFixtures );

            foreach( FamilyInstance e in a )
            {
              string name = e.Name;
              LocationPoint lp = e.Location as LocationPoint;
              if( null != lp )
              {
            XYZ p = lp.Point;
            data.Add( new ElementData( doc.PathName, e.Name,
              e.Id.IntegerValue, p.X, p.Y, p.Z, e.UniqueId ) );
              }
            }
              }

              // Display data:

              using( CmdLinkedFileElementsForm dlg = new CmdLinkedFileElementsForm( data ) )
              {
            dlg.ShowDialog();
              }

              return Result.Succeeded;
        }