Ejemplo n.º 1
0
        private static RevitAddInCommand CreateRevitAddInCmd(AddInCmdInfo cmdInfo)
        {
            RevitAddInCommand myCmd = new RevitAddInCommand(cmdInfo.Assembly, new Guid(cmdInfo.AddInId), cmdInfo.FullClassName, cmdInfo.VendorId);

            myCmd.Description                  = cmdInfo.Description;
            myCmd.Text                         = cmdInfo.Text;
            myCmd.FullClassName                = cmdInfo.FullClassName;
            myCmd.Discipline                   = cmdInfo.Discipline;            //在什么样的程序模式下的命令按钮显示,程序命令模式如结构、设备……
            myCmd.VisibilityMode               = cmdInfo.VisibilityMode;        //在文档模式改变时命令按钮显示的方式
            myCmd.AvailabilityClassName        = cmdInfo.AvailabilityClassName; //验证程序名称
            myCmd.AllowLoadIntoExistingSession = cmdInfo.AllowLoadIntoExistingSession;
            myCmd.VendorDescription            = cmdInfo.VendorDescription;
            return(myCmd);
        }
Ejemplo n.º 2
0
        //private AddInInfo CreateModel(bool? state)
        //{

        //	if(state.HasValue) {

        //	} else {


        //	}
        //	AddInCmdInfo cmdInfo = null;
        //	AddInAppInfo appInfo = null;
        //	var selectedItem = cbxSchema.SelectedItem.ToString();
        //	if(ExternalSchema.外部命令.ToString() == selectedItem) {
        //		cmdInfo = PackCmdInfo();
        //	} else if(ExternalSchema.外部程序.ToString() == selectedItem) {
        //		appInfo = PackAppInfo();
        //	} else {

        //		cmdInfo = PackCmdInfo();
        //		appInfo = PackAppInfo();
        //	}
        //}

        private AddInCmdInfo PackCmdInfo()
        {
            AddInCmdInfo cmd = new AddInCmdInfo();

            cmd.AddInId = txtCmdGuid.Text;
            cmd.AllowLoadIntoExistingSession = chkBxAtuoLoad.Checked;
            cmd.Assembly = txtCmdDllPath.Text;
            cmd.AvailabilityClassName = txtCmdAvailability.Text;
            cmd.FullClassName         = txtCmdAssemblyFullName.Text;
            cmd.LanguageType          = LanguageType.Chinese_Simplified;
            cmd.Text              = txtCmdName.Text;
            cmd.Description       = txtCmdDescription.Text;
            cmd.Discipline        = GetDisciplineVal();
            cmd.VisibilityMode    = (VisibilityMode)Enum.Parse(typeof(VisibilityMode), cbxVisibleMode.SelectedItem.ToString());
            cmd.VendorId          = txtVendorId.Text;
            cmd.VendorDescription = txtVendorDescription.Text;
            return(cmd);
        }
Ejemplo n.º 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            AddInCmdInfo cmdInfo      = null;
            AddInAppInfo appInfo      = null;
            var          selectedItem = cbxSchema.SelectedItem.ToString();

            if (ExternalSchema.外部命令.ToString() == selectedItem)
            {
                cmdInfo = PackCmdInfo();
            }
            else if (ExternalSchema.外部程序.ToString() == selectedItem)
            {
                appInfo = PackAppInfo();
            }
            else
            {
                cmdInfo = PackCmdInfo();
                appInfo = PackAppInfo();
            }

            string result = RAIManager.CreateManifest(txtAddInName.Text, cbxVersion.SelectedItem.ToString().Replace("Revit", ""), cmdInfo, appInfo);

            MessageBox.Show(result, "系统提示");
        }
Ejemplo n.º 4
0
        public static string CreateManifest(string addinName, string version, AddInCmdInfo cmdInfo, AddInAppInfo appInfo)
        {
            string manifestFilePath = string.Format("{0}\\{1}\\{2}.addin", SystemVariables.RevitProgramDataPath, version, addinName);

            try {
                RevitAddInManifest revitAddInManifest = AddInManifestUtility.GetRevitAddInManifest(manifestFilePath);

                var cmds = revitAddInManifest.AddInCommands;
                var apps = revitAddInManifest.AddInApplications;

                for (int i = 0; i < cmds.Count; i++)
                {
                    var cmd = cmds[i];
                    if (cmd.AddInId.ToString() != cmdInfo.AddInId)
                    {
                        revitAddInManifest.AddInCommands.Add(CreateRevitAddInCmd(cmdInfo));
                    }
                    else
                    {
                        cmd.VendorId          = cmdInfo.VendorId;
                        cmd.VendorDescription = cmdInfo.VendorDescription;
                        cmd.Description       = cmdInfo.Description;
                        cmd.Text                         = cmdInfo.Text;
                        cmd.FullClassName                = cmdInfo.FullClassName;
                        cmd.Discipline                   = cmdInfo.Discipline;
                        cmd.VisibilityMode               = cmdInfo.VisibilityMode;
                        cmd.AvailabilityClassName        = cmdInfo.AvailabilityClassName;
                        cmd.AllowLoadIntoExistingSession = cmdInfo.AllowLoadIntoExistingSession;
                    }
                }

                for (int i = 0; i < apps.Count; i++)
                {
                    var app = apps[i];
                    if (app.AddInId.ToString() != appInfo.AddInId)
                    {
                        revitAddInManifest.AddInApplications.Add(CreateRevitAddInApp(appInfo));
                    }
                    else
                    {
                        app.Name                         = appInfo.Name;
                        app.VendorId                     = appInfo.VendorId;
                        app.VendorDescription            = appInfo.VendorDescription;
                        app.FullClassName                = appInfo.FullClassName;
                        app.AllowLoadIntoExistingSession = appInfo.AllowLoadIntoExistingSession;
                    }
                }
                revitAddInManifest.Save();
            }
            catch {
                try {
                    RevitAddInManifest manifest = new RevitAddInManifest();

                    if (cmdInfo != null)
                    {
                        RevitAddInCommand myCmd = CreateRevitAddInCmd(cmdInfo);
                        manifest.AddInCommands.Add(myCmd);
                    }

                    if (appInfo != null)
                    {
                        RevitAddInApplication myApp = CreateRevitAddInApp(appInfo);
                        manifest.AddInApplications.Add(myApp);
                    }

                    //RevitProduct newRevitProduct = RevitProductUtility.GetAllInstalledRevitProducts()[0];
                    //string manifestFilePath = string.Format("{0}\\{1}", newRevitProduct.AllUsersAddInFolder, addinName);
                    manifest.SaveAs(manifestFilePath);
                }
                catch (Exception ex) {
                    return(ex.Message);
                }
            }

            return("创建成功");
        }