// Check valid entity and type set according to the MVD used in the export // Also check and correct older standardcase entities and change it without StandardCase for IFC4 and onward void CheckValidEntity() { IFCCertifiedEntitiesAndPSets certEntAndPset = ExporterCacheManager.CertifiedEntitiesAndPsetsCache; // Special handling for *StandardCase entities that are not used anymore in IFC4 if (!ExporterCacheManager.ExportOptionsCache.ExportAsOlderThanIFC4) { if (m_ExportInstance.ToString().EndsWith("StandardCase", StringComparison.InvariantCultureIgnoreCase)) { string newInstanceName = m_ExportInstance.ToString().Remove(m_ExportInstance.ToString().Length - 12); // Special handling for IfcOpeningStandardCase to turn it to IfcOpeningElement if (newInstanceName.Equals("IfcOpening", StringComparison.InvariantCultureIgnoreCase)) { newInstanceName = newInstanceName + "Element"; } IFCEntityType newInst; if (Enum.TryParse <IFCEntityType>(newInstanceName, true, out newInst)) { //m_ExportInstance = newInst; SetValueWithPair(newInst); } } else if (m_ExportInstance.ToString().EndsWith("ElementedCase", StringComparison.InvariantCultureIgnoreCase)) { string newInstanceName = m_ExportInstance.ToString().Remove(m_ExportInstance.ToString().Length - 13); IFCEntityType newInst; if (Enum.TryParse <IFCEntityType>(newInstanceName, true, out newInst)) { SetValueWithPair(newInst); } } } if (!certEntAndPset.IsValidEntityInCurrentMVD(m_ExportType.ToString())) { m_ExportType = IFCEntityType.UnKnown; } if (!certEntAndPset.IsValidEntityInCurrentMVD(m_ExportInstance.ToString())) { m_ExportInstance = IFCEntityType.UnKnown; } // IfcProxy is deprecated, we will change it to IfcBuildingElementProxy if (m_ExportInstance == IFCEntityType.IfcProxy && !ExporterCacheManager.ExportOptionsCache.ExportAsOlderThanIFC4) { m_ExportInstance = IFCEntityType.IfcBuildingElementProxy; m_ExportType = IFCEntityType.IfcBuildingElementProxyType; } }
/// <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_CanExportBeamGeometryAsExtrusionCache = null; m_CategoryClassNameCache = null; m_CategoryTypeCache = null; m_CeilingSpaceRelCache = null; m_ClassificationCache = null; m_ClassificationLocationCache = null; m_ClassificationReferenceCache = null; //m_ConditionalPropertySetsForTypeCache = null; m_ContainmentCache = null; m_CurveAnnotationCache = null; m_DBViewsToExport = null; m_DefaultCartesianTransformationOperator3D = null; m_DoorWindowDelayedOpeningCreatorCache = null; m_DummyHostCache = null; m_ElementsInAssembliesCache = null; m_ElementToHandleCache = null; m_ElementTypeToHandleCache = null; m_ExportOptionsCache = null; m_FabricAreaHandleCache = null; m_FamilySymbolToTypeInfoCache = null; m_Global3DOriginHandle = null; m_GridCache = null; m_GroupCache = null; m_GUIDCache = null; m_GUIDsToStoreCache = null; m_HandleToElementCache = null; m_HostObjectsLevelIndex = null; m_HostPartsCache = null; m_IsExternalParameterValueCache = null; m_LevelInfoCache = null; m_MaterialIdToStyleHandleCache = null; m_MaterialSetUsageCache = null; m_MaterialSetCache = null; //m_MaterialConstituentCache = null; m_MaterialConstituentSetCache = null; m_MaterialHandleCache = null; m_MaterialRelationsCache = null; m_MEPCache = null; m_OwnerHistoryHandle = null; m_ParameterCache = null; m_PartExportedCache = null; m_PresentationLayerSetCache = null; m_PresentationStyleCache = null; m_ProjectHandle = null; m_PropertyInfoCache = null; m_PropertyMapCache = null; m_PropertySetsForTypeCache = null; m_RailingCache = null; m_RailingSubElementCache = null; m_SiteHandle = null; m_SpaceBoundaryCache = null; m_SpaceInfoCache = null; m_SpaceOccupantInfoCache = null; m_StairRampContainerInfoCache = null; m_SystemsCache = null; m_TrussCache = null; m_TypePropertyInfoCache = null; m_TypeRelationsCache = null; m_ViewScheduleElementCache = null; m_WallConnectionDataCache = null; m_UnitsCache = null; m_ZoneCache = null; m_ZoneInfoCache = null; BuildingHandle = null; m_CertifiedEntitiesAndPsetCache = null; m_HandleToDelete = null; m_Object2DCurves = null; ComplexPropertyCache.Clear(); }