/// <summary> /// Initializes quantities. /// </summary> /// <param name="fileVersion">The IFC file version.</param> /// <param name="exportBaseQuantities">True if export base quantities.</param> public static void InitQuantities(ParameterCache cache, IFCVersion fileVersion) { InitCommonQuantities(cache.Quantities); if (fileVersion == IFCVersion.IFCCOBIE) { InitCOBIEQuantities(cache.Quantities); } }
/// <summary> /// Initializes property sets. /// </summary> /// <param name="fileVersion">The IFC file version.</param> public static void InitPropertySets(ParameterCache cache, IFCVersion fileVersion) { InitCommonPropertySets(cache.PropertySets); if (fileVersion == IFCVersion.IFCCOBIE) { InitCOBIEPropertySets(cache.PropertySets); } }
/// <summary> /// Clear all caches contained in this manager. /// </summary> public static void Clear() { if (m_AllocatedGeometryObjectCache != null) { m_AllocatedGeometryObjectCache.DisposeCache(); } m_AllocatedGeometryObjectCache = null; m_AssemblyInstanceCache = null; m_ClassificationCache = null; m_CurveAnnotationCache = null; m_DummyHostCache = null; m_ElementToHandleCache = null; m_ExportOptionsCache = null; m_HandleToElementCache = null; m_HostPartsCache = null; m_LevelInfoCache = null; m_MaterialLayerRelationsCache = null; m_MaterialLayerSetCache = null; m_MaterialHandleCache = null; m_MaterialRelationsCache = null; m_MEPCache = null; m_RailingCache = null; m_RailingSubElementCache = null; m_ParameterCache = null; m_PartExportedCache = null; m_PresentationStyleCache = null; m_SpaceBoundaryCache = null; m_SpaceOccupantInfoCache = null; m_SpatialElementHandleCache = null; m_TypeObjectsCache = null; m_TypeRelationsCache = null; m_WallConnectionDataCache = null; m_UnitsCache = null; m_ZoneInfoCache = null; m_TypePropertyInfoCache = null; m_DoublePropertyInfoCache = null; m_BooleanPropertyInfoCache = null; m_IntegerPropertyInfoCache = null; m_StringPropertyInfoCache = null; m_HandleTypeCache = null; m_HandleIsSubTypeOfCache = null; m_GroupElementGeometryCache = null; m_PropertySetsForTypeCache = null; m_ConditionalPropertySetsForTypeCache = null; m_MaterialIdToStyleHandleCache = null; m_DefaultCartesianTransformationOperator3D = null; m_StairRampContainerInfoCache = null; }
/// <summary> /// Clear all caches contained in this manager. /// </summary> public static void Clear() { if (m_AllocatedGeometryObjectCache != null) m_AllocatedGeometryObjectCache.DisposeCache(); ParameterUtil.ClearParameterCache(); m_AllocatedGeometryObjectCache = null; m_AreaSchemeCache = null; m_AssemblyInstanceCache = null; m_BeamSystemCache = null; m_CategoryClassNameCache = null; m_CategoryTypeCache = null; m_CeilingSpaceRelCache = null; m_ClassificationCache = null; m_ClassificationLocationCache = null; m_ConditionalPropertySetsForTypeCache = null; m_ContainmentCache = null; m_CurveAnnotationCache = null; m_DefaultCartesianTransformationOperator3D = null; m_DummyHostCache = null; m_ElementToHandleCache = null; m_ElementsInAssembliesCache = null; m_ExportOptionsCache = null; m_FabricAreaHandleCache = null; m_GridCache = null; m_GroupCache = null; m_GroupElementGeometryCache = null; m_HandleToElementCache = null; m_HostPartsCache = null; m_IsExternalParameterValueCache = null; m_LevelInfoCache = null; m_MaterialIdToStyleHandleCache = null; m_MaterialLayerRelationsCache = null; m_MaterialLayerSetCache = null; m_MaterialHandleCache = null; m_MaterialRelationsCache = null; m_MEPCache = null; m_ParameterCache = null; m_PartExportedCache = null; m_PresentationLayerSetCache = null; m_PresentationStyleCache = null; m_PropertyInfoCache = null; m_PropertyMapCache = null; m_PropertySetsForTypeCache = null; m_RailingCache = null; m_RailingSubElementCache = null; m_SpaceBoundaryCache = null; m_SpaceOccupantInfoCache = null; m_SpatialElementHandleCache = null; m_StairRampContainerInfoCache = null; m_SystemsCache = null; m_TrussCache = null; m_TypeObjectsCache = null; m_TypePropertyInfoCache = null; m_TypeRelationsCache = null; m_ViewScheduleElementCache = null; m_WallConnectionDataCache = null; m_WallTypeCache = null; m_UnitsCache = null; m_ZoneCache = null; m_ZoneInfoCache = null; }
/// <summary> /// Clear all caches contained in this manager. /// </summary> public static void Clear() { if (m_AllocatedGeometryObjectCache != null) { m_AllocatedGeometryObjectCache.DisposeCache(); } ParameterUtil.ClearParameterCache(); m_AllocatedGeometryObjectCache = null; m_AreaSchemeCache = null; m_AssemblyInstanceCache = null; m_BeamSystemCache = null; m_CategoryClassNameCache = null; m_CategoryTypeCache = null; m_CeilingSpaceRelCache = null; m_ClassificationCache = null; m_ClassificationLocationCache = null; m_ConditionalPropertySetsForTypeCache = null; m_ContainmentCache = null; m_CurveAnnotationCache = null; m_DefaultCartesianTransformationOperator3D = null; m_DummyHostCache = null; m_ElementToHandleCache = null; m_ElementsInAssembliesCache = null; m_ExportOptionsCache = null; m_FabricAreaHandleCache = null; m_GridCache = null; m_GroupCache = null; m_GroupElementGeometryCache = null; m_HandleToElementCache = null; m_HostPartsCache = null; m_IsExternalParameterValueCache = null; m_LevelInfoCache = null; m_MaterialIdToStyleHandleCache = null; m_MaterialLayerRelationsCache = null; m_MaterialLayerSetCache = null; m_MaterialHandleCache = null; m_MaterialRelationsCache = null; m_MEPCache = null; m_ParameterCache = null; m_PartExportedCache = null; m_PresentationLayerSetCache = null; m_PresentationStyleCache = null; m_PropertyInfoCache = null; m_PropertyMapCache = null; m_PropertySetsForTypeCache = null; m_RailingCache = null; m_RailingSubElementCache = null; m_SpaceBoundaryCache = null; m_SpaceOccupantInfoCache = null; m_SpatialElementHandleCache = null; m_StairRampContainerInfoCache = null; m_SystemsCache = null; m_TrussCache = null; m_TypeObjectsCache = null; m_TypePropertyInfoCache = null; m_TypeRelationsCache = null; m_ViewScheduleElementCache = null; m_WallConnectionDataCache = null; m_WallTypeCache = null; m_UnitsCache = null; m_ZoneCache = null; m_ZoneInfoCache = null; }
/// <summary> /// Implements the method that Autodesk Revit will invoke to perform an export to IFC. /// </summary> /// <param name="document">The document to export.</param> /// <param name="exporterIFC">The IFC exporter object.</param> /// <param name="view">The 3D view that is being exported.</param> /// <param name="filterView">The view whose filter visibility settings govern the export.</param> public void ExportIFC(Autodesk.Revit.DB.Document document, ExporterIFC exporterIFC, Autodesk.Revit.DB.View view, Autodesk.Revit.DB.View filterView) { try { String writeIFCExportedElementsVar = Environment.GetEnvironmentVariable("WriteIFCExportedElements"); if (writeIFCExportedElementsVar != null && writeIFCExportedElementsVar.Length > 0) { m_Writer = new StreamWriter(@"c:\ifc-output-filters.txt"); } //init common properties m_ParameterCache = new ParameterCache(); ExporterInitializer.InitPropertySets(m_ParameterCache, exporterIFC.FileVersion); ExporterInitializer.InitQuantities(m_ParameterCache, exporterIFC.FileVersion); m_PresentationStyleCache = new PresentationStyleAssignmentCache(); m_CurveAnnotationCache = new CurveAnnotationCache(); //export spatial element - none or 1st level room boundaries if (exporterIFC.SpaceBoundaryLevel == 0 || exporterIFC.SpaceBoundaryLevel == 1) { SpatialElementExporter.InitializeSpatialElementGeometryCalculator(document, exporterIFC); ElementFilter spatialElementFilter = ElementFilteringUtil.GetSpatialElementFilter(document, exporterIFC); FilteredElementCollector collector = (filterView == null) ? new FilteredElementCollector(document) : new FilteredElementCollector(document, filterView.Id); collector.WherePasses(spatialElementFilter); foreach (Element element in collector) { ExportElement(exporterIFC, filterView, element); } } else if (exporterIFC.SpaceBoundaryLevel == 2) { SpatialElementExporter.ExportSpatialElement2ndLevel(this, exporterIFC, document, filterView); } //export other elements ElementFilter nonSpatialElementFilter = ElementFilteringUtil.GetNonSpatialElementFilter(document, exporterIFC); FilteredElementCollector collector2 = (filterView == null) ? new FilteredElementCollector(document) : new FilteredElementCollector(document, filterView.Id); collector2.WherePasses(nonSpatialElementFilter); foreach (Element element in collector2) { ExportElement(exporterIFC, filterView, element); } // These elements are created internally, but we allow custom property sets for them. Create them here. using (IFCProductWrapper productWrapper = IFCProductWrapper.Create(exporterIFC, true)) { // This allows for custom property sets for buildings. There are currently no custom quantities, // but the code could be added here at a later date. IFCAnyHandle buildingHnd = ExporterIFCUtils.GetBuilding(exporterIFC); productWrapper.AddBuilding(buildingHnd); ExportElementProperties(exporterIFC, document.ProjectInformation, productWrapper); } } finally { if (m_Writer != null) m_Writer.Close(); } }
/// <summary> /// Clear all caches contained in this manager. /// </summary> public static void Clear() { if (m_AllocatedGeometryObjectCache != null) m_AllocatedGeometryObjectCache.DisposeCache(); m_AllocatedGeometryObjectCache = null; m_AssemblyInstanceCache = null; m_ClassificationCache = null; m_CurveAnnotationCache = null; m_DummyHostCache = null; m_ElementToHandleCache = null; m_ExportOptionsCache = null; m_HandleToElementCache = null; m_HostPartsCache = null; m_LevelInfoCache = null; m_MaterialLayerRelationsCache = null; m_MaterialLayerSetCache = null; m_MaterialHandleCache = null; m_MaterialRelationsCache = null; m_MEPCache = null; m_RailingCache = null; m_RailingSubElementCache = null; m_ParameterCache = null; m_PartExportedCache = null; m_PresentationStyleCache = null; m_SpaceBoundaryCache = null; m_SpaceOccupantInfoCache = null; m_SpatialElementHandleCache = null; m_TypeObjectsCache = null; m_TypeRelationsCache = null; m_WallConnectionDataCache = null; m_UnitsCache = null; m_ZoneInfoCache = null; m_TypePropertyInfoCache = null; m_DoublePropertyInfoCache = null; m_BooleanPropertyInfoCache = null; m_IntegerPropertyInfoCache = null; m_StringPropertyInfoCache = null; m_HandleTypeCache = null; m_HandleIsSubTypeOfCache = null; m_GroupElementGeometryCache = null; m_PropertySetsForTypeCache = null; m_ConditionalPropertySetsForTypeCache = null; m_MaterialIdToStyleHandleCache = null; m_DefaultCartesianTransformationOperator3D = null; m_StairRampContainerInfoCache = null; }