Example #1
0
        /// <summary>
        /// Will read Configuration file if passed, or default COBieAttributesFilters.config
        /// </summary>
        /// <param name="configFileName">Full path/name for config file</param>
        /// <param name="import"></param>
        private void FiltersHelperInit(string configFileName = null, ImportSet import = ImportSet.All)
        {
            //set default
            var sourceFile = configFileName ?? RoleFilter.Unknown.ToResourceName();
            var config     = GetConfig(sourceFile);

            //IfcProduct and IfcTypeObject filters
            if (import == ImportSet.All || import == ImportSet.IfcFilters)
            {
                IfcProductFilter    = new ObjectFilter(config.GetSection("IfcElementInclusion"));
                IfcTypeObjectFilter = new ObjectFilter(config.GetSection("IfcTypeInclusion"));
                IfcTypeObjectFilter.FillPreDefinedTypes(config.GetSection("IfcPreDefinedTypeFilter"));
                IfcAssemblyFilter = new ObjectFilter(config.GetSection("IfcAssemblyInclusion"));
            }

            //Property name filters
            if (import == ImportSet.All || import == ImportSet.PropertyFilters)
            {
                ZoneFilter      = new PropertyFilter(config.GetSection("ZoneFilter"));
                TypeFilter      = new PropertyFilter(config.GetSection("TypeFilter"));
                SpaceFilter     = new PropertyFilter(config.GetSection("SpaceFilter"));
                FloorFilter     = new PropertyFilter(config.GetSection("FloorFilter"));
                FacilityFilter  = new PropertyFilter(config.GetSection("FacilityFilter"));
                SpareFilter     = new PropertyFilter(config.GetSection("SpareFilter"));
                ComponentFilter = new PropertyFilter(config.GetSection("ComponentFilter"));
                CommonFilter    = new PropertyFilter(config.GetSection("CommonFilter"));
            }
            // API restructure:
            // a call to File.Delete(config.FilePath); has been removed
            // it is strange for the configuration reading routine to delete a configuration file
        }