# !# ! # ! # ! # !# !# ! # !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # ! # !# !# !# ! # !# !# !# ! # !# ! # !# !# !# !# !# !# ! # !

Version 1.1

This workbench generates CityGML 2.0 buildings from Sketchup models. No CityGML building geometry is generated, only boundary surfaces.


Latest changes:

- Coordinates are rounded up to 4 decimal places

- Bookmarks added

- Boundary surfaces LOD published as parameters

- OuterFloor/Ceiling surfaces resolved

" POSITION="-816 1949" TOP_LEFT="-816 1949" BOTTOM_RIGHT="-29 1612" BOUNDING_RECT="-816 1949 787 337" ORDER="5e+14" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.784314,0.192157" SIZE_POLICY="10" COMMENT_TYPE="REGULAR" ANCHORED_NODE="0">
# !
# ! # !# ! # !# !# !# !# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# ! # !

" last_save_date="" title="SketchupLayerExtractor" usage="


" fme_process_count="NO_PARALLELISM" fmx_attribute_propogation_mode="AUTO" doc_dynamic_input_attrs="0" markdown_usage="" fme_document_priorguid="1e3d1518-76e8-43e4-af8d-3256d3b0593b" doc_extents="3116 813" is_visible="false" last_save_build="" python_compatibility="" zoom_scale="100" guid="8c43a892-c26d-4fb7-8ebc-14d28b133c91" xform_deprecated="No" history="" view_position="-21 15" use_markdown="" fme_process_group_by="" fme_process_groups_ordered="No" suppress_upgrade="false" fme_document_guid="8c43a892-c26d-4fb7-8ebc-14d28b133c91" doc_top_left="100 -906" category="" markdown_description=""> # ! # !# ! # !# ! # !# ! # !# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# ! # ! # !# ! # !# !# !# !# !# !# !# ! # !# !# ! # !# !# !# !# !# !# !# ! # !# ! # !# !
# ! # ! # !# !# !# ! # !# !# !# ! # !# ! # !# ! # ! # !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# ! # ! # !# ! # !# !# !# !# ! # !# !# !# !# ! # !# ! # !# !# ! # ! # !# !# ! # !

Set role

" POSITION="2097 -951" TOP_LEFT="2097 -951" BOTTOM_RIGHT="2097 -951" BOUNDING_RECT="2097 -951 0 0" ORDER="24" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.784314,0.192157" SIZE_POLICY="8" COMMENT_TYPE="REGULAR" ANCHORED_NODE="1">
# !
# ! # !# ! # !# ! # ! # !# !# !# !# !# !# !# !# !# ! # ! # !# ! # !# !# !# !# ! # !# !# !# ! # !# ! # !# !
# !
# ! # !# !
FME_PYTHON_VERSION 27 GUI IGNORE SourceDataset_SKP_1,SKP_IN_READ_EDGES_SKP_1,SKP_IN_READ_HIDDEN_ELEMENTS_SKP_1,SKP_IN_COLOR_BY_LAYER_SKP_1,SKP_IN_COORDSYS_DATUM_SKP_1,SKP_IN_MOVE_TO_WORLD_COORDSYS_SKP_1,SKP_IN_EXPOSE_ATTRS_GROUP_SKP_1,SKP_IN_SEARCH_ENVELOPE_MINX_SKP_1,SKP_IN_SEARCH_ENVELOPE_MINY_SKP_1,SKP_IN_SEARCH_ENVELOPE_MAXX_SKP_1,SKP_IN_SEARCH_ENVELOPE_MAXY_SKP_1,SKP_IN_CLIP_TO_ENVELOPE_SKP_1,SKP_IN_NETWORK_AUTHENTICATION_SKP_1,SKP_IN_NETWORK_PROXY_SKP_1,SEARCH_ENVELOPE_COORDINATE_SYSTEM_SKP_1,DestDataset_CITYGML_1,CITYGML_OUT_USE_CITYGML_SCHEMA_FILES_CITYGML_1,CITYGML_OUT_ADE_CITYGML_1,CITYGML_OUT_ADE_XSD_DOC_CITYGML_1,CITYGML_OUT_VERSION_CITYGML_1,CITYGML_OUT_DOCUMENT_ENCODING_CITYGML_1,CITYGML_OUT_HEADER_COMMENTS_CITYGML_1,CITYGML_OUT_SCHEMA_LOCATION_CITYGML_1,CITYGML_OUT_RESTRICT_CURVES_TO_POLYLINES_CITYGML_1,CITYGML_OUT_TEXTURE_OUTPUT_FORMAT_CITYGML_1,CITYGML_OUT_SRS_NAME_CITYGML_1,CITYGML_OUT_SRS_AXIS_ORDER_CITYGML_1,CITYGML_OUT_PRETTY_PRINT_SETTINGS_CITYGML_1,CITYGML_OUT_PRETTY_PRINT_CITYGML_1,CITYGML_OUT_INDENT_SIZE_CITYGML_1,CITYGML_OUT_REPLACE_TABS_WITH_SPACES_CITYGML_1,TEXTURE_DIRECTORY_CITYGML_1,THEME_NAME_CITYGML_1 DEFAULT_MACRO SourceDataset_SKP d:\ Aaa级侨造型\ FinalKIu.skp GUI的多文件SourceDataset_SKP SKP_Files | * .skp | All_Files(*。*)| *资料来源的Trimble的SketchUp文件(* SKP):DEFAULT_MACRO BS_LOD 3 GUI CHOICE BS_LOD 0%1%2%3%详细的4边界面等级:DEFAULT_MACRO BS_GEOM lod3MultiSurface GUI CHOICE BS_GEOM lod0MultiSurface%lod1MultiSurface%lod2MultiSurface%lod3MultiSurface%lod4MultiSurface边界曲面模型类型:DEFAULT_MACRO DestDataset_CITYGML $(FME_MF_DIR)的xml文件\kiuFinal10.xml GUI FILENAME DestDataset_CITYGML CityGML_Files; | * .gml(* GML * XML。); * XML | CityGML_Files(* GML)| * .gml | CityGML_Files(* XML)| * .XML | All_Files | *。*目的地CityGML文献:DEFAULT_MACRO SKP_IN_COORDSYS_DATUM_SKP GUI IGNORE OPTIONAL STRING_OR_CHOICE SKP_IN_COORDSYS_DATUM_SKP DD.lat%DD.lng%DMS.lat%DMS.lng%fme_geometry {0}%地理散列%NHRWN-O%UTM%WGS72%WGS84坐标系原点:INCLUDE [如果{{$(SourceDataset_SKP)} {==}} {puts_real {参数 'SourceDataset_SKP' 必须被给出的值};。出口1;};] INCLUDE [如果{{$(BS_LOD)} {==}} {puts_real {参数 'BS_LOD' 必须被给出的值}。出口1;};] INCLUDE [如果{{$(BS_GEOM)} {==}} {puts_real {参数 'BS_GEOM' 必须被给出的值}。 exit 1; }; ] INCLUDE [ if {{$(DestDataset_CITYGML)} == {}} { puts_real {Parameter 'DestDataset_CITYGML' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE SKP READER_KEYWORD SKP_1 READER_GEN_DIRECTIVES READ_EDGES,No,EXPOSE_ATTRS_GROUP,,SEARCH_ENVELOPE_MINX,0,DYNAMIC_WORKFLOW,yes,SEARCH_ENVELOPE_MINY,0,_MERGE_SCHEMAS,YES,COORDSYS_DATUM,WGS84,CLIP_TO_ENVELOPE,NO,READ_HIDDEN_ELEMENTS,Auto,USE_SEARCH_ENVELOPE,NO,SEARCH_ENVELOPE_MAXX,0,COLOR_BY_LAYER,Auto,SEARCH_ENVELOPE_MAXY,0,MOVE_TO_WORLD_COORDSYS,Yes,SKP_EXPOSE_FORMAT_ATTRS, WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE{0} CITYGML MULTI_WRITER_KEYWORD{0} CITYGML_1 #! END_WB_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "SKP_1" #! END_WB_HEADER #! START_SOURCE_HEADER SKP SKP_1 SKP_1_DYNAMIC_WORKFLOW YES # The dataset this mapping file was generated from was: GUI FILENAME SourceDataset_SKP_1 SKP_Files(*.skp)|*.skp|All_Files(*.*)|*.* Source Trimble SketchUp File: DEFAULT_MACRO SKP_IN_READ_EDGES_SKP_1 No SKP_1_READ_EDGES "$(SKP_IN_READ_EDGES_SKP_1)" GUI CHOICE SKP_IN_READ_EDGES_SKP_1 Auto%Yes%No%"Standalone Only" Read Edges: DEFAULT_MACRO SKP_IN_READ_HIDDEN_ELEMENTS_SKP_1 No SKP_1_READ_HIDDEN_ELEMENTS "$(SKP_IN_READ_HIDDEN_ELEMENTS_SKP_1)" GUI CHOICE SKP_IN_READ_HIDDEN_ELEMENTS_SKP_1 Auto%Yes%No Read Invisible Geometry and Layers: DEFAULT_MACRO SKP_IN_COLOR_BY_LAYER_SKP_1 Auto SKP_1_COLOR_BY_LAYER "$(SKP_IN_COLOR_BY_LAYER_SKP_1)" GUI CHOICE SKP_IN_COLOR_BY_LAYER_SKP_1 Auto%Yes%No Color by Layer: DEFAULT_MACRO SKP_IN_COORDSYS_DATUM_SKP_1 $(SKP_IN_COORDSYS_DATUM_SKP) SKP_1_COORDSYS_DATUM "$(SKP_IN_COORDSYS_DATUM_SKP_1)" GUI STRING_OR_CHOICE SKP_IN_COORDSYS_DATUM_SKP_1 WGS84%WGS72%NHRWN-O Coordinate System Datum: DEFAULT_MACRO SKP_IN_MOVE_TO_WORLD_COORDSYS_SKP_1 Yes SKP_1_MOVE_TO_WORLD_COORDSYS "$(SKP_IN_MOVE_TO_WORLD_COORDSYS_SKP_1)" GUI CHOICE SKP_IN_MOVE_TO_WORLD_COORDSYS_SKP_1 Yes%No Move to World Coordinate System: DEFAULT_MACRO SKP_IN_EXPOSE_ATTRS_GROUP_SKP_1 SKP_1_EXPOSE_ATTRS_GROUP "$(SKP_IN_EXPOSE_ATTRS_GROUP_SKP_1)" GUI DISCLOSUREGROUP SKP_IN_EXPOSE_ATTRS_GROUP_SKP_1 SKP_EXPOSE_FORMAT_ATTRS Schema Attributes # Include this file in source setting section to add external search envelope processing # Zero as a default means we don't do any search -- this makes workbench happier # =========================================================================== DEFAULT_MACRO SKP_IN_SEARCH_ENVELOPE_MINX_SKP_1 0 SKP_1_SEARCH_ENVELOPE "$(SKP_IN_SEARCH_ENVELOPE_MINX_SKP_1)" GUI OPTIONAL FLOAT SKP_IN_SEARCH_ENVELOPE_MINX_SKP_1 Minimum X: # =========================================================================== DEFAULT_MACRO SKP_IN_SEARCH_ENVELOPE_MINY_SKP_1 0 SKP_1_SEARCH_ENVELOPE "$(SKP_IN_SEARCH_ENVELOPE_MINY_SKP_1)" GUI OPTIONAL FLOAT SKP_IN_SEARCH_ENVELOPE_MINY_SKP_1 Minimum Y: # =========================================================================== DEFAULT_MACRO SKP_IN_SEARCH_ENVELOPE_MAXX_SKP_1 0 SKP_1_SEARCH_ENVELOPE "$(SKP_IN_SEARCH_ENVELOPE_MAXX_SKP_1)" GUI OPTIONAL FLOAT SKP_IN_SEARCH_ENVELOPE_MAXX_SKP_1 Maximum X: # =========================================================================== DEFAULT_MACRO SKP_IN_SEARCH_ENVELOPE_MAXY_SKP_1 0 SKP_1_SEARCH_ENVELOPE "$(SKP_IN_SEARCH_ENVELOPE_MAXY_SKP_1)" GUI OPTIONAL FLOAT SKP_IN_SEARCH_ENVELOPE_MAXY_SKP_1 Maximum Y: # =========================================================================== # BUG18999: We now have a soft clip to fall back on like native spatial index # thus we are reintroducing the clip to envelop as an option for users. # Defualt to soft clip as per the existing database readers we are emulating DEFAULT_MACRO SKP_IN_CLIP_TO_ENVELOPE_SKP_1 NO SKP_1_CLIP_TO_ENVELOPE "$(SKP_IN_CLIP_TO_ENVELOPE_SKP_1)" GUI OPTIONAL CHECKBOX SKP_IN_CLIP_TO_ENVELOPE_SKP_1 YES%NO Clip to Search Envelope # =========================================================================== DEFAULT_MACRO SKP_IN_NETWORK_AUTHENTICATION_SKP_1 SKP_1_NETWORK_AUTHENTICATION "$(SKP_IN_NETWORK_AUTHENTICATION_SKP_1)" GUI OPTIONAL AUTHENTICATOR SKP_IN_NETWORK_AUTHENTICATION_SKP_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # =========================================================================== DEFAULT_MACRO SKP_IN_NETWORK_PROXY_SKP_1 SKP_1_NETWORK_PROXY "$(SKP_IN_NETWORK_PROXY_SKP_1)" GUI OPTIONAL AUTHENTICATOR SKP_IN_NETWORK_PROXY_SKP_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Proxy"%PROMPT_TYPE%PROXY Network Proxy # PR:31021 # Include this file in workbench source preamble section to enable the ability # to specify a coordinate system for search envelope processing # =========================================================================== DEFAULT_MACRO SEARCH_ENVELOPE_COORDINATE_SYSTEM_SKP_1 GUI OPTIONAL COORDSYS SEARCH_ENVELOPE_COORDINATE_SYSTEM_SKP_1 Search Envelope Coordinate System: SKP_1_SEARCH_ENVELOPE_COORDINATE_SYSTEM "$(SEARCH_ENVELOPE_COORDINATE_SYSTEM_SKP_1)" # =========================================================================== #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_SKP_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER SKP SKP_1 DEFAULT_MACRO SourceDataset_SKP_1 $(SourceDataset_SKP) SKP_1_DATASET "$(SourceDataset_SKP_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "CITYGML_1" #! END_WB_HEADER #! START_DEST_HEADER CITYGML CITYGML_1 #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_CITYGML_1 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER CITYGML CITYGML_1 DEFAULT_MACRO DestDataset_CITYGML_1 $(DestDataset_CITYGML) GUI FILENAME DestDataset_CITYGML_1 CityGML_Files(*.gml;*.xml)|*.gml;*.xml|CityGML_Files(*.gml)|*.gml|CityGML_Files(*.xml)|*.xml|All_Files|*.* Destination CityGML Document: CITYGML_1_COORDINATE_SYSTEM_GRANULARITY DATASET # ============================================================================ DEFAULT_MACRO CITYGML_OUT_USE_CITYGML_SCHEMA_FILES_CITYGML_1 Yes CITYGML_1_USE_CITYGML_SCHEMA_FILES "$(CITYGML_OUT_USE_CITYGML_SCHEMA_FILES_CITYGML_1)" GUI LOOKUP_CHOICE CITYGML_OUT_USE_CITYGML_SCHEMA_FILES_CITYGML_1 "Yes (Recommended)",Yes%"No (Deprecated - Backward-compatible)",No Writer Driven by CityGML Schema # ============================================================================ DEFAULT_MACRO CITYGML_OUT_ADE_CITYGML_1 None CITYGML_1_ADE "$(CITYGML_OUT_ADE_CITYGML_1)" GUI ACTIVECHOICE CITYGML_OUT_ADE_CITYGML_1 "None",CITYGML_OUT_ADE_XSD_DOC%NoiseADE,CITYGML_OUT_ADE_XSD_DOC%Other Application Domain Extension DEFAULT_MACRO CITYGML_OUT_ADE_XSD_DOC_CITYGML_1 CITYGML_1_ADE_XSD_DOC "$(CITYGML_OUT_ADE_XSD_DOC_CITYGML_1)" GUI OPTIONAL MULTIFILE CITYGML_OUT_ADE_XSD_DOC_CITYGML_1 ADE_Schema_File(*.xsd)|*.xsd|All_Files(*.*)|*.* ADE Schema File(s): # ============================================================================ DEFAULT_MACRO CITYGML_OUT_VERSION_CITYGML_1 2.0 CITYGML_1_VERSION "$(CITYGML_OUT_VERSION_CITYGML_1)" GUI ACTIVECHOICE CITYGML_OUT_VERSION_CITYGML_1 0.4,CITYGML_OUT_USE_CITYGML_SCHEMA_FILES,CITYGML_OUT_ADE%1.0%2.0 CityGML Version: # ============================================================================ DEFAULT_MACRO CITYGML_OUT_DOCUMENT_ENCODING_CITYGML_1 CITYGML_1_DOCUMENT_ENCODING "$(CITYGML_OUT_DOCUMENT_ENCODING_CITYGML_1)" GUI OPTIONAL STRING_OR_ENCODING CITYGML_OUT_DOCUMENT_ENCODING_CITYGML_1 * Character Encoding: # ============================================================================ DEFAULT_MACRO CITYGML_OUT_HEADER_COMMENTS_CITYGML_1 CITYGML_1_HEADER_COMMENTS "$(CITYGML_OUT_HEADER_COMMENTS_CITYGML_1)" GUI OPTIONAL TEXT_EDIT_XML CITYGML_OUT_HEADER_COMMENTS_CITYGML_1 Header Comments: # ============================================================================ DEFAULT_MACRO CITYGML_OUT_SCHEMA_LOCATION_CITYGML_1 CITYGML_1_SCHEMA_LOCATION "$(CITYGML_OUT_SCHEMA_LOCATION_CITYGML_1)" GUI OPTIONAL TEXT_EDIT_ CITYGML_OUT_SCHEMA_LOCATION_CITYGML_1 xsi:schemaLocation: # ============================================================================ DEFAULT_MACRO CITYGML_OUT_RESTRICT_CURVES_TO_POLYLINES_CITYGML_1 Yes CITYGML_1_RESTRICT_CURVES_TO_POLYLINES "$(CITYGML_OUT_RESTRICT_CURVES_TO_POLYLINES_CITYGML_1)" GUI LOOKUP_CHOICE CITYGML_OUT_RESTRICT_CURVES_TO_POLYLINES_CITYGML_1 "Yes (Recommended)",Yes%"No (Deprecated - Backward-compatible)",No Restrict Curves to Polylines # ============================================================================ DEFAULT_MACRO CITYGML_OUT_TEXTURE_OUTPUT_FORMAT_CITYGML_1 NONE CITYGML_1_TEXTURE_OUTPUT_FORMAT "$(CITYGML_OUT_TEXTURE_OUTPUT_FORMAT_CITYGML_1)" GUI LOOKUP_CHOICE CITYGML_OUT_TEXTURE_OUTPUT_FORMAT_CITYGML_1 Auto,NONE%PNG,PNGRASTER%JPEG%GIF,GIFRASTER%BMP%ECW%ERDAS%GEOTIFF%INGR%JPEG2000%MRSID%PCIDSK%SGI%TIFF%XPM Preferred Texture Format: # ============================================================================ # Overwrites the GML srsName with the specified value. When left unspecified # the FME coordinate system name for the input features will be used as the # value for the srsName in the GML document. DEFAULT_MACRO CITYGML_OUT_SRS_NAME_CITYGML_1 EPSG::24370 CITYGML_1_SRS_NAME "$(CITYGML_OUT_SRS_NAME_CITYGML_1)" GUI OPTIONAL TEXT CITYGML_OUT_SRS_NAME_CITYGML_1 GML srsName: # ============================================================================ # This keyword specifies the axis order for a coordinate tuple for the specified # SRS_NAME in the GML document. This keyword only applies when used conjunction # with the SRS_NAME keyword. The valid values for this keyword are 1,2, 2,1, # 1,2,3 and 2,1,3. DEFAULT_MACRO CITYGML_OUT_SRS_AXIS_ORDER_CITYGML_1 1,2,3 CITYGML_1_SRS_AXIS_ORDER "$(CITYGML_OUT_SRS_AXIS_ORDER_CITYGML_1)" GUI OPTIONAL CHOICE CITYGML_OUT_SRS_AXIS_ORDER_CITYGML_1 1,2%2,1%1,2,3%2,1,3 GML SRS Axis Order: # ============================================================================ GUI DISCLOSUREGROUP CITYGML_OUT_PRETTY_PRINT_SETTINGS_CITYGML_1 PRETTY_PRINT%INDENT_SIZE%REPLACE_TABS_WITH_SPACES Pretty Printing DEFAULT_MACRO CITYGML_OUT_PRETTY_PRINT_CITYGML_1 Yes CITYGML_1_PRETTY_PRINT "$(CITYGML_OUT_PRETTY_PRINT_CITYGML_1)" GUI OPTIONAL CHOICE CITYGML_OUT_PRETTY_PRINT_CITYGML_1 Yes%No Pretty Print: DEFAULT_MACRO CITYGML_OUT_INDENT_SIZE_CITYGML_1 1 CITYGML_1_INDENT_SIZE "$(CITYGML_OUT_INDENT_SIZE_CITYGML_1)" GUI OPTIONAL CHOICE CITYGML_OUT_INDENT_SIZE_CITYGML_1 0%1%2%3%4%5%6%7%8%9 Indent Size: DEFAULT_MACRO CITYGML_OUT_REPLACE_TABS_WITH_SPACES_CITYGML_1 No CITYGML_1_REPLACE_TABS_WITH_SPACES "$(CITYGML_OUT_REPLACE_TABS_WITH_SPACES_CITYGML_1)" GUI OPTIONAL CHOICE CITYGML_OUT_REPLACE_TABS_WITH_SPACES_CITYGML_1 Yes%No Replace Tabs with Spaces: # ============================================================================ DEFAULT_MACRO TEXTURE_DIRECTORY_CITYGML_1 GUI OPTIONAL TEXT TEXTURE_DIRECTORY_CITYGML_1 Texture subdirectory: CITYGML_1_TEXTURE_DIRECTORY "$(TEXTURE_DIRECTORY_CITYGML_1)" # ============================================================================ DEFAULT_MACRO THEME_NAME_CITYGML_1 FMETheme GUI OPTIONAL TEXT THEME_NAME_CITYGML_1 Theme name: CITYGML_1_THEME_NAME "$(THEME_NAME_CITYGML_1)" CITYGML_1_DATASET "$(DestDataset_CITYGML_1)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)skp2citygml_v1.2 (backup).log" LOG_APPEND NO LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 LOG_FILTER_MASK -1 DEFAULT_MACRO DATASET_KEYWORD_SKP_1 SKP_1 DEFAULT_MACRO DATASET_KEYWORD_CITYGML_1 CITYGML_1 # ------------------------------------------------------------------------- SKP_1_READER_META_ATTRIBUTES fme_basename fme_feature_type # ------------------------------------------------------------------------- SKP_1_COORDINATE_SYSTEM PAK-IIA/a CITYGML_1_COORDINATE_SYSTEM EPSG:24370 MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME skp2citygml_v1.2 (backup) MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- SKP_1_DEF Untitled # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD SKP_1 INPUT FEATURE_TYPE * ROUTE SKP SKP_1::Untitled TO FME_GENERIC ::Untitled ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * SKP_1_MERGE_DEF SKP_1::Untitled GLOB * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Untitled (SKP_1) Splitter" INPUT FEATURE_TYPE Untitled OUTPUT FEATURE_TYPE Untitled_SKP_1_0_RhZVOtJbgFY= OUTPUT FEATURE_TYPE Untitled_SKP_1_1_g+YtLwI/O4Y= DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "SketchupLayerExtractor Input Input Collector" INPUT FEATURE_TYPE Untitled_SKP_1_0_RhZVOtJbgFY= OUTPUT FEATURE_TYPE SketchupLayerExtractor_Input MACRO SketchupLayerExtractor_WORKSPACE_NAME SketchupLayerExtractor MACRO $(SketchupLayerExtractor_WORKSPACE_NAME)_XFORMER_NAME SketchupLayerExtractor MACRO $(SketchupLayerExtractor_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(SketchupLayerExtractor_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(SketchupLayerExtractor_WORKSPACE_NAME)_SUB_DOC_NAME SketchupLayerExtractor DEFAULT_MACRO SketchupLayerExtractor_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(SketchupLayerExtractor_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(SketchupLayerExtractor_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(SketchupLayerExtractor_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- FACTORY_DEF * DeaggregateFactory FACTORY_NAME $(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator INPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Input" RECURSIVE No SPLIT_COMPOSITES No INSTANTIATE_GEOMETRY_INSTANCES_NEW No SET_FME_TYPE Yes PART_NUMBER_FIELD _part_number GEOMETRY_NAME_FIELD _geometry_name ID_ATTR _hierarchy_id PARENT_ID_ATTR _hierarchy_parent_id CHILD_ID_ATTR _hierarchy_child_id_list COPY_ATTR EVERY_NODE OUTPUT POINT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" OUTPUT LINE FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" OUTPUT POLYGON FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" OUTPUT DONUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" OUTPUT AGGREGATE FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO $(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRemover_LIST_EXP "; foreach attr [split "_hierarchy_child_id_list “] {集ATTR [FME_DecodeText $ ATTR];组ATTR [regsub ”{} $“ $ ATTR ”{} *“];组ATTR [regsub,所有 ”{}“ $ ATTR”{\ [0-9 \] +} “];追加macroLine” ^ $ ATTR $“;};放$ macroLine;] FACTORY_DEF * TeeFactory FACTORY_NAME $(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRemover INPUT FEATURE_TYPE ”$(SketchupLayerExtractor_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED“ OUTPUT FEATURE_TYPE ”$(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRemover_OUTPUT“@RemoveAttributes(_geometry_name,_hierarchy_id,_hierarchy_parent_id,_part_number)@RemoveAttributes(fme_regexp_match “$($(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRemover_LIST_EXP)”)#-------------------------------------------------------------------------DEFAULT_MACRO $(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_PARAMETER有[如果{{}无== {是}} {{放宏$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_ACTION ACTION EXTRACT_TRAITS_PREFIXED};}其他{{放宏$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_ACTION ACTION EXTRACT_TRAITS};};如果{{} EXTRACT_TRAITS == {} EXTRACT_GEOMNAME} {}否则{{放宏$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_PARAMETER参数sketchup_layer_name};};] FACTORY_DEF * GQueryFactory FACTORY_NAME $(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_GQuery INPUT FEATURE_TYPE “$(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRemover_OUTPUT” $($(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_ACTION)$($(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_PARAMETER)输出UNTOUCHED FEATURE_TYPE “$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_UNTOUCHED” 输出结果FEATURE_TYPE“$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_EXTRACTED”#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRenamer INPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_EXTRACTED" OUTPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRenamer_OUTPUT" @RenameAttributes(ATTR_LIST_DEF_VAL, sketchup_layer_name,sketchup_extracted_layer,) FACTORY_DEF * TeeFactory FACTORY_NAME "$(SketchupLayerExtractor_WORKSPACE_NAME)_Extracted1532002402 Output Collector" INPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_AttributeRenamer_OUTPUT" OUTPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Extracted" FACTORY_DEF * TeeFactory FACTORY_NAME "$(SketchupLayerExtractor_WORKSPACE_NAME)_Untouched1532002402 Output Collector" INPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_GeometryPropertyExtractor_UNTOUCHED" OUTPUT FEATURE_TYPE "$(SketchupLayerExtractor_WORKSPACE_NAME)_Untouched" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(SketchupLayerExtractor_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "SketchupLayerExtractor Extracted Output Renamer/Nuker" INPUT FEATURE_TYPE SketchupLayerExtractor_Extracted OUTPUT FEATURE_TYPE SketchupLayerExtractor_Extracted FACTORY_DEF * TeeFactory FACTORY_NAME "SketchupLayerExtractor Untouched Output Renamer/Nuker" INPUT FEATURE_TYPE SketchupLayerExtractor_Untouched # ------------------------------------------------------------------------- Tcl2 set AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitDelim [FME_DecodeText {_}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitDelim]] } { set AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitWidths [split [regsub -all {s$} {_} {}] s]; proc AttributeSplitter_doSplit {} { global AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitWidths; set source [FME_GetAttribute [FME_DecodeText {sketchup_extracted_layer}]]; set attrNum 0; set listName [FME_DecodeText {_hierarchy}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_doSplit {} { global AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitDelim; set delim [set AttributeSplitter_22b84d9d_66cc_4fc3_96db_1c7ca62bbb2149_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {sketchup_extracted_layer}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_hierarchy}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter INPUT FEATURE_TYPE SketchupLayerExtractor_Extracted OUTPUT FEATURE_TYPE AttributeSplitter_OUTPUT @Tcl2(AttributeSplitter_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME ListElementCounter INPUT FEATURE_TYPE AttributeSplitter_OUTPUT OUTPUT FEATURE_TYPE ListElementCounter_OUTPUT "_hierarchy_count" @NumElements("_hierarchy ”,编码)FACTORY_DEF * TeeFactory FACTORY_NAME”ListElementCounter输出分配器”输入FEATURE_TYPE ListElementCounter_OUTPUT输出FEATURE_TYPE ListElementCounter_OUTPUT_0_FzUB1QcTW68 =输出FEATURE_TYPE ListElementCounter_OUTPUT_1_byrW5HO4yhE =输出FEATURE_TYPE ListElementCounter_OUTPUT_2_uSNJx2TkO8Y = # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TestFactory FACTORY_NAME FEATURE_TYPE Test_1_Level输入ListElementCounter_OUTPUT_2_uSNJx2TkO8Y =测试@EvaluateExpression (STRING_ENCODED, 价值 _hierarchy_count ,Test_1_Level)= 1 ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE Test_1_Level_PASSED#-------------------------------------------------------------------------FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_10 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE Test_1_Level_PASSED ATTR gml_id 价值 fme_basename _ 价值 _hierarchy 0 ATTR gml_parent_id 价值 fme_basename AttrSetFactory FACTORY_NAME AttributeCreator_11 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE AttributeCreator_10_OUTPUT ATTR extractSemantic 价值 _hierarchy 0 输出输出FEATURE_TYPE AttributeCreator_11_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TestFactory FACTORY_NAME Test_3_Levels输入FEATURE_TYPE ListElementCounter_OUTPUT_1_byrW5HO4yhE =测试@EvaluateExpression (STRING_ENCODED, 价值 _hierarchy_count ,Test_3_Levels)= 3编码BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE Test_3_Levels_PASSED#-------------------------------------------------------------------------FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_3 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE Test_3_Levels_PASSED ATTR gml_id 价值 fme_basename _ 价值 sketchup_extracted_layer ATTR gml_parent_id 价值 fme_basename _ 价值 _hierarchy 0 _ 价值 _hierarchy 1 输出输出FEATURE_TYPE AttributeCreator_3_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TestFactory FACTORY_NAME Test_2_Levels输入FEATURE_TYPE ListElementCounter_OUTPUT_0_FzUB1QcTW68 =测试@EvaluateExpression (STRING_ENCODED, 价值 _hierarchy_count ,Test_2_Levels)=输入FEATURE_TYPE Test_2_Levels_PASSED OUTPUT FEATURE_TYPE Test_2_Levels_PASSED_0_NrJophQREOU = OUTPUT FEATURE_TYPE Test_2_Levels_PASSED_1_dQagjw833kc 2编码BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE Test_2_Levels_PASSED FACTORY_DEF * TeeFactory FACTORY_NAME “通过分配器Test_2_Levels”=#-------------------------------------------------------------------------FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_2 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE Test_2_Levels_PASSED_0_NrJophQREOU= ATTR gml_id 价值 fme_basename _ 价值 sketchup_extracted_layer ATTR gml_parent_id 价值 fme_basename _ 价值 _hierarchy 0 4、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性1、输出特性 价值 _hierarchy 评估 价值 _hierarchy_count 1 输出输出FEATURE_TYPE AttributeCreator_5_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator ATTRSET_PROPAGATE_MISSING是的输入FEATURE_TYPE Test_2_Levels_PASSED_1_dQagjw833kc = ATTR gml_id 价值 fme_basename _ 价值 _hierarchy 0 ATTR gml_parent_id 价值 fme_basename 输出输出FEATURE_TYPE AttributeCreator_OUTPUT#-------------------------------------------------------------------------DEFAULT_MACRO Aggregator_BREAK_ATTR INCLUDE [if {"No" == "Yes"} {puts {MACRO Aggregator_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE gml_id} }] FACTORY_DEF * AggregateFactory FACTORY_NAME Aggregator INPUT FEATURE_TYPE AttributeCreator_OUTPUT MODE ONE_LEVEL GROUP_BY gml_id $(Aggregator_BREAK_ATTR) REMOVE_GEOMETRY YES ACCUMULATE_ATTRIBUTES Yes SEPARATOR 输出总FEATURE_TYPE Aggregator_AGGREGATE # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_6 ATTRSET_PROPAGATE_MISSING是的输入FEATURE_TYPE Aggregator_AGGREGATE ATTR extractSemantic 价值 _hierarchy 0 输出输出FEATURE_TYPE AttributeCreator_6_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TestFactory FACTORY_NAME Tester_4输入FEATURE_TYPE AttributeCreator_6_OUTPUT测试@EvaluateExpression (STRING_ENCODED, 价值 extractSemantic Tester_4) BEGINS_WITH bp编码BOOLEAN_OPERATOR或输出通过FEATURE_TYPE Tester_4_PASSED # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tcl2设置AttributeSplitter_2_f307c369_ebd5_4da4_8b98_d9a8260c1c1a49_splitDelim [FME_DecodeText {-});{set attributesplitter_2_f307c369_ebd5_d9a8260c1a49_splitdelim]]} {set attributesplitter_2_f307c369_ebd5_4da4_8b98_d9a8260c1a49_splitwidths [split [regsub -all {s$} -}} s];proc AttributeSplitter_2_doSplit{}{全局AttributeSplitter_2_f307c369_ebd5_4da4_8b98_d9a8260c1c1a49_splitWidths;设置源[FME_GetAttribute [FME_DecodeText {extractSemantic}]];设置attrNum 0;设置listName [FME_DecodeText {featureList}];设置attrPos 0;设置keepEmptyParts [string = {No} {No}];[set AttributeSplitter_2_f307c369_ebd5_4da4_8b98_d9a8260c1c1a49_splitWidths] {set endPos [expr $attrPos + $width - 1];设置位[字符串范围$source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_f307c369_ebd5_4da4_8b98_d9a8260c1c1a49_splitDelim; set delim [set AttributeSplitter_2_f307c369_ebd5_4da4_8b98_d9a8260c1c1a49_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {extractSemantic}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {featureList}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter_2 INPUT FEATURE_TYPE AttributeCreator_5_OUTPUT INPUT FEATURE_TYPE Tester_4_PASSED INPUT FEATURE_TYPE AttributeCreator_11_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_2_OUTPUT @Tcl2(AttributeSplitter_2_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_4 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE AttributeSplitter_2_OUTPUT ATTR feature 价值 featureList 0 输出输出FEATURE_TYPE AttributeCreator_4_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -查找AttributeValueMapper_LOOKUP_TABLE bp BuildingPart ws WallSurface gs GroundSurface rs RoofSurface cls ClosureSurface ofs OuterFloorSurface ocs OuterCeilingSurface d门w窗bi BuildingInstallation”“”“ENCODED_SUPPORTUNICODE FACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper输入FEATURE_TYPE AttributeCreator_4_OUTPUT FEATURE_TYPE输出AttributeValueMapper_OUTPUT @Lookup (AttributeValueMapper_LOOKUP_TABLE“特性”,转发| ENCODED_ATTR | REAL_NULL_SUPPORT,mappedFeature) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -查找AttributeFilter_AttributeFilterLut BuildingPart好WallSurface好GroundSurface好RoofSurface好ClosureSurface好OuterFloorSurface好OuterCeilingSurface好门好窗户好BuildingInstallation好好路好”“notok编码Tcl2 proc AttributeFilter_setFeatType{}{全球FME_FeatureType;英国《金融时报》{AttributeFilter_};添加ft [FME_EncodeText [FME_GetAttribute {"mappedFeature"}]];设置FME_FeatureType英尺美元;TestFactory FACTORY_NAME AttributeFilter INPUT FEATURE_TYPE AttributeValueMapper_OUTPUT TEST @Lookup(AttributeFilter_AttributeFilterLut,"mappedFeature",ENCODED_ATTR) == "ok"输出通过FEATURE_TYPE * @Tcl2(AttributeFilter_setFeatType)输出失败FEATURE_TYPE AttributeFilter_ FACTORY_DEF * TestFactory中FACTORY_NAME AttributeFilter_NullFilter INPUT FEATURE_TYPE AttributeFilter_ TEST “mappedFeature” ATTRIBUTE_VALUE_NULL “” 的Passed FEATURE_TYPE AttributeFilter_ 输出失败的FEATURE_TYPE AttributeFilter_ FACTORY_DEF * TestFactory中FACTORY_NAME AttributeFilter_MissingFilter INPUT FEATURE_TYPE AttributeFilter_ 测试“mappedFeature”ATTRIBUTE_IS_MISSING“”输出通过FEATURE_TYPE AttributeFilter_ 输出失败的FEATURE_TYPE AttributeFilter_ TestFactory FACTORY_NAME AttributeFilter_BlankFilter INPUT FEATURE_TYPE AttributeFilter_ TEST “mappedFeature” ATTRIBUTE_IS_EMPTY “” 的Passed FEATURE_TYPE AttributeFilter_ 输出失败的FEATURE_TYPE AttributeFilter_ FACTORY_DEF * TeeFactory FACTORY_NAME“AttributeFilter 输出Nuker"的输入特性_type AttributeFilter_ FACTORY_DEF * TeeFactory FACTORY_NAME“AttributeFilter 输出Nuker"的输入特性_type AttributeFilter_ FACTORY_DEF * TeeFactory FACTORY_NAME“AttributeFilter 输出Nuker"的输入特性_type AttributeFilter_ FACTORY_DEF * TeeFactory FACTORY_NAME“AttributeFilter 输出Nuker"的输入特性_type AttributeFilter_ FACTORY_DEF * TeeFactory FACTORY_NAME “AttributeFilter输出Nuker” INPUT FEATURE_TYPE AttributeFilter FACTORY_DEF * TeeFactory FACTORY_NAME “AttributeFilter路输出Nuker” INPUT FEATURE_TYPE AttributeFilter_Road#------------------------------------------------------------------------- DEFAULT_MACROAggregator_2_BREAK_ATTR有[如果{ “否” == “是”} {{放MACRO Aggregator_2_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE gml_id}}] FACTORY_DEF * AggregateFactory FACTORY_NAME Aggregator_2 INPUT FEATURE_TYPE AttributeFilter_BuildingInstallation MODE ONE_LEVEL GROUP_BY gml_id $(Aggregator_2_BREAK_ATTR)REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES是分离器 PRODUCE_MULTIS YES OUTPUT AGGREGATE FEATURE_TYPE Aggregator_2_AGGREGATE @Geometry(SET_TO_CONTAIN_INDIVIDUAL_GEOMS,否)#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "CityGML_Role_Setter_4 Input Input Collector" INPUT FEATURE_TYPE Aggregator_2_AGGREGATE OUTPUT FEATURE_TYPE CityGML_Role_Setter_4_Input MACRO CityGML_Role_Setter_WORKSPACE_NAME CityGML_Role_Setter_4 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_XFORMER_NAME CityGML_Role_Setter_4 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_SUB_DOC_NAME CityGML_Role_Setter MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE outerBuildingInstallation DEFAULT_MACRO CityGML_Role_Setter_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CityGML_Role_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_Role_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359196_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}};};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $ (CityGML_Role_Setter_WORKSPACE_NAME) _AttributeCreator输入FEATURE_TYPE " $ (CityGML_Role_Setter_WORKSPACE_NAME) _Input“输出FEATURE_TYPE“CityGML_Role_Setter_WORKSPACE_NAME _AttributeCreator_OUTPUT“美元”@Tcl2 ($ (CityGML_Role_Setter_WORKSPACE_NAME) _AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359196_attrSetter{(citygml_feature_role“@EvaluateExpression (STRING_ENCODED, $ ((CityGML_Role_Setter_WORKSPACE_NAME) _ROLE编码美元),美元(CityGML_Role_Setter_WORKSPACE_NAME) _AttributeCreator)”)})“FACTORY_DEF * TeeFactory FACTORY_NAME”(CityGML_Role_Setter_WORKSPACE_NAME) _Output1532002402输出美元收集器”输入FEATURE_TYPE”(CityGML_Role_Setter_WORKSPACE_NAME)美元_AttributeCreator_OUTPUT (CityGML_Role_Setter_WORKSPACE_NAME) _Output美元“输出FEATURE_TYPE包括[{宏WB_CURRENT_CONTEXT(WB_OLD_CONTEXT_ (CityGML_Role_Setter_WORKSPACE_NAME)美元)}]FACTORY_DEF * TeeFactory FACTORY_NAME“CityGML_Role_Setter_4输出输出重命名/核”输入FEATURE_TYPE CityGML_Role_Setter_4_Output输出FEATURE_TYPE CityGML_Role_Setter_4_Output # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME“CityGML_LOD_Setter_3输入输入收集器”输入FEATURE_TYPE CityGML_Role_Setter_4_Output输出FEATURE_TYPE CityGML_LOD_Setter_3_Input宏CityGML_LOD_Setter_WORKSPACE_NAME CityGML_LOD_Setter_3宏(CityGML_LOD_Setter_WORKSPACE_NAME)美元_XFORMER_NAME CityGML_LOD_Setter_3宏(CityGML_LOD_Setter_WORKSPACE_NAME) _TRANSFORMER_GROUP宏(CityGML_LOD_Setter_WORKSPACE_NAME)美元___COMPOUND_PARAMETERS宏(CityGML_LOD_Setter_WORKSPACE_NAME)美元_SUB_DOC_NAME CityGML_LOD_Setter宏宏(CityGML_LOD_Setter_WORKSPACE_NAME) _LOD 3美元(CityGML_LOD_Setter_WORKSPACE_NAME) _GEOM lod3Geometry DEFAULT_MACRO CityGML_LOD_Setter_WORKSPACE_NAME”“包含[放{宏WB_OLD_CONTEXT_$(CityGML_LOD_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_LOD_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3_63f0fd5f_2be8_4c19_927a_c3b1b54ef0ba147_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3}];};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3 INPUT FEATURE_TYPE “$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input” 输出FEATURE_TYPE “$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3_OUTPUT” “@ TCL2($(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3_63f0fd5f_2be8_4c19_927a_c3b1b54ef0ba147_attrSetter {(citygml_level_of_detail,” @ EvaluateExpression(STRING_ENCODED,$($(CityGML_LOD_Setter_WORKSPACE_NAME)_LOD $编码),$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3) “citygml_lod_name, ”@ EvaluateExpression(STRING_ENCODED,$($(CityGML_LOD_Setter_WORKSPACE_NAME)_GEOM $编码),$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3)“)})” #------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(CityGML_LOD_Setter_WORKSPACE_NAME)_GeometryTraitSetter INPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3_OUTPUT" OUTPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_GeometryTraitSetter_OUTPUT" @GeometryTraits(SET_TRAITS_LIST, "citygml_lod_name", yes) FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Output1532002402 Output Collector" INPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_GeometryTraitSetter_OUTPUT" OUTPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Output" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(CityGML_LOD_Setter_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "CityGML_LOD_Setter_3 Output Output Renamer/Nuker" INPUT FEATURE_TYPE CityGML_LOD_Setter_3_Output OUTPUT FEATURE_TYPE CityGML_LOD_Setter_3_Output # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Local} == {Local} } { set domainPrefix [FME_EncodeText {WindowCounter_}]; }; puts "MACRO WindowCounter_FULL_DOMAIN ${domainPrefix}windowcounter"; ] FACTORY_DEF * TeeFactory FACTORY_NAME WindowCounter_Counter INPUT FEATURE_TYPE AttributeFilter_Window @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "window_count" @Count(REJECTABLE,fme_encoded,$(WindowCounter_FULL_DOMAIN),"1") FACTORY_DEF * TestFactory FACTORY_NAME WindowCounter_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT PASSED FEATURE_TYPE WindowCounter_ @RemoveAttributes(___ fme_rejection_code___)OUTPUT FAILED FEATURE_TYPE WindowCounter_OUTPUT @RenameAttributes(FME_STRICT,fme_rejection_code,___ fme_rejection_code___)FACTORY_DEF * TeeFactory FACTORY_NAME“WindowCounter 输出Nuker"输入特性_type WindowCounter_ #-------------------------------------------------------------------------FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_9 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE WindowCounter_OUTPUT ATTR gml_id 价值 gml_id - 价值 window_count 输出输出FEATURE_TYPE AttributeCreator_9_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #创建这个变压器将使用的域名。因为@Count本身将评估表达式来计算#域,所以我们不需要在Tcl中对INCLUDE [set domainPrefix {};如果{{Local} == {Local}} {set domainPrefix [FME_EncodeText {DoorCounter_}];};设置“MACRO DoorCounter_FULL_DOMAIN ${domainPrefix}doorcounter”;]FACTORY_DEF * TeeFactory FACTORY_NAME DoorCounter_Counter输入FEATURE_TYPE AttributeFilter_Door @RenameAttributes (FME_STRICT, ___fme_rejection_code___ fme_rejection_code)输出FEATURE_TYPE ___TOREJECTOR___“door_count @Count (fme_encoded拒绝的,美元(DoorCounter_FULL_DOMAIN),“1”) FACTORY_DEF * TestFactory FACTORY_NAME DoorCounter_Rejector输入FEATURE_TYPE ___TOREJECTOR___测试@ value (fme_rejection_code) ! = "输出通过FEATURE_TYPE DoorCounter_ @RemoveAttributes(_fme_rejection_code)输出失败 输出Nuker"输入特性_type门counter_ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_8 ATTRSET_PROPAGATE_MISSING是的输入FEATURE_TYPE DoorCounter_OUTPUT ATTR gml_id 价值 gml_id - 价值 door_count 输出输出FEATURE_TYPE AttributeCreator_8_OUTPUT#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "CityGML_Role_Setter_3 Input Input Collector" INPUT FEATURE_TYPE AttributeCreator_9_OUTPUT INPUT FEATURE_TYPE AttributeCreator_8_OUTPUT OUTPUT FEATURE_TYPE CityGML_Role_Setter_3_Input MACRO CityGML_Role_Setter_WORKSPACE_NAME CityGML_Role_Setter_3 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_XFORMER_NAME CityGML_Role_Setter_3 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_SUB_DOC_NAME CityGML_Role_Setter MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE opening DEFAULT_MACRO CityGML_Role_Setter_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CityGML_Role_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_Role_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359197_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}};};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator INPUT FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_Input” 输出FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_OUTPUT” “@ TCL2($(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359197_attrSetter {(citygml_feature_role,” @ EvaluateExpression(STRING_ENCODED,$($(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE $编码),$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator) “)})” FACTORY_DEF * TeeFactory FACTORY_NAME “$(CityGML_Role_Setter_WORKSPACE_NAME)_Output1532002402输出集电极” INPUT FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_OUTPUT” 输出FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_output” INCLUDE[放{MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT _ $(CityGML_Role_Setter_WORKSPACE_NAME))}] * FACTORY_DEF TeeFactory FACTORY_NAME “CityGML_Role_Setter_3输出输出更名/ Nuker” INPUT FEATURE_TYPEçityGML_Role_Setter_3_Output输出FEATURE_TYPE CityGML_Role_Setter_3_Output#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CityGML_LOD_Setter_2 Input Input Collector" INPUT FEATURE_TYPE CityGML_Role_Setter_3_Output OUTPUT FEATURE_TYPE CityGML_LOD_Setter_2_Input MACRO CityGML_LOD_Setter_WORKSPACE_NAME CityGML_LOD_Setter_2 MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_XFORMER_NAME CityGML_LOD_Setter_2 MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_SUB_DOC_NAME CityGML_LOD_Setter MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_LOD 3 MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_GEOM lod3MultiSurface DEFAULT_MACRO CityGML_LOD_Setter_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CityGML_LOD_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_LOD_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3_63f0fd5f_2be8_4c19_927a_c3b1b54ef0ba148_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3}];};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $ (CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3输入FEATURE_TYPE " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _Input“输出FEATURE_TYPE“CityGML_LOD_Setter_WORKSPACE_NAME _AttributeCreator_3_OUTPUT“美元”@Tcl2 ($ (CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3_63f0fd5f_2be8_4c19_927a_c3b1b54ef0ba148_attrSetter{(citygml_level_of_detail“@EvaluateExpression (STRING_ENCODED, $ ((CityGML_LOD_Setter_WORKSPACE_NAME) _LOD编码美元),美元(CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3)”, citygml_lod_name,“@EvaluateExpression (STRING_ENCODED, $ ((CityGML_LOD_Setter_WORKSPACE_NAME) _GEOM编码)美元,美元(CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3)”)})“# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME$(CityGML_LOD_Setter_WORKSPACE_NAME) _geometrytraitset_output @GeometryTraits(SET_TRAITS_LIST, citygml_lod_name)是的)FACTORY_DEF * TeeFactory FACTORY_NAME " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _Output1532002402收集器输出“输入FEATURE_TYPE " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _GeometryTraitSetter_OUTPUT“输出FEATURE_TYPE " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _Output”包括(把{宏WB_CURRENT_CONTEXT $ (WB_OLD_CONTEXT_ (CityGML_LOD_Setter_WORKSPACE_NAME)美元)}]FACTORY_DEF * TeeFactory FACTORY_NAME“CityGML_LOD_Setter_2输出输出重命名/核”输入FEATURE_TYPE CityGML_LOD_Setter_2_Output输出FEATURE_TYPE CityGML_LOD_Setter_2_Output # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DEFAULT_MACRO Aggregator_3_BREAK_ATTR包括(如果{“不”= =“是”}{把{宏Aggregator_3_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE gml_id}}] FACTORY_DEF * AggregateFactory FACTORY_NAME Aggregator_3输入FEATURE_TYPE AttributeFilter_WallSurface输入FEATURE_TYPE AttributeFilter_GroundSurface输入FEATURE_TYPE FEATURE_TYPE AttributeFilter_RoofSurface输入 AttributeFilter_ClosureSurface INPUT FEATURE_TYPE AttributeFilter_OuterFloorSurface INPUT FEATURE_TYPE AttributeFilter_OuterCeilingSurface MODE ONE_LEVEL GROUP_BY gml_id $(Aggregator_3_BREAK_ATTR) REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES Yes SEPARATOR PRODUCE_MULTIS YES OUTPUT AGGREGATE FEATURE_TYPE Aggregator_3_AGGREGATE @Geometry(SET_TO_CONTAIN_INDIVIDUAL_GEOMS,否)#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "CityGML_Role_Setter_2 Input Input Collector" INPUT FEATURE_TYPE Aggregator_3_AGGREGATE OUTPUT FEATURE_TYPE CityGML_Role_Setter_2_Input MACRO CityGML_Role_Setter_WORKSPACE_NAME CityGML_Role_Setter_2 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_XFORMER_NAME CityGML_Role_Setter_2 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_SUB_DOC_NAME CityGML_Role_Setter MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE boundedBy DEFAULT_MACRO CityGML_Role_Setter_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CityGML_Role_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_Role_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359198_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}};};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator INPUT FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_Input” 输出FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_OUTPUT” “@ TCL2($(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359198_attrSetter {(citygml_feature_role,” @ EvaluateExpression(STRING_ENCODED,$($(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE $编码),$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator) “)})” FACTORY_DEF * TeeFactory FACTORY_NAME “$(CityGML_Role_Setter_WORKSPACE_NAME)_Output1532002402输出集电极” INPUT FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_OUTPUT” 输出FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_output” INCLUDE[放{MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT _ $(CityGML_Role_Setter_WORKSPACE_NAME))}] * FACTORY_DEF TeeFactory FACTORY_NAME “CityGML_Role_Setter_2输出输出更名/ Nuker” INPUT FEATURE_TYPEçityGML_Role_Setter_2_Output输出FEATURE_TYPE CityGML_Role_Setter_2_Output#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CityGML_LOD_Setter Input Input Collector" INPUT FEATURE_TYPE CityGML_Role_Setter_2_Output OUTPUT FEATURE_TYPE CityGML_LOD_Setter_Input MACRO CityGML_LOD_Setter_WORKSPACE_NAME CityGML_LOD_Setter MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_XFORMER_NAME CityGML_LOD_Setter MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_SUB_DOC_NAME CityGML_LOD_Setter MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_LOD $(BS_LOD) MACRO $(CityGML_LOD_Setter_WORKSPACE_NAME)_GEOM $(BS_GEOM) DEFAULT_MACRO CityGML_LOD_Setter_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CityGML_LOD_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_LOD_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_LOD_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3_63f0fd5f_2be8_4c19_927a_c3b1b54ef0ba149_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_LOD_Setter_WORKSPACE_NAME)_AttributeCreator_3}];};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $ (CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3输入FEATURE_TYPE " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _Input“输出FEATURE_TYPE“CityGML_LOD_Setter_WORKSPACE_NAME _AttributeCreator_3_OUTPUT“美元”@Tcl2 ($ (CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3_63f0fd5f_2be8_4c19_927a_c3b1b54ef0ba149_attrSetter{(citygml_level_of_detail“@EvaluateExpression (STRING_ENCODED, $ ((CityGML_LOD_Setter_WORKSPACE_NAME) _LOD编码美元),美元(CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3)”, citygml_lod_name,“@EvaluateExpression (STRING_ENCODED, $ ((CityGML_LOD_Setter_WORKSPACE_NAME) _GEOM编码)美元,美元(CityGML_LOD_Setter_WORKSPACE_NAME) _AttributeCreator_3)”)})“# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME$(CityGML_LOD_Setter_WORKSPACE_NAME) _geometrytraitset_output @GeometryTraits(SET_TRAITS_LIST, citygml_lod_name)是的)FACTORY_DEF * TeeFactory FACTORY_NAME " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _Output1532002402收集器输出“输入FEATURE_TYPE " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _GeometryTraitSetter_OUTPUT“输出FEATURE_TYPE " $ (CityGML_LOD_Setter_WORKSPACE_NAME) _Output”包括(把{宏WB_CURRENT_CONTEXT $ (WB_OLD_CONTEXT_ (CityGML_LOD_Setter_WORKSPACE_NAME)美元)}]FACTORY_DEF * TeeFactory FACTORY_NAME“CityGML_LOD_Setter输出输出重命名/核”输入FEATURE_TYPE CityGML_LOD_Setter_Output输出FEATURE_TYPE CityGML_LOD_Setter_Output # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME“CityGML_Role_Setter输入输入收集器”输入FEATURE_TYPE AttributeFilter_BuildingPart输出FEATURE_TYPE CityGML_Role_Setter_Input宏观CityGML_Role_Setter_WORKSPACE_NAME CityGML_Role_Setter宏(CityGML_Role_Setter_WORKSPACE_NAME)美元_XFORMER_NAME CityGML_Role_Setter宏(CityGML_Role_Setter_WORKSPACE_NAME) _TRANSFORMER_GROUP美元 MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_SUB_DOC_NAME CityGML_Role_Setter MACRO $(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE consistsOfBuildingPart DEFAULT_MACRO CityGML_Role_Setter_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CityGML_Role_Setter_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CityGML_Role_Setter_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input1532002402 Input Splitter" INPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(CityGML_Role_Setter_WORKSPACE_NAME)_Input" # ------------------------------------------------------------------------- Tcl2 proc $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359199_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $attrVal] == 1} {set attrVal [FME_Execute EvaluateExpression {STRING_ENCODED} $attrVal {$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator}};};FME_SetAttribute $attrName [FME_DecodeText $attrVal];};};FACTORY_DEF * TeeFactory FACTORY_NAME $(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator INPUT FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_Input” 输出FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_OUTPUT” “@ TCL2($(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_3763a16d_f43f_4d06_8729_6b852d379359199_attrSetter {(citygml_feature_role,” @ EvaluateExpression(STRING_ENCODED,$($(CityGML_Role_Setter_WORKSPACE_NAME)_ROLE $编码),$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator) “)})” FACTORY_DEF * TeeFactory FACTORY_NAME “$(CityGML_Role_Setter_WORKSPACE_NAME)_Output1532002402输出集电极” INPUT FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_AttributeCreator_OUTPUT” 输出FEATURE_TYPE “$(CityGML_Role_Setter_WORKSPACE_NAME)_output” INCLUDE[放{MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT _ $(CityGML_Role_Setter_WORKSPACE_NAME))}] * FACTORY_DEF TeeFactory FACTORY_NAME “CityGML_Role_Setter输出输出更名/ Nuker” INPUT FEATURE_TYPE相关链接yGML_Role_Setter_Output输出FEATURE_TYPE CityGML_Role_Setter_Output#------------------------------------------------------------------------- FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_7 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT FEATURE_TYPE Untitled_SKP_1_1_g+YtLwI/O4Y= ATTR gml_id 价值 fme_basename ATTR mappedFeature大厦ATTR gml_name 价值 fme_basename 输出输出FEATURE_TYPE AttributeCreator_7_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME CoordinateRounder输入FEATURE_TYPE CityGML_Role_Setter_Output输入FEATURE_TYPE CityGML_LOD_Setter_Output输入FEATURE_TYPE CityGML_LOD_Setter_2_Output输入FEATURE_TYPE AttributeCreator_7_OUTPUT输入FEATURE_TYPE CityGML_LOD_Setter_3_Output输出FEATURE_TYPE CoordinateRounder_ROUNDED @RoundOffCoords (xyz,“4”,“4”,“4”) #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * RoutingFactory FACTORY_NAME“目的地功能类型路由相关器”COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE *路线FME_GENERIC CoordinateRounder_ROUNDED, CITYGML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id, 0, SupplyAttributes 编码 fme_template_feature_type NewFeatureType EvaluateExpression ATTR_CREATE_EXPR __wb_out_feat_type__ 价值 openparen mappedFeature closeparen NewFeatureType COORDINATE_SYSTEM EPSG:24370 GEOMETRY FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__输出连FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @ TCL2( “FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn”)#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__ # ------------------------------------------------------------------------- CITYGML_1_DEF NewFeatureType