/// <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);
            }
        }
예제 #3
0
        /// <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;
        }
예제 #6
0
        /// <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();
            }

        }
예제 #7
0
        /// <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;
        }