#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!#!GUI忽略SourceDataset_SCHEMA_1,SCHEMA_IN_REAL_FORMAT_SCHEMA_1,SourceDataset_SCHEMA DEFAULT_MACRO TO_KEEP build ding_name GUI文本TO_KEEP字段to Keep(逗号分隔):DEFAULT_MACRO SourceDataset_SCHEMA $(FME_MF_DIR)SD_BUILDING。dwg GUI文件e_or_url SourceDataset_SCHEMA All_files|*。* Source Dataset: DEFAULT_MACRO SCHEMA_IN_REAL_FORMAT_SCHEMA ACADSCAN GUI READERPICK SCHEMA_IN_REAL_FORMAT_SCHEMA Schema Source Format: #!START_HEADER # !multi_reader_gen_{0} SCHEMA_1 multi_reader_gen_{0} REAL_FORMAT,AUTOCAD_OD,_MERGE_SCHEMAS,YES,SCHEMA_READER, YES WRITER_TYPE FDS WRITER_KEYWORD FDS_1 #!END_WB_HEADER # !宏WB_KEYWORD“SCHEMA_1”#!END_WB_HEADER # !该映射文件生成的数据集是:#!END_SOURCE_HEADER # !START_WB_HEADER DEFAULT_MACRO SourceDataset包括[if {{$(SourceDataset)} != ""} {\ put {DEFAULT_MACRO SourceDataset_SCHEMA_1 $(SourceDataset)} \}] #!END_WB_HEADER # !START_SOURCE_HEADER模式SCHEMA_1 DEFAULT_MACRO SourceDataset_SCHEMA_1 $(SourceDataset_SCHEMA)* Source Dataset: SCHEMA_1_EXTENSION DEFAULT_MACRO SCHEMA_IN_REAL_FORMAT_SCHEMA_1 $(SCHEMA_IN_REAL_FORMAT_SCHEMA) SCHEMA_1_REAL_FORMAT "$(SCHEMA_IN_REAL_FORMAT_SCHEMA_1)" GUI READERPICK SCHEMA_IN_REAL_FORMAT_SCHEMA_1 Input Format: DEFAULT_MACRO SCHEMA_IN_SCHEMA_READER_SCHEMA_1 yes SCHEMA_1_SCHEMA_READER "$(SCHEMA_IN_SCHEMA_READER_SCHEMA_1)" SCHEMA_1_DATASET "$(SourceDataset_SCHEMA_1)" #!END_SOURCE_HEADER # !宏WB_KEYWORD "FDS_1" #!END_WB_HEADER # !START_DEST_HEADER FDS FDS_1 # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = #只是假宏观;没有使用#!END_DEST_HEADER # !START_WB_HEADER DEFAULT_MACRO DestDataset包含[if {"$(DestDataset)"] != ""} { \ puts {DEFAULT_MACRO DestDataset_FDS_1 $(DestDataset)} \ } ] #!END_WB_HEADER # !NULL FDS_1_DATASET "$(DestDataset_FDS_1)"# !END_DEST_HEADER # !FME FME_GEOMETRY_HANDLING END_HEADER LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE:增强FME_STROKE_MAX_DEVIATION 0 MAPPING_FILE_ID源模式的子集LOG_FILTER_MASK 1 DEFAULT_MACRO DATASET_KEYWORD_SCHEMA_1 SCHEMA_1 DEFAULT_MACRO DATASET_KEYWORD_FDS_1 FDS_1 FDS_PRIMARY_READER_DATASET SourceDataset_SCHEMA FDS_SWIZZLE_TYPE INNER_SWIZZLE FDS_ASSOCIATE_WITH_EXTENSIONS没有FDS_INHERIT_SPATIAL_CONSTRAINTS FDS_PROVIDE_SCHEMA是的#------------------------------------------------------------------------- SCHEMA_1_READER_META_ATTRIBUTES fme_basename fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME SCHEMASUBSET MACRO FME_VIEWER_APP fmeview # ------------------------------------------------------------------------- Lookup ___KnownFeatureTypes___ "$(DATASET_KEYWORD_SCHEMA_1)_schema" yes "" no # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME "Unexpected Input Remover" INPUT FEATURE_TYPE * TEST @Lookup(___KnownFeatureTypes___,@Concatenate(&multi_reader_keyword,"_",@FeatureType())) == yes OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Source -> Generic" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * @Transform(&multi_reader_type,FME_GENERIC,ALIAS_GEOMETRY) DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- Tcl2 proc ParameterFetcher_doFetch {} { FME_SetAttribute {_to_keep} [FME_DecodeText {$(TO_KEEP)}] } FACTORY_DEF * TeeFactory FACTORY_NAME ParameterFetcher INPUT FEATURE_TYPE schema OUTPUT FEATURE_TYPE ParameterFetcher_OUTPUT @Tcl2(ParameterFetcher_doFetch) # ------------------------------------------------------------------------- FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME PythonCaller INPUT FEATURE_TYPE ParameterFetcher_OUTPUT SYMBOL_NAME keep_defs SOURCE_CODE from pyfme 进口 * def keep_defs 功能 : att_name_list = feature.getListAttribute 属性 . name att_ntype_list = feature.getListAttribute 属性 .native_data_type att_ftype_list = feature.getListAttribute 属性 .fme_data_type keep_values = feature.getStringAttribute _to_keep keep_list = keep_values.split 如果 att_name_list != 没有: feature.removeListAttribute 属性 . name feature.removeListAttribute 属性 .native_data_type feature.removeListAttribute 属性 .fme_data_type = 0 范围 len att_name_list : 如果 att_name_list keep_list : feature.setStringAttribute 属性 + str + . name att_name_list feature.setStringAttribute 属性 + str + .native_data_type att_ntype_list feature.setStringAttribute 属性 + str + .fme_data_type att_ftype_list = + 1 如果 att_name_list == fme_geometry 0 : feature.setStringAttribute fme_geometry 0 att_ftype_list 输出PYOUTPUT FEATURE_TYPE PythonCaller_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRemover输入FEATURE_TYPE PythonCaller_OUTPUT输出FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes (_to_keep) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME“AttributeRemover_OUTPUT - >模式相关器”输入FEATURE_TYPE AttributeRemover_OUTPUTOUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ @Transform(FME_GENERIC,FDS) @SupplyAttributes(__wb_out_feat_type__,schema) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME "Final Output Feature Type Router" INPUT FEATURE_TYPE * TEST @Value(__wb_out_feat_type__) != "" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value(__wb_out_feat_type__)) # ------------------------------------------------------------------------- FDS_1_DEF schema fme_type fme_no_geom fme_feature_type_name char(200) attribute{}.name char(200) attribute{}.fme_data_type char(200) attribute{}.native_data_type char(200) fme_format_long_name char(200) fme_format_short_name char(200)