Buckets:
kuklev9797/revit-ckpts / assets /samples /Samples /ExternalCommand /CS /RevitAddInUtilitySample /RevitAddInUtilityForm.cs
| // | |
| // (C) Copyright 2003-2019 by Autodesk, Inc. | |
| // | |
| // Permission to use, copy, modify, and distribute this software in | |
| // object code form for any purpose and without fee is hereby granted, | |
| // provided that the above copyright notice appears in all copies and | |
| // that both that copyright notice and the limited warranty and | |
| // restricted rights notice below appear in all supporting | |
| // documentation. | |
| // | |
| // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. | |
| // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF | |
| // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. | |
| // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE | |
| // UNINTERRUPTED OR ERROR FREE. | |
| // | |
| // Use, duplication, or disclosure by the U.S. Government is subject to | |
| // restrictions set forth in FAR 52.227-19 (Commercial Computer | |
| // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) | |
| // (Rights in Technical Data and Computer Software), as applicable. | |
| // | |
| using System; | |
| using System.Collections.Generic; | |
| using System.ComponentModel; | |
| using System.Data; | |
| using System.Drawing; | |
| using System.Linq; | |
| using System.Text; | |
| using System.Windows.Forms; | |
| using Autodesk.RevitAddIns; | |
| using System.IO; | |
| using System.Diagnostics; | |
| namespace Revit.SDK.Samples.RevitAddInUtilitySample.CS | |
| { | |
| /// <summary> | |
| /// Demonstrates how to use RevitAddInUtility.dll to create or edit addin manifest file. | |
| /// </summary> | |
| public partial class RevitAddInUtilitySampleForm : Form | |
| { | |
| public RevitAddInUtilitySampleForm() | |
| { | |
| InitializeComponent(); | |
| this.AddInsInfoButton.Enabled = false; | |
| this.OpenAddInFileButton.Enabled = false; | |
| } | |
| /// <summary> | |
| /// Create a .addin manifest file when user push this button. | |
| /// The new created manifest file contains an external command and an external application. | |
| /// </summary> | |
| private void CreateAddInManifestButton_Click(object sender, EventArgs e) | |
| { | |
| RevitAddInManifest Manifest = new RevitAddInManifest(); | |
| FileInfo fileInfo = new FileInfo("ExternalCommandRegistration.dll"); | |
| //create an external application | |
| RevitAddInApplication application1 = new RevitAddInApplication( | |
| "ExternalApplication", fileInfo.FullName, Guid.NewGuid(), | |
| "Revit.SDK.Samples.ExternalCommandRegistration.CS.ExternalApplicationClass", "adsk"); | |
| //create an external command to create a wall | |
| //This command will not be visible when there is no active document. | |
| //And this command will be disabled if user selected a wall. | |
| RevitAddInCommand command1 = new RevitAddInCommand( | |
| fileInfo.FullName, Guid.NewGuid(), | |
| "Revit.SDK.Samples.ExternalCommandRegistration.CS.ExternalCommandCreateWall", "adsk"); | |
| command1.Description = "A simple external command which is used to create a wall."; | |
| command1.Text = "@createWallText"; | |
| command1.AvailabilityClassName = "Revit.SDK.Samples.ExternalCommandRegistration.CS.WallSelection"; | |
| command1.LanguageType = LanguageType.English_USA; | |
| command1.LargeImage = "@CreateWall"; | |
| command1.TooltipImage = "@CreateWallTooltip"; | |
| command1.VisibilityMode = VisibilityMode.NotVisibleWhenNoActiveDocument; | |
| command1.LongDescription = "This command will not be visible in Revit Structure or there is no active document."; | |
| command1.LongDescription += " And this command will be disabled if user selected a wall. "; | |
| //create an external command to show a message box | |
| //This command will not be visible Family Document or no active document. | |
| //And this command will be disabled if the active view is not a 3D view. "; | |
| RevitAddInCommand command2 = new RevitAddInCommand( | |
| fileInfo.FullName, Guid.NewGuid(), | |
| "Revit.SDK.Samples.ExternalCommandRegistration.CS.ExternalCommand3DView", "adsk"); | |
| command2.Description = "A simple external command which show a message box."; | |
| command2.Text = "@view3DText"; | |
| command2.AvailabilityClassName = "Revit.SDK.Samples.ExternalCommandRegistration.CS.View3D"; | |
| command2.LargeImage = "@View3D"; | |
| command2.LanguageType = LanguageType.English_USA; | |
| command2.VisibilityMode = VisibilityMode.NotVisibleInFamily | VisibilityMode.NotVisibleWhenNoActiveDocument; | |
| command2.LongDescription = "This command will not be visible in Revit MEP, Family Document or no active document."; | |
| command2.LongDescription += " And this command will be disabled if the active view is not a 3D view. "; | |
| //add both applications and commands into addin manifest | |
| Manifest.AddInApplications.Add(application1); | |
| Manifest.AddInCommands.Add(command1); | |
| Manifest.AddInCommands.Add(command2); | |
| //save addin manifest in same place with RevitAddInUtilitySample.exe | |
| fileInfo = new FileInfo("ExternalCommand.Sample.addin"); | |
| Manifest.SaveAs(fileInfo.FullName); | |
| AddInsInfoButton_Click(null, null); //show addins information in the tree view | |
| this.AddInsInfoButton.Enabled = true; | |
| this.OpenAddInFileButton.Enabled = true; | |
| } | |
| /// <summary> | |
| /// Show AddIns information of new create manifest file in the tree view | |
| /// </summary> | |
| private void AddInsInfoButton_Click(object sender, EventArgs e) | |
| { | |
| FileInfo fileInfo = new FileInfo("ExternalCommand.Sample.addin"); | |
| RevitAddInManifest revitAddInManifest = | |
| Autodesk.RevitAddIns.AddInManifestUtility.GetRevitAddInManifest(fileInfo.FullName); | |
| this.treeView1.Nodes.Clear(); | |
| if (revitAddInManifest.AddInApplications.Count >= 1) | |
| { | |
| TreeNode apps= this.treeView1.Nodes.Add("External Applications"); | |
| foreach (RevitAddInApplication app in revitAddInManifest.AddInApplications) | |
| { | |
| TreeNode appNode = apps.Nodes.Add(app.Name); | |
| appNode.Nodes.Add("Name: " + app.Name); | |
| appNode.Nodes.Add("Assembly: " + app.Assembly); | |
| appNode.Nodes.Add("AddInId: " + app.AddInId); | |
| appNode.Nodes.Add("Full Class Name: " + app.FullClassName); | |
| } | |
| } | |
| if (revitAddInManifest.AddInCommands.Count >= 1) | |
| { | |
| TreeNode cmds = this.treeView1.Nodes.Add("External Commands"); | |
| foreach (RevitAddInCommand cmd in revitAddInManifest.AddInCommands) | |
| { | |
| TreeNode cmdNode = cmds.Nodes.Add(cmd.Text); | |
| cmdNode.Nodes.Add("Assembly: " + cmd.Assembly); | |
| cmdNode.Nodes.Add("AddInId: " + cmd.AddInId); | |
| cmdNode.Nodes.Add("Full Class Name: " + cmd.FullClassName); | |
| cmdNode.Nodes.Add("Text: " + cmd.Text); | |
| cmdNode.Nodes.Add("Description: " + cmd.Description); | |
| cmdNode.Nodes.Add("LanguageType: " + cmd.LanguageType); | |
| cmdNode.Nodes.Add("LargeImage: " + cmd.LargeImage); | |
| cmdNode.Nodes.Add("LongDescription: " + cmd.LongDescription); | |
| cmdNode.Nodes.Add("TooltipImage: " + cmd.TooltipImage); | |
| cmdNode.Nodes.Add("VisibilityMode: " + cmd.VisibilityMode.ToString()); | |
| cmdNode.Nodes.Add("AvailabilityClassName: " + cmd.AvailabilityClassName); | |
| } | |
| } | |
| } | |
| /// <summary> | |
| /// Show all the installed Revit product information of user's PC in the tree view | |
| /// </summary> | |
| private void RevitProductsButton_Click(object sender, EventArgs e) | |
| { | |
| this.treeView1.Nodes.Clear(); | |
| TreeNode allProductsNode = this.treeView1.Nodes.Add("Installed Revit Products: "); | |
| foreach (RevitProduct revitProduct in RevitProductUtility.GetAllInstalledRevitProducts()) | |
| { | |
| TreeNode productNode = allProductsNode.Nodes.Add(revitProduct.Name); | |
| productNode.Nodes.Add("Product Name: " + revitProduct.Name); | |
| productNode.Nodes.Add("AllUsersAddInFolder: " + revitProduct.AllUsersAddInFolder); | |
| productNode.Nodes.Add("Architecture: " + revitProduct.Architecture); | |
| //productNode.Nodes.Add("Build: " + revitProduct.Build); // deprecated | |
| productNode.Nodes.Add("Current User AddIn Folder: " + revitProduct.CurrentUserAddInFolder); | |
| productNode.Nodes.Add("Install Location: " + revitProduct.InstallLocation); | |
| productNode.Nodes.Add("ProductCode: " + revitProduct.ProductCode); | |
| productNode.Nodes.Add("Version: " + revitProduct.Version); | |
| } | |
| } | |
| /// <summary> | |
| /// Open new created AddIn manifest file - ExternalCommand.Sample.addin | |
| /// </summary> | |
| private void OpenAddInFileButton_Click(object sender, EventArgs e) | |
| { | |
| FileInfo fileInfo = new FileInfo("ExternalCommand.Sample.addin"); | |
| Process.Start(new ProcessStartInfo { FileName = fileInfo.FullName, UseShellExecute = true }); | |
| } | |
| } | |
| } | |
Xet Storage Details
- Size:
- 9.19 kB
- Xet hash:
- 3e406dbf7fe773376493ebae5f25e905e0979ee9773b21014056579772ee5737
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.