コード例 #1
0
ファイル: EACommand.cs プロジェクト: dangwalsh/ImportExcel
 /// <summary>
 /// Command entry point
 /// </summary>
 /// <param name="commandData"></param>
 /// <param name="message"></param>
 /// <param name="elements"></param>
 /// <returns></returns>
 public Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements)
 {
     try
     {
         EADocumentData    eadd = new EADocumentData(elements, commandData);
         EASharedParamData easp = new EASharedParamData("Rooms");
         //easp.SetNewParameterToTypeRoom("Display");
         MainWindow mw = new MainWindow();
         mw.ShowDialog();
         return(Result.Succeeded);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         Console.Read();
         return(Result.Failed);
     }
 }
コード例 #2
0
ファイル: EAFactory.cs プロジェクト: dangwalsh/ImportExcel
        /// <summary>
        ///
        /// </summary>
        /// <param name="elem"></param>
        void ParamFactory(Element elem, DataRow row)
        {
            foreach (KeyValuePair <string, string> usrParam in EAFileData.MapDict)
            {
                if (usrParam.Key == "Count" || usrParam.Key == "Name" || usrParam.Key == "")
                {
                    continue;
                }

                bool match = false;
                ParameterSetIterator parSetItor = elem.Parameters.ForwardIterator();
                while (parSetItor.MoveNext())
                {
                    Parameter elemParam = parSetItor.Current as Parameter;

                    if (usrParam.Key == elemParam.Definition.Name)  // if it already exists we need to assign it
                    {
                        match = true;
                        // need to test storage type  NOTE: may not need to do this...
                        switch (elemParam.StorageType)
                        {
                        case StorageType.ElementId:
                            // don't ever want to assign elementId
                            break;

                        case StorageType.Double:
                            elemParam.SetValueString(row[usrParam.Value].ToString());
                            break;

                        case StorageType.String:
                            elemParam.Set(row[usrParam.Value].ToString());
                            break;

                        case StorageType.Integer:
                            if (elemParam.Definition.ParameterType != ParameterType.YesNo)
                            {
                                elemParam.SetValueString(row[usrParam.Value].ToString());
                            }
                            break;

                        default:
                            break;
                        }
                    }
                }

                if (!match)  // if it does NOT exist we need to create it
                {
                    Category    roomCat = EADocumentData.Doc.Settings.Categories.get_Item(BuiltInCategory.OST_Rooms);
                    CategorySet catSet  = new CategorySet();
                    catSet.Insert(roomCat);
                    EASharedParamData.CreateProjParamFromExistSharedParam(usrParam.Key,
                                                                          catSet,
                                                                          BuiltInParameterGroup.PG_IDENTITY_DATA,
                                                                          true
                                                                          );
                    // now that we've made it, we need to set it
                    ParameterSetIterator parSetRevItor = elem.Parameters.ReverseIterator();
                    while (parSetRevItor.MoveNext())
                    {
                        Parameter elemParam = parSetRevItor.Current as Parameter;
                        if (usrParam.Key == elemParam.Definition.Name)  // if it already exists we need to assign it
                        {
                            switch (elemParam.StorageType)
                            {
                            case StorageType.ElementId:
                                // don't ever want to assign elementId
                                break;

                            case StorageType.Double:
                                elemParam.SetValueString(row[usrParam.Value].ToString());
                                break;

                            case StorageType.String:
                                elemParam.Set(row[usrParam.Value].ToString());
                                break;

                            case StorageType.Integer:
                                if (elemParam.Definition.ParameterType != ParameterType.YesNo)
                                {
                                    elemParam.SetValueString(row[usrParam.Value].ToString());
                                }
                                break;

                            default:
                                break;
                            }
                            break;
                        }
                    }
                }
            }
        }