#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! FME_PYTHON_VERSION 37 GUI IGNORE SourceDataset_SHAPEFILE_1,SHAPEFILE_IN_READER_PARAMETERS_SHAPEFILE_1,SHAPEFILE_IN_ENCODING_SHAPEFILE_1,SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_1,SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_1,SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_1,SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_1,SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_1,SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_1,SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_1,SHAPEFILE_IN_ADVANCED_SHAPEFILE_1,SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_1,SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_1,SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_1,SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_1,SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_1,SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_1,DestDataset_CESIUM3DTILES_1,CESIUM3DTILES_OUT_WRITER_PARAMS_CESIUM3DTILES_1,CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_1 DEFAULT_MACRO DestDataset_CESIUM3DTILES_3 $(FME_MF_DIR)Output GUI DIRNAME DestDataset_CESIUM3DTILES_3 Destination Cesium 3D Tiles Folder: DEFAULT_MACRO SourceDataset_SHAPEFILE_4 $(FME_MF_DIR)Bygg_Del3.shp GUI MULTIFILE SourceDataset_SHAPEFILE_4 Shapefiles(*.shp)|*.shp|Compressed_Shapefiles(*.shz)|*.shz|Compressed_Files(*.bz2;*.gz)|*.bz2;*.gz|Archive_Files(*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx)|*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx|All_Files(*)|* Source Esri Shapefile(s): INCLUDE [ if {{$(DestDataset_CESIUM3DTILES_3)} == {}} { puts_real {Parameter 'DestDataset_CESIUM3DTILES_3' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_SHAPEFILE_4)} == {}} { puts_real {Parameter 'SourceDataset_SHAPEFILE_4' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE MULTI_READER MULTI_READER_TYPE{0} SHAPEFILE MULTI_READER_KEYWORD{0} SHAPEFILE_1 MULTI_READER_GEN_DIRECTIVES{0} DONUT_DETECTION,ORIENTATION,REPORT_BAD_GEOMETRY,No,EXPOSE_ATTRS_GROUP,,SEARCH_ENVELOPE_MAXX,0,SEARCH_ENVELOPE_MAXY,0,CLIP_TO_ENVELOPE,NO,MEASURES_AS_Z,No,SEARCH_ENVELOPE_MINX,0,USE_SEARCH_ENVELOPE,NO,SEARCH_ENVELOPE_COORDINATE_SYSTEM,,_MERGE_SCHEMAS,YES,TRIM_PRECEDING_SPACES,Yes,ADVANCED,,ENCODING,fme-source-encoding,SHAPEFILE_EXPOSE_FORMAT_ATTRS,,READ_BLANK_AS,MISSING,SEARCH_ENVELOPE_MINY,0,NUMERIC_TYPE_ATTRIBUTE_HANDLING,STANDARD_TYPES WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE{0} CESIUM3DTILES MULTI_WRITER_KEYWORD{0} CESIUM3DTILES_1 #! END_WB_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "SHAPEFILE_1" #! END_WB_HEADER #! START_SOURCE_HEADER SHAPEFILE SHAPEFILE_1 # ============================================================================ # The following GUI line prompts for the source shapefiles # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_SHAPEFILE_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER SHAPEFILE SHAPEFILE_1 DEFAULT_MACRO SourceDataset_SHAPEFILE_1 $(SourceDataset_SHAPEFILE_4) GUI MULTIFILE SourceDataset_SHAPEFILE_1 Shapefiles(*.shp)|*.shp|Compressed_Shapefiles(*.shz)|*.shz|All_Files(*)|* Source Esri Shapefile(s): DEFAULT_MACRO SHAPEFILE_IN_READER_PARAMETERS_SHAPEFILE_1 GUI OPTIONAL DISCLOSUREGROUP SHAPEFILE_IN_READER_PARAMETERS_SHAPEFILE_1 SHAPEFILE_IN_ENCODING_SHAPEFILE_1%SHAPEFILE_IN_NUMERIC_TYPE_ATTRIBUTE_HANDLING Reader Parameters # ============================================================================ # The following keyword allows the user to choose what encoding to # use for reading the shapefile, overrides dbf file LDID or .cpg # file if present. DEFAULT_MACRO SHAPEFILE_IN_ENCODING_SHAPEFILE_1 fme-source-encoding SHAPEFILE_1_ENCODING "$(SHAPEFILE_IN_ENCODING_SHAPEFILE_1)" GUI STRING_OR_ENCODING SHAPEFILE_IN_ENCODING_SHAPEFILE_1 fme-source-encoding%UTF-8%ISO*%Big5%ibm*%Shift_JIS%GB2312%GBK%win*%KSC_5601%macintosh%x-mac* Character Encoding # ============================================================================ # Determines whether numeric attributes should be interpreted as binary or as # bound number fields (ActualDBFrepresentation) DEFAULT_MACRO SHAPEFILE_IN_NUMERIC_TYPE_ATTRIBUTE_HANDLING_SHAPEFILE_1 STANDARD_TYPES SHAPEFILE_1_NUMERIC_TYPE_ATTRIBUTE_HANDLING "$(SHAPEFILE_IN_NUMERIC_TYPE_ATTRIBUTE_HANDLING_SHAPEFILE_1)" #Note: Using the search envelope requires the shape index files (.sbnand.sbx) DEFAULT_MACRO SHAPEFILE_IN_EXPOSE_ATTRS_GROUP_SHAPEFILE_1 SHAPEFILE_1_EXPOSE_ATTRS_GROUP "$(SHAPEFILE_IN_EXPOSE_ATTRS_GROUP_SHAPEFILE_1)" # Include this file in source setting section to add native search envelope processing # Zero as a default means we don't do any search -- this makes workbench happier DEFAULT_MACRO SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_1 NO SHAPEFILE_1_USE_SEARCH_ENVELOPE "$(SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_1)" GUI ACTIVEDISCLOSUREGROUP SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_1 SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_1%SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_1%SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_1%SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_1%SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_1%SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_1%SHAPEFILE_IN_SEARCH_METHOD%SHAPEFILE_IN_SEARCH_METHOD_FILTER%SHAPEFILE_IN_SEARCH_ORDER%SHAPEFILE_IN_SEARCH_FEATURE%SHAPEFILE_IN_DUMMY_SEARCH_ENVELOPE_PARAMETER Use Search Envelope # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_1 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_1 0 SHAPEFILE_1_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_1)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_1 Minimum X: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_1 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_1 0 SHAPEFILE_1_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_1)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_1 Minimum Y: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_1 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_1 0 SHAPEFILE_1_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_1)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_1 Maximum X: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_1 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_1 0 SHAPEFILE_1_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_1)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_1 Maximum Y: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_1 , DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_1 SHAPEFILE_1_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_1)" GUI OPTIONAL COORDSYS SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_1 Search Envelope Coordinate System: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_1 ,NO DEFAULT_MACRO SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_1 NO SHAPEFILE_1_CLIP_TO_ENVELOPE "$(SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_1)" GUI OPTIONAL CHECKBOX SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_1 YES%NO Clip to Search Envelope DEFAULT_MACRO SHAPEFILE_IN_ADVANCED_SHAPEFILE_1 FME_DISCLOSURE_CLOSED GUI OPTIONAL DISCLOSUREGROUP SHAPEFILE_IN_ADVANCED_SHAPEFILE_1 SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_1%SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_1%SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_1%SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_1%SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_1 Advanced DEFAULT_MACRO SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_1 Yes SHAPEFILE_1_TRIM_PRECEDING_SPACES "$(SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_1)" GUI CHOICE SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_1 Yes%No Trim Preceding Spaces DEFAULT_MACRO SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_1 MISSING SHAPEFILE_1_READ_BLANK_AS "$(SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_1)" GUI LOOKUP_CHOICE SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_1 Missing,MISSING%Null,NULL Read Blank Fields as: # ============================================================================ # Option to use simple donut geometry creation, which is faster than the # original creation method, but less meticulous at detecting and correcting # geometric anomalies (i.e.holeswithinholes) DEFAULT_MACRO SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_1 ORIENTATION SHAPEFILE_1_DONUT_DETECTION "$(SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_1)" GUI LOOKUP_CHOICE SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_1 "\"Orientation Only\",ORIENTATION"%"\"Orientation and Spatial Relationship\",SPATIAL" Donut Geometry Detection # ============================================================================ # The following GUI line sets whether measure values in the shapefiles should # be treated as elevations. DEFAULT_MACRO SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_1 No SHAPEFILE_1_MEASURES_AS_Z "$(SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_1)" GUI CHOICE SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_1 Yes%No Treat Measures as Elevation # ============================================================================ # The following keyword sets whether bad geometry should be reported via # the shape_geometry_errors attribute. DEFAULT_MACRO SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_1 No SHAPEFILE_1_REPORT_BAD_GEOMETRY "$(SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_1)" GUI CHOICE SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_1 Yes%No Report Geometry Anomalies # =========================================================================== DEFAULT_MACRO SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_1 SHAPEFILE_1_NETWORK_AUTHENTICATION "$(SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_1)" GUI OPTIONAL AUTHENTICATOR SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO SHAPEFILE_IN_ATTRIBUTE_READING_SHAPEFILE_1 ALL SHAPEFILE_1_ATTRIBUTE_READING "$(SHAPEFILE_IN_ATTRIBUTE_READING_SHAPEFILE_1)" # ============================================================================ SHAPEFILE_1_GENERATE_FME_BUILD_NUM 20787 SHAPEFILE_1_DATASET "$(SourceDataset_SHAPEFILE_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "CESIUM3DTILES_1" #! END_WB_HEADER #! START_DEST_HEADER CESIUM3DTILES CESIUM3DTILES_1 #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_CESIUM3DTILES_1 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER CESIUM3DTILES CESIUM3DTILES_1 DEFAULT_MACRO DestDataset_CESIUM3DTILES_1 $(DestDataset_CESIUM3DTILES_3) GUI DIRNAME DestDataset_CESIUM3DTILES_1 Destination Cesium 3D Tiles Folder: DEFAULT_MACRO CESIUM3DTILES_OUT_WRITER_PARAMS_CESIUM3DTILES_1 GUI OPTIONAL DISCLOSUREGROUP CESIUM3DTILES_OUT_WRITER_PARAMS_CESIUM3DTILES_1 CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_1 Writer Parameters DEFAULT_MACRO CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_1 300 CESIUM3DTILES_1_MAX_FEATURES_PER_TILE "$(CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_1)" GUI RANGE_SLIDER CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_1 1%MAX%0 Maximum Number of Features Per Tile: DEFAULT_MACRO CESIUM3DTILES_OUT_COORDINATE_SYSTEM_GRANULARITY_CESIUM3DTILES_1 FEATURE CESIUM3DTILES_1_COORDINATE_SYSTEM_GRANULARITY "$(CESIUM3DTILES_OUT_COORDINATE_SYSTEM_GRANULARITY_CESIUM3DTILES_1)" # ============================================================================ CESIUM3DTILES_1_GENERATE_FME_BUILD_NUM 20787 CESIUM3DTILES_1_DATASET "$(DestDataset_CESIUM3DTILES_1)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)WGS84 projection with roofs z values only.log" LOG_APPEND NO LOG_FILTER_MASK -1 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 MAPPING_FILE_ID FootprintsDEM2Cesium3DTilesBlog DEFAULT_MACRO DATASET_KEYWORD_SHAPEFILE_1 SHAPEFILE_1 DEFAULT_MACRO DATASET_KEYWORD_CESIUM3DTILES_1 CESIUM3DTILES_1 # ------------------------------------------------------------------------- SHAPEFILE_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- SHAPEFILE_1_COORDINATE_SYSTEM EPSG:4326 MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME WGS84 projection with roofs z values only MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- SHAPEFILE_1_DEF Bygg_Del3 shapefile_type shapefile_polygon ID1 long # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD $(DATASET_KEYWORD_SHAPEFILE_1) INPUT FEATURE_TYPE * ROUTE SHAPEFILE SHAPEFILE_1::Bygg_Del3 multi_reader_keyword,$(DATASET_KEYWORD_SHAPEFILE_1) TO FME_GENERIC ::Bygg_Del3 ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * SHAPEFILE_1_MERGE_DEF SHAPEFILE_1::Bygg_Del3 EXACT Bygg_Del3 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Bygg_Del3_SHAPEFILE_1 Splitter" INPUT FEATURE_TYPE Bygg_Del3 OUTPUT FEATURE_TYPE Bygg_Del3_SHAPEFILE_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME 3DForcer INPUT FEATURE_TYPE Bygg_Del3_SHAPEFILE_1 OUTPUT FEATURE_TYPE ___TOREJECTOR___ @ZValue("0", "Yes", ___fme_rejection_code___) FACTORY_DEF * TestFactory FACTORY_NAME 3DForcer_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(___fme_rejection_code___) != "" OUTPUT FAILED FEATURE_TYPE 3DForcer_OUTPUT # ------------------------------------------------------------------------- # Deletes the coordinate system off the feature, if present. Tcl2 proc CsmapReprojector_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO CsmapReprojector_REMOVE_CS MACRO CsmapReprojector_TRANSFORMATION # Only pass on transformation if a source coordinate system was picked INCLUDE [ if { {EPSG:4979} != {} } { puts {MACRO CsmapReprojector_REMOVE_CS @Tcl2(CsmapReprojector_CoordSysRemover)}; puts {MACRO CsmapReprojector_TRANSFORMATION ""}; }; ] FACTORY_DEF * TeeFactory FACTORY_NAME CsmapReprojector INPUT FEATURE_TYPE 3DForcer_OUTPUT OUTPUT FEATURE_TYPE CsmapReprojector_REPROJECTED $(CsmapReprojector_REMOVE_CS) @Reproject(FME,"EPSG:4979","EPSG:4326",3D_ORTHOMETRIC_TO_ELLIPSOID,"$(FME_HOME)Reproject\GeoidHeightGrids\World\Egm96-Wgs84.gdc",$(CsmapReprojector_TRANSFORMATION),--,NearestNeighbor,PreserveCells,RASTER_TOLERANCE,0.0) # ------------------------------------------------------------------------- INCLUDE [ set supplyZFunc {}; if { {} != {} } { set supplyZFunc "@EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING, \"_z\", ,FLOAT)"; }; puts "MACRO CoordinateExtractor_SUPPLY_Z ${supplyZFunc}"; ] FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_TESTZDEFAULT INPUT FEATURE_TYPE CsmapReprojector_REPROJECTED TEST "" = "" ENCODED TEST "" TYPE NUM ENCODED BOOLEAN_OPERATOR OR FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_TESTMODE_INPUT FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_TESTMODE INPUT FEATURE_TYPE CoordinateExtractor_TESTMODE_INPUT TEST "Specify Coordinate" == "All Coordinates" FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_LIST_INPUT OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_SPECIFIC_INPUT FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_LIST INPUT FEATURE_TYPE CoordinateExtractor_LIST_INPUT TEST @Dimension() == 2 FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT @ZValue("") @Coordinate(x,ALL,""{}.x,FLATTEN_AGGREGATE,YES) @Coordinate(y,ALL,""{}.y,FLATTEN_AGGREGATE,NO) @Coordinate(z,ALL,""{}.z,FLATTEN_AGGREGATE,NO) @Dimension(2) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT @Coordinate(x,ALL,""{}.x,FLATTEN_AGGREGATE,YES) @Coordinate(y,ALL,""{}.y,FLATTEN_AGGREGATE,NO) @Coordinate(z,ALL,""{}.z,FLATTEN_AGGREGATE,NO) FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_SPECIFIC INPUT FEATURE_TYPE CoordinateExtractor_SPECIFIC_INPUT TEST "0" TYPE INT ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_SPECIFIC_2D_3D_INPUT FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_SPECIFIC_2D_3D INPUT FEATURE_TYPE CoordinateExtractor_SPECIFIC_2D_3D_INPUT TEST @Dimension() == 2 FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_SPECIFIC_2D_INPUT OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_SPECIFIC_3D_INPUT FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME CoordinateExtractor_SPECIFIC_2D INPUT FEATURE_TYPE CoordinateExtractor_SPECIFIC_2D_INPUT FUNCTION_DEFINITION @Concatenate( @EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING, "_x", @Coordinate(REJECTABLE_WITH_FLAG,x,"0",FLATTEN_AGGREGATE,YES),FLOAT), @EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING, "_y", @Coordinate(REJECTABLE_WITH_FLAG,y,"0",FLATTEN_AGGREGATE,NO),FLOAT) ) FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT COMPLETE FEATURE_TYPE CoordinateExtractor_OUTPUT $(CoordinateExtractor_SUPPLY_Z) FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME CoordinateExtractor_SPECIFIC_3D INPUT FEATURE_TYPE CoordinateExtractor_SPECIFIC_3D_INPUT FUNCTION_DEFINITION @Concatenate( @EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING, "_x", @Coordinate(REJECTABLE_WITH_FLAG,x,"0",FLATTEN_AGGREGATE,YES),FLOAT), @EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING, "_y", @Coordinate(REJECTABLE_WITH_FLAG,y,"0",FLATTEN_AGGREGATE,NO),FLOAT) @EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING, "_z", @Coordinate(REJECTABLE_WITH_FLAG,z,"0",FLATTEN_AGGREGATE,NO),FLOAT) ) FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT COMPLETE FEATURE_TYPE CoordinateExtractor_OUTPUT # ------------------------------------------------------------------------- INCLUDE [ if { ({SPECIFIED} == {SPECIFIED}) } { puts {MACRO Extruder_func @GeometryType(REJECTABLE, fme_extrusion_exact,"0.0","0.0","@EvaluateExpression(FDIV,FLOAT,Value_z*-1,Extruder)")}; } else { puts {MACRO Extruder_func @GeometryType(REJECTABLE, fme_extrusion_exact,0.0,0.0,0.0,"","SPECIFIED")}; } ] FACTORY_DEF * TeeFactory FACTORY_NAME Extruder INPUT FEATURE_TYPE CoordinateExtractor_OUTPUT OUTPUT FEATURE_TYPE ___TOREJECTOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) $(Extruder_func) FACTORY_DEF * TestFactory FACTORY_NAME Extruder_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) == "" OUTPUT PASSED FEATURE_TYPE Extruder_EXTRUDED @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) # ------------------------------------------------------------------------- INCLUDE [ set listOrSingle {@Value(___myNewAppearance)}; puts "MACRO LIST_OR_SINGLE $listOrSingle"; ] INCLUDE [if { ("BOTH" == "BOTH") } { puts "MACRO APPEARANCE_IDS $(LIST_OR_SINGLE) $(LIST_OR_SINGLE)"; } elseif { ("BOTH" == "FRONT") } { puts "MACRO APPEARANCE_IDS $(LIST_OR_SINGLE) fme_do_not_set"; } else { puts "MACRO APPEARANCE_IDS fme_do_not_set $(LIST_OR_SINGLE)"; } ] INCLUDE [if { ("SURFACE_NORMAL" == "TOPDOWN_GEOREFERENCED") || ("SURFACE_NORMAL" == "ATTRIBUTE") } { puts "MACRO TEXTURE_U_OFFSET2 0.0"; puts "MACRO TEXTURE_V_OFFSET2 0.0"; puts "MACRO TEXTURE_U_SCALE_FACTOR 1.0"; puts "MACRO TEXTURE_V_SCALE_FACTOR 1.0"; } elseif { ("SURFACE_NORMAL" == "SURFACE_NORMAL_GROUNDUNITS") } { puts "MACRO TEXTURE_U_OFFSET2 0.0"; puts "MACRO TEXTURE_V_OFFSET2 0.0"; puts "MACRO TEXTURE_U_SCALE_FACTOR 1.0"; puts "MACRO TEXTURE_V_SCALE_FACTOR 1.0"; } else { puts "MACRO TEXTURE_U_OFFSET2 0.0"; puts "MACRO TEXTURE_V_OFFSET2 0.0"; puts "MACRO TEXTURE_U_SCALE_FACTOR 1.0"; puts "MACRO TEXTURE_V_SCALE_FACTOR 1.0"; } ] Tcl2 proc AppearanceSetter_doSetAppearanceName { appearanceName } { FME_SetAttribute fme_appearance_style_name [FME_DecodeText $appearanceName] } FACTORY_DEF * SortFactory FACTORY_NAME AppearanceSetter_HOLDER INPUT FEATURE_TYPE AppearanceSetter__DUMMY__ FACTORY_DEF * CreationFactory FACTORY_NAME AppearanceSetter_ColorStyle_Creator CREATE_AT_END NO OUTPUT FEATURE_TYPE AppearanceSetter_____CREATED_COLORSTYLE______ FACTORY_DEF * TeeFactory FACTORY_NAME AppearanceSetter_Apply_ColorStyle INPUT FEATURE_TYPE AppearanceSetter_____CREATED_COLORSTYLE______ OUTPUT FEATURE_TYPE AppearanceSetter_____OVERWRITE_APPEARANCE______ @Tcl2("AppearanceSetter_doSetAppearanceName {} ") fme_appearance_style_diffuse_color "0.92549,0.92549,0.92549" fme_appearance_style_ambient_color "0.666667,0,0" fme_appearance_style_specular_color "" fme_appearance_style_emissive_color "" fme_appearance_style_alpha "1" fme_appearance_style_shininess "0.7" fme_texture_style_u_offset "" fme_texture_style_v_offset "" fme_texture_style_center_u "" fme_texture_style_center_v "" fme_texture_style_u_scaling_factor "" fme_texture_style_v_scaling_factor "" fme_texture_style_u_shearing_factor "" fme_texture_style_v_shearing_factor "" fme_texture_style_rotation_angle "" __fme_temp_overwrite_appearance_info yes # We're going to say "front side" here, as all we want is the attribute back. FACTORY_DEF {*} SharedObjectFactory FACTORY_NAME AppearanceSetter_AddRefs INPUT DEFINITION_FRONT FEATURE_TYPE AppearanceSetter_____OVERWRITE_APPEARANCE______ INPUT REFERENCER FEATURE_TYPE Extruder_EXTRUDED FLUSH_WHEN_GROUPS_CHANGE No MODE ADD SHARED_OBJECT_TYPE APPEARANCE ADD_AS_ATTR_FRONT ___myNewAppearance RECURSIVE NO OUTPUT INVALID_GEOMETRY FEATURE_TYPE AppearanceSetter_OUTPUT OUTPUT SUCCESSFUL FEATURE_TYPE AppearanceSetter___touOriginOffsetRejector___ FACTORY_DEF * TestFactory FACTORY_NAME AppearanceSetter_uOriginOffsetRejector INPUT FEATURE_TYPE AppearanceSetter___touOriginOffsetRejector___ TEST "$(TEXTURE_U_OFFSET2)" TYPE NUM ENCODED OUTPUT PASSED FEATURE_TYPE AppearanceSetter___tovOriginOffsetRejector___ FACTORY_DEF * TestFactory FACTORY_NAME AppearanceSetter_vOriginOffsetRejector INPUT FEATURE_TYPE AppearanceSetter___tovOriginOffsetRejector___ TEST "$(TEXTURE_V_OFFSET2)" TYPE NUM ENCODED OUTPUT PASSED FEATURE_TYPE AppearanceSetter___toTextureuRepeatFactorRejector___ FACTORY_DEF * TestFactory FACTORY_NAME AppearanceSetter__textureuRepeatFactorRejector__ INPUT FEATURE_TYPE AppearanceSetter___toTextureuRepeatFactorRejector___ TEST "$(TEXTURE_U_SCALE_FACTOR)" TYPE NUM ENCODED OUTPUT PASSED FEATURE_TYPE AppearanceSetter___toTexturevRepeatFactorRejector___ FACTORY_DEF * TestFactory FACTORY_NAME AppearanceSetter__texturevRepeatFactorRejector__ INPUT FEATURE_TYPE AppearanceSetter___toTexturevRepeatFactorRejector___ TEST "$(TEXTURE_V_SCALE_FACTOR)" TYPE NUM ENCODED OUTPUT PASSED FEATURE_TYPE AppearanceSetter___TaggedGeoms___ FACTORY_DEF * GQueryFactory FACTORY_NAME AppearanceSetter_GQuery INPUT FEATURE_TYPE AppearanceSetter___TaggedGeoms___ GQUERY "@EvaluateExpression(FDIV,STRING_ENCODED,forgeomingeometrywheregeomcountparent::geometry=0returnnumbergeomfme_id,AppearanceSetter)" REJECT_INVALID Yes ROUTE_UNMATCHED_FEATURES YES ACTION SET_APPEARANCE PARAMETER $(APPEARANCE_IDS) NO SURFACE_NORMAL "$(TEXTURE_U_SCALE_FACTOR)" "$(TEXTURE_V_SCALE_FACTOR)" "$(TEXTURE_U_OFFSET2)" "$(TEXTURE_V_OFFSET2)" No CREATE OUTPUT RESULT FEATURE_TYPE AppearanceSetter_OUTPUT @RemoveAttributes(fme_regexp_match,^___myNewAppearance.*$) # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC AppearanceSetter_OUTPUT TO CESIUM3DTILES __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__3d-building-0726 GEOMETRY FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED 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__ # ------------------------------------------------------------------------- CESIUM3DTILES_1_DEF 3d-building-0726 cid string poly_id string parent_id string abs_h float rel_h float