internal List <string> IFCExportpredefined(Document doc) { //import List <string> ifcs = new List <string>(); IFCExportConfigurationsMap configurationsMap = new IFCExportConfigurationsMap(); configurationsMap.AddBuiltInConfigurations(); configurationsMap.Add(IFCExportConfiguration.GetInSession()); configurationsMap.AddSavedConfigurations(); configurationsMap = AddSavedConfigurations(configurationsMap, doc); //configurationsMap.Add(mauro); //IFCExport mainWindow = new IFCExport(doc, configurationsMap, configurationsMap.Values.ToList()[5].Name); //IFCExporterUIWindow iFCExporterUIWindow = new IFCExporterUIWindow(configurationsMap, configurationsMap.Values.ToList()[0].Name); //mainWindow.ShowDialog(); int n = configurationsMap.Values.Count(); for (int j = 0; j < configurationsMap.Values.Count(); j++) { List <IFCExportConfiguration> val = configurationsMap.Values.ToList(); ifcs.Add(val[j].Name); } return(ifcs); }
private bool ExportIFC(Document doc, string folder, string name, ElementId viewid, string settings) { //Create an instance of IFCExportOptions IFCExportOptions IFCOptions = new IFCExportOptions(); IFCExportConfigurationsMap configurationsMap = new IFCExportConfigurationsMap(); configurationsMap.AddBuiltInConfigurations(); configurationsMap.Add(IFCExportConfiguration.GetInSession()); configurationsMap.AddSavedConfigurations(); int n = configurationsMap.Values.Count(); AddSavedConfigurations(configurationsMap, doc); for (int j = 0; j < configurationsMap.Values.Count(); j++) { List <IFCExportConfiguration> val = configurationsMap.Values.ToList(); if (val[j].Name == settings) { val[j].VisibleElementsOfCurrentView = true; try { val[j].UpdateOptions(IFCOptions, viewid); } catch { } val[j].VisibleElementsOfCurrentView = true; } } try { Transaction k = new Transaction(doc, "export ifc"); k.Start(); doc.Export(folder, name, IFCOptions); k.Commit(); return(true); } catch (Exception e) { string error = e.Message; return(false); } }
//public void PrintPDF(Document doc) //{ // PrintManager pm = doc.PrintManager; // ViewSet viewSet = new ViewSet(); //} public IFCExportConfigurationsMap AddSavedConfigurations(IFCExportConfigurationsMap conf, Document doc) { Guid m_schemaId = new Guid("A1E672E5-AC88-4933-A019-F9068402CFA7"); Schema m_schema = Schema.Lookup(m_schemaId); Guid m_mapSchemaId = new Guid("DCB88B13-594F-44F6-8F5D-AE9477305AC3"); Schema m_mapSchema = Schema.Lookup(m_mapSchemaId); try { if (m_mapSchema != null) { foreach (DataStorage storedSetup in GetSavedConfigurations(doc, m_mapSchema)) { Entity configEntity = storedSetup.GetEntity(m_mapSchema); IDictionary <string, string> configMap = configEntity.Get <IDictionary <string, string> >(s_configMapField); IFCExportConfiguration configuration = IFCExportConfiguration.CreateDefaultConfiguration(); if (configMap.ContainsKey(s_setupName)) { configuration.Name = configMap[s_setupName]; } if (configMap.ContainsKey(s_setupVersion)) { configuration.IFCVersion = (IFCVersion)Enum.Parse(typeof(IFCVersion), configMap[s_setupVersion]); } if (configMap.ContainsKey(s_setupFileFormat)) { configuration.IFCFileType = (IFCFileFormat)Enum.Parse(typeof(IFCFileFormat), configMap[s_setupFileFormat]); } if (configMap.ContainsKey(s_setupSpaceBoundaries)) { configuration.SpaceBoundaries = int.Parse(configMap[s_setupSpaceBoundaries]); } if (configMap.ContainsKey(s_setupActivePhase)) { configuration.ActivePhaseId = new ElementId(int.Parse(configMap[s_setupActivePhase])); } if (configMap.ContainsKey(s_setupQTO)) { configuration.ExportBaseQuantities = bool.Parse(configMap[s_setupQTO]); } if (configMap.ContainsKey(s_setupCurrentView)) { configuration.VisibleElementsOfCurrentView = bool.Parse(configMap[s_setupCurrentView]); } if (configMap.ContainsKey(s_splitWallsAndColumns)) { configuration.SplitWallsAndColumns = bool.Parse(configMap[s_splitWallsAndColumns]); } if (configMap.ContainsKey(s_setupExport2D)) { configuration.Export2DElements = bool.Parse(configMap[s_setupExport2D]); } if (configMap.ContainsKey(s_setupExportRevitProps)) { configuration.ExportInternalRevitPropertySets = bool.Parse(configMap[s_setupExportRevitProps]); } if (configMap.ContainsKey(s_setupExportIFCCommonProperty)) { configuration.ExportIFCCommonPropertySets = bool.Parse(configMap[s_setupExportIFCCommonProperty]); } if (configMap.ContainsKey(s_setupUse2DForRoomVolume)) { configuration.Use2DRoomBoundaryForVolume = bool.Parse(configMap[s_setupUse2DForRoomVolume]); } if (configMap.ContainsKey(s_setupUseFamilyAndTypeName)) { configuration.UseFamilyAndTypeNameForReference = bool.Parse(configMap[s_setupUseFamilyAndTypeName]); } if (configMap.ContainsKey(s_setupExportPartsAsBuildingElements)) { configuration.ExportPartsAsBuildingElements = bool.Parse(configMap[s_setupExportPartsAsBuildingElements]); } if (configMap.ContainsKey(s_useActiveViewGeometry)) { configuration.UseActiveViewGeometry = bool.Parse(configMap[s_useActiveViewGeometry]); } if (configMap.ContainsKey(s_setupExportSpecificSchedules)) { configuration.ExportSpecificSchedules = bool.Parse(configMap[s_setupExportSpecificSchedules]); } if (configMap.ContainsKey(s_setupExportBoundingBox)) { configuration.ExportBoundingBox = bool.Parse(configMap[s_setupExportBoundingBox]); } if (configMap.ContainsKey(s_setupExportSolidModelRep)) { configuration.ExportSolidModelRep = bool.Parse(configMap[s_setupExportSolidModelRep]); } if (configMap.ContainsKey(s_setupExportSchedulesAsPsets)) { configuration.ExportSchedulesAsPsets = bool.Parse(configMap[s_setupExportSchedulesAsPsets]); } if (configMap.ContainsKey(s_setupExportUserDefinedPsets)) { configuration.ExportUserDefinedPsets = bool.Parse(configMap[s_setupExportUserDefinedPsets]); } if (configMap.ContainsKey(s_setupExportUserDefinedPsetsFileName)) { configuration.ExportUserDefinedPsetsFileName = configMap[s_setupExportUserDefinedPsetsFileName]; } if (configMap.ContainsKey(s_setupExportUserDefinedParameterMapping)) { configuration.ExportUserDefinedParameterMapping = bool.Parse(configMap[s_setupExportUserDefinedParameterMapping]); } if (configMap.ContainsKey(s_setupExportUserDefinedParameterMappingFileName)) { configuration.ExportUserDefinedParameterMappingFileName = configMap[s_setupExportUserDefinedParameterMappingFileName]; } if (configMap.ContainsKey(s_setupExportLinkedFiles)) { configuration.ExportLinkedFiles = bool.Parse(configMap[s_setupExportLinkedFiles]); } if (configMap.ContainsKey(s_setupIncludeSiteElevation)) { configuration.IncludeSiteElevation = bool.Parse(configMap[s_setupIncludeSiteElevation]); } if (configMap.ContainsKey(s_setupStoreIFCGUID)) { configuration.StoreIFCGUID = bool.Parse(configMap[s_setupStoreIFCGUID]); } if (configMap.ContainsKey(s_setupExportRoomsInView)) { configuration.ExportRoomsInView = bool.Parse(configMap[s_setupExportRoomsInView]); } if (configMap.ContainsKey(s_includeSteelElements)) { configuration.IncludeSteelElements = bool.Parse(configMap[s_includeSteelElements]); } //if (configMap.ContainsKey(s_useTypeNameOnlyForIfcType)) // configuration.UseTypeNameOnlyForIfcType = bool.Parse(configMap[s_useTypeNameOnlyForIfcType]); //if (configMap.ContainsKey(s_useVisibleRevitNameAsEntityName)) // configuration.UseVisibleRevitNameAsEntityName = bool.Parse(configMap[s_useVisibleRevitNameAsEntityName]); conf.Add(configuration); } return(conf); // if finds the config in map schema, return and skip finding the old schema. } // find the config in old schema. if (m_schema != null) { foreach (DataStorage storedSetup in GetSavedConfigurations(doc, m_schema)) { Entity configEntity = storedSetup.GetEntity(m_schema); IFCExportConfiguration configuration = IFCExportConfiguration.CreateDefaultConfiguration(); configuration.Name = configEntity.Get <String>(s_setupName); configuration.IFCVersion = (IFCVersion)configEntity.Get <int>(s_setupVersion); configuration.IFCFileType = (IFCFileFormat)configEntity.Get <int>(s_setupFileFormat); configuration.SpaceBoundaries = configEntity.Get <int>(s_setupSpaceBoundaries); configuration.ExportBaseQuantities = configEntity.Get <bool>(s_setupQTO); configuration.SplitWallsAndColumns = configEntity.Get <bool>(s_splitWallsAndColumns); configuration.Export2DElements = configEntity.Get <bool>(s_setupExport2D); configuration.ExportInternalRevitPropertySets = configEntity.Get <bool>(s_setupExportRevitProps); Field fieldIFCCommonPropertySets = m_schema.GetField(s_setupExportIFCCommonProperty); if (fieldIFCCommonPropertySets != null) { configuration.ExportIFCCommonPropertySets = configEntity.Get <bool>(s_setupExportIFCCommonProperty); } configuration.Use2DRoomBoundaryForVolume = configEntity.Get <bool>(s_setupUse2DForRoomVolume); configuration.UseFamilyAndTypeNameForReference = configEntity.Get <bool>(s_setupUseFamilyAndTypeName); Field fieldPartsAsBuildingElements = m_schema.GetField(s_setupExportPartsAsBuildingElements); if (fieldPartsAsBuildingElements != null) { configuration.ExportPartsAsBuildingElements = configEntity.Get <bool>(s_setupExportPartsAsBuildingElements); } Field fieldExportBoundingBox = m_schema.GetField(s_setupExportBoundingBox); if (fieldExportBoundingBox != null) { configuration.ExportBoundingBox = configEntity.Get <bool>(s_setupExportBoundingBox); } Field fieldExportSolidModelRep = m_schema.GetField(s_setupExportSolidModelRep); if (fieldExportSolidModelRep != null) { configuration.ExportSolidModelRep = configEntity.Get <bool>(s_setupExportSolidModelRep); } Field fieldExportSchedulesAsPsets = m_schema.GetField(s_setupExportSchedulesAsPsets); if (fieldExportSchedulesAsPsets != null) { configuration.ExportSchedulesAsPsets = configEntity.Get <bool>(s_setupExportSchedulesAsPsets); } Field fieldExportUserDefinedPsets = m_schema.GetField(s_setupExportUserDefinedPsets); if (fieldExportUserDefinedPsets != null) { configuration.ExportUserDefinedPsets = configEntity.Get <bool>(s_setupExportUserDefinedPsets); } Field fieldExportUserDefinedPsetsFileName = m_schema.GetField(s_setupExportUserDefinedPsetsFileName); if (fieldExportUserDefinedPsetsFileName != null) { configuration.ExportUserDefinedPsetsFileName = configEntity.Get <string>(s_setupExportUserDefinedPsetsFileName); } Field fieldExportUserDefinedParameterMapingTable = m_schema.GetField(s_setupExportUserDefinedParameterMapping); if (fieldExportUserDefinedParameterMapingTable != null) { configuration.ExportUserDefinedParameterMapping = configEntity.Get <bool>(s_setupExportUserDefinedParameterMapping); } Field fieldExportUserDefinedParameterMappingFileName = m_schema.GetField(s_setupExportUserDefinedParameterMappingFileName); if (fieldExportUserDefinedParameterMappingFileName != null) { configuration.ExportUserDefinedParameterMappingFileName = configEntity.Get <string>(s_setupExportUserDefinedParameterMappingFileName); } Field fieldExportLinkedFiles = m_schema.GetField(s_setupExportLinkedFiles); if (fieldExportLinkedFiles != null) { configuration.ExportLinkedFiles = configEntity.Get <bool>(s_setupExportLinkedFiles); } Field fieldIncludeSiteElevation = m_schema.GetField(s_setupIncludeSiteElevation); if (fieldIncludeSiteElevation != null) { configuration.IncludeSiteElevation = configEntity.Get <bool>(s_setupIncludeSiteElevation); } Field fieldStoreIFCGUID = m_schema.GetField(s_setupStoreIFCGUID); if (fieldStoreIFCGUID != null) { configuration.StoreIFCGUID = configEntity.Get <bool>(s_setupStoreIFCGUID); } Field fieldActivePhase = m_schema.GetField(s_setupActivePhase); if (fieldActivePhase != null) { configuration.ActivePhaseId = new ElementId(int.Parse(configEntity.Get <string>(s_setupActivePhase))); } Field fieldExportRoomsInView = m_schema.GetField(s_setupExportRoomsInView); if (fieldExportRoomsInView != null) { configuration.ExportRoomsInView = configEntity.Get <bool>(s_setupExportRoomsInView); } Field fieldIncludeSteelElements = m_schema.GetField(s_includeSteelElements); if (fieldIncludeSteelElements != null) { configuration.IncludeSteelElements = configEntity.Get <bool>(s_includeSteelElements); } //Field fieldUseTypeNameOnlyForIfcType = m_schema.GetField(s_useTypeNameOnlyForIfcType); //if (fieldUseTypeNameOnlyForIfcType != null) // configuration.UseTypeNameOnlyForIfcType = configEntity.Get<bool>(s_useTypeNameOnlyForIfcType); //Field fieldUseVisibleRevitNameAsEntityName = m_schema.GetField(s_useVisibleRevitNameAsEntityName); //if (fieldUseVisibleRevitNameAsEntityName != null) // configuration.UseVisibleRevitNameAsEntityName = configEntity.Get<bool>(s_useVisibleRevitNameAsEntityName); conf.Add(configuration); } } return(conf); } catch (Exception e) { string error = e.Message; return(conf);// to avoid fail to show the dialog if any exception throws in reading schema. } }