Exemplo n.º 1
0
        // 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;
            }
        }
Exemplo n.º 2
0
        /// <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();
        }