#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! FME_PYTHON_VERSION 38 ARCGIS_COMPATIBILITY ARCGIS_AUTO GUI IGNORE SourceDataset_SHAPEFILE_2,SHAPEFILE_IN_READER_PARAMETERS_SHAPEFILE_2,SHAPEFILE_IN_ENCODING_SHAPEFILE_2,SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_2,SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_2,SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_2,SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_2,SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_2,SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_2,SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_2,SHAPEFILE_IN_ADVANCED_SHAPEFILE_2,SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_2,SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_2,SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_2,SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_2,SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_2,SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_2,DestDataset_CESIUM3DTILES_2,CESIUM3DTILES_OUT_WRITER_PARAMS_CESIUM3DTILES_2,CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_2 # ============================================================================ DEFAULT_MACRO SourceDataset_SHAPEFILE $(FME_MF_DIR)3d-building-0726.shp DEFAULT_MACRO DestDataset_CESIUM3DTILES_3 $(FME_MF_DIR)Output # ============================================================================ GUI MULTIFILE SourceDataset_SHAPEFILE 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): GUI DIRNAME DestDataset_CESIUM3DTILES_3 Destination Cesium 3D Tiles Folder: # ============================================================================ USER_PARAMETERS eyJwYXJhbWV0ZXJzIjpbeyJhY2Nlc3NNb2RlIjoicmVhZCIsImRlZmF1bHRWYWx1ZSI6IiQoRk1FX01GX0RJUl9VU0VSVFlQRUQpM2QtYnVpbGRpbmctMDcyNi5zaHAiLCJmaWx0ZXJzIjpbeyJkZXNjcmlwdGlvbiI6IlNoYXBlZmlsZXMiLCJmaWx0ZXIiOlsiKi5zaHAiXX0seyJkZXNjcmlwdGlvbiI6IkNvbXByZXNzZWQgU2hhcGVmaWxlcyIsImZpbHRlciI6WyIqLnNoeiJdfSx7ImRlc2NyaXB0aW9uIjoiQ29tcHJlc3NlZCBGaWxlcyIsImZpbHRlciI6WyIqLmJ6MiIsIiouZ3oiXX0seyJkZXNjcmlwdGlvbiI6IkFyY2hpdmUgRmlsZXMiLCJmaWx0ZXIiOlsiKi43eiIsIiouN3ppcCIsIioucmFyIiwiKi5ydnoiLCIqLnRhciIsIioudGFyLmJ6MiIsIioudGFyLmd6IiwiKi50Z3oiLCIqLnppcCIsIiouemlweCJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsIEZpbGVzIiwiZmlsdGVyIjpbIioiXX1dLCJpbmNsdWRlV2ViQnJvd3NlciI6dHJ1ZSwiaXRlbXNUb1NlbGVjdCI6ImZpbGVzIiwibmFtZSI6IlNvdXJjZURhdGFzZXRfU0hBUEVGSUxFIiwicHJvbXB0IjoiU291cmNlIEVzcmkgU2hhcGVmaWxlKHMpOiIsInJlcXVpcmVkIjp0cnVlLCJzZWxlY3RNdWx0aXBsZSI6dHJ1ZSwidHlwZSI6ImZpbGUiLCJ2YWxpZGF0ZUV4aXN0ZW5jZSI6ZmFsc2UsInZhbHVlVHlwZSI6InN0cmluZyJ9LHsiYWNjZXNzTW9kZSI6IndyaXRlIiwiZGVmYXVsdFZhbHVlIjoiJChGTUVfTUZfRElSX1VTRVJUWVBFRClPdXRwdXQiLCJpdGVtc1RvU2VsZWN0IjoiZm9sZGVycyIsIm5hbWUiOiJEZXN0RGF0YXNldF9DRVNJVU0zRFRJTEVTXzMiLCJwcm9tcHQiOiJEZXN0aW5hdGlvbiBDZXNpdW0gM0QgVGlsZXMgRm9sZGVyOiIsInJlcXVpcmVkIjp0cnVlLCJzZWxlY3RNdWx0aXBsZSI6ZmFsc2UsInR5cGUiOiJmaWxlIiwidmFsaWRhdGVFeGlzdGVuY2UiOmZhbHNlLCJ2YWx1ZVR5cGUiOiJzdHJpbmcifV19 # ============================================================================ INCLUDE [ if {{$(SourceDataset_SHAPEFILE)} == {}} { puts_real {Parameter 'SourceDataset_SHAPEFILE' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_CESIUM3DTILES_3)} == {}} { puts_real {Parameter 'DestDataset_CESIUM3DTILES_3' 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_2 MULTI_READER_GEN_DIRECTIVES{0} REPORT_BAD_GEOMETRY,No,READ_BLANK_AS,MISSING,ENCODING,fme-source-encoding,DONUT_DETECTION,ORIENTATION,CLIP_TO_ENVELOPE,NO,ADVANCED,,SEARCH_ENVELOPE_MINY,0,TRIM_PRECEDING_SPACES,Yes,_MERGE_SCHEMAS,YES,SEARCH_ENVELOPE_MINX,0,USE_SEARCH_ENVELOPE,NO,EXPOSE_ATTRS_GROUP,,SHAPEFILE_EXPOSE_FORMAT_ATTRS,,MEASURES_AS_Z,No,SEARCH_ENVELOPE_COORDINATE_SYSTEM,,SEARCH_ENVELOPE_MAXX,0,SEARCH_ENVELOPE_MAXY,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_2 #! END_WB_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "SHAPEFILE_2" #! END_WB_HEADER #! START_SOURCE_HEADER SHAPEFILE SHAPEFILE_2 # ============================================================================ # 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_2 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER SHAPEFILE SHAPEFILE_2 DEFAULT_MACRO SourceDataset_SHAPEFILE_2 $(SourceDataset_SHAPEFILE) GUI MULTIFILE SourceDataset_SHAPEFILE_2 Shapefiles(*.shp)|*.shp|Compressed_Shapefiles(*.shz)|*.shz|All_Files(*)|* Source Esri Shapefile(s): DEFAULT_MACRO SHAPEFILE_IN_READER_PARAMETERS_SHAPEFILE_2 GUI OPTIONAL DISCLOSUREGROUP SHAPEFILE_IN_READER_PARAMETERS_SHAPEFILE_2 SHAPEFILE_IN_ENCODING_SHAPEFILE_2%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_2 fme-source-encoding SHAPEFILE_2_ENCODING "$(SHAPEFILE_IN_ENCODING_SHAPEFILE_2)" GUI STRING_OR_ENCODING SHAPEFILE_IN_ENCODING_SHAPEFILE_2 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_2 STANDARD_TYPES SHAPEFILE_2_NUMERIC_TYPE_ATTRIBUTE_HANDLING "$(SHAPEFILE_IN_NUMERIC_TYPE_ATTRIBUTE_HANDLING_SHAPEFILE_2)" #Note: Using the search envelope requires the shape index files (.sbnand.sbx) DEFAULT_MACRO SHAPEFILE_IN_EXPOSE_ATTRS_GROUP_SHAPEFILE_2 SHAPEFILE_2_EXPOSE_ATTRS_GROUP "$(SHAPEFILE_IN_EXPOSE_ATTRS_GROUP_SHAPEFILE_2)" # 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_2 NO SHAPEFILE_2_USE_SEARCH_ENVELOPE "$(SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_2)" GUI ACTIVEDISCLOSUREGROUP SHAPEFILE_IN_USE_SEARCH_ENVELOPE_SHAPEFILE_2 SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_2%SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_2%SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_2%SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_2%SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_2%SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_2%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_2 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_2 0 SHAPEFILE_2_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_2)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MINX_SHAPEFILE_2 Minimum X: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_2 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_2 0 SHAPEFILE_2_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_2)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MINY_SHAPEFILE_2 Minimum Y: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_2 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_2 0 SHAPEFILE_2_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_2)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MAXX_SHAPEFILE_2 Maximum X: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_2 ,0 DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_2 0 SHAPEFILE_2_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_2)" GUI OPTIONAL FLOAT SHAPEFILE_IN_SEARCH_ENVELOPE_MAXY_SHAPEFILE_2 Maximum Y: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_2 , DEFAULT_MACRO SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_2 SHAPEFILE_2_SEARCH_ENVELOPE "$(SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_2)" GUI OPTIONAL COORDSYS SHAPEFILE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_SHAPEFILE_2 Search Envelope Coordinate System: # =========================================================================== GUI LOOKUP SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_2 ,NO DEFAULT_MACRO SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_2 NO SHAPEFILE_2_CLIP_TO_ENVELOPE "$(SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_2)" GUI OPTIONAL CHECKBOX SHAPEFILE_IN_CLIP_TO_ENVELOPE_SHAPEFILE_2 YES%NO Clip to Search Envelope DEFAULT_MACRO SHAPEFILE_IN_ADVANCED_SHAPEFILE_2 GUI OPTIONAL DISCLOSUREGROUP SHAPEFILE_IN_ADVANCED_SHAPEFILE_2 SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_2%SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_2%SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_2%SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_2%SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_2 Advanced DEFAULT_MACRO SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_2 Yes SHAPEFILE_2_TRIM_PRECEDING_SPACES "$(SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_2)" GUI CHOICE SHAPEFILE_IN_TRIM_PRECEDING_SPACES_SHAPEFILE_2 Yes%No Trim Preceding Spaces DEFAULT_MACRO SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_2 MISSING SHAPEFILE_2_READ_BLANK_AS "$(SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_2)" GUI LOOKUP_CHOICE SHAPEFILE_IN_READ_BLANK_AS_SHAPEFILE_2 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_2 ORIENTATION SHAPEFILE_2_DONUT_DETECTION "$(SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_2)" GUI LOOKUP_CHOICE SHAPEFILE_IN_DONUT_DETECTION_SHAPEFILE_2 "\"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_2 No SHAPEFILE_2_MEASURES_AS_Z "$(SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_2)" GUI CHOICE SHAPEFILE_IN_MEASURES_AS_Z_SHAPEFILE_2 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_2 No SHAPEFILE_2_REPORT_BAD_GEOMETRY "$(SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_2)" GUI CHOICE SHAPEFILE_IN_REPORT_BAD_GEOMETRY_SHAPEFILE_2 Yes%No Report Geometry Anomalies # =========================================================================== DEFAULT_MACRO SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_2 SHAPEFILE_2_NETWORK_AUTHENTICATION "$(SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_2)" GUI OPTIONAL AUTHENTICATOR SHAPEFILE_IN_NETWORK_AUTHENTICATION_SHAPEFILE_2 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO SHAPEFILE_IN_ATTRIBUTE_READING_SHAPEFILE_2 ALL SHAPEFILE_2_ATTRIBUTE_READING "$(SHAPEFILE_IN_ATTRIBUTE_READING_SHAPEFILE_2)" # ============================================================================ SHAPEFILE_2_GENERATE_FME_BUILD_NUM 20787 SHAPEFILE_2_DATASET "$(SourceDataset_SHAPEFILE_2)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "CESIUM3DTILES_2" #! END_WB_HEADER #! START_DEST_HEADER CESIUM3DTILES CESIUM3DTILES_2 #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_CESIUM3DTILES_2 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER CESIUM3DTILES CESIUM3DTILES_2 DEFAULT_MACRO DestDataset_CESIUM3DTILES_2 $(DestDataset_CESIUM3DTILES_3) GUI DIRNAME DestDataset_CESIUM3DTILES_2 Destination Cesium 3D Tiles Folder: DEFAULT_MACRO CESIUM3DTILES_OUT_WRITER_PARAMS_CESIUM3DTILES_2 GUI OPTIONAL DISCLOSUREGROUP CESIUM3DTILES_OUT_WRITER_PARAMS_CESIUM3DTILES_2 CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_2 Writer Parameters DEFAULT_MACRO CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_2 300 CESIUM3DTILES_2_MAX_FEATURES_PER_TILE "$(CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_2)" GUI RANGE_SLIDER CESIUM3DTILES_OUT_MAX_FEATURES_PER_TILE_CESIUM3DTILES_2 1%MAX%0 Maximum Number of Features Per Tile: DEFAULT_MACRO CESIUM3DTILES_OUT_COORDINATE_SYSTEM_GRANULARITY_CESIUM3DTILES_2 FEATURE CESIUM3DTILES_2_COORDINATE_SYSTEM_GRANULARITY "$(CESIUM3DTILES_OUT_COORDINATE_SYSTEM_GRANULARITY_CESIUM3DTILES_2)" # ============================================================================ CESIUM3DTILES_2_GENERATE_FME_BUILD_NUM 20787 CESIUM3DTILES_2_DATASET "$(DestDataset_CESIUM3DTILES_2)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)Local Projection absolute roof values from attribute table.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 FME_NAMES_ENCODING windows-1252 LAST_SAVE_BUILD "FME 2021.2.0.0 (20211029 - Build 21784 - WIN64)" MAPPING_FILE_ID FootprintsDEM2Cesium3DTilesBlog DEFAULT_MACRO DATASET_KEYWORD_SHAPEFILE_2 SHAPEFILE_2 DEFAULT_MACRO DATASET_KEYWORD_CESIUM3DTILES_2 CESIUM3DTILES_2 # ------------------------------------------------------------------------- SHAPEFILE_2_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- SHAPEFILE_2_COORDINATE_SYSTEM EPSG:2193 MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME Local Projection absolute roof values from attribute table MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- SHAPEFILE_2_DEF 3d-building-0726 shapefile_type shapefile_polygon cid char(32) poly_id char(32) parent_id char(32) abs_h number(64,10) rel_h number(64,10) # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD $(DATASET_KEYWORD_SHAPEFILE_2) INPUT FEATURE_TYPE * ROUTE SHAPEFILE SHAPEFILE_2::3d-building-0726 multi_reader_keyword,$(DATASET_KEYWORD_SHAPEFILE_2) TO FME_GENERIC ::3d-building-0726 ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * SHAPEFILE_2_MERGE_DEF SHAPEFILE_2::3d-building-0726 EXACT 3d-building-0726 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "3d-building-0726_SHAPEFILE_2 Splitter" INPUT FEATURE_TYPE 3d-building-0726 OUTPUT FEATURE_TYPE 3d-building-0726_SHAPEFILE_2 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- # Wipe out the source setting if it was untouched from the default setting DEFAULT_MACRO Reprojector_SOURCE "Read from feature" INCLUDE [if { {Read from feature} == {Read from feature} } { puts {MACRO Reprojector_SOURCE} } ] FACTORY_DEF * TeeFactory FACTORY_NAME Reprojector INPUT FEATURE_TYPE 3d-building-0726_SHAPEFILE_2 OUTPUT FEATURE_TYPE Reprojector_REPROJECTED @Reproject($(Reprojector_SOURCE),"EPSG:4326",NearestNeighbor,PreserveCells,Reprojector,"COORD_SYS_WARNING",RASTER_TOLERANCE,0.0) # ------------------------------------------------------------------------- FACTORY_DEF {*} TeeFactory FACTORY_NAME { 3DForcer_2 } INPUT FEATURE_TYPE Reprojector_REPROJECTED OUTPUT { FEATURE_TYPE ___TOREJECTOR___ @ZValue("0", "No", ___fme_rejection_code___) } FACTORY_DEF {*} TestFactory FACTORY_NAME { 3DForcer_2_Rejector } INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(___fme_rejection_code___) != "" OUTPUT { FAILED FEATURE_TYPE 3DForcer_2_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_2_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 [ if { ({AUTO} == {SPECIFIED}) } { puts {MACRO Extruder_2_func @GeometryType(REJECTABLE, fme_extrusion_exact,"","","")}; } else { puts {MACRO Extruder_2_func @GeometryType(REJECTABLE, fme_extrusion_exact,0.0,0.0,0.0,"@EvaluateExpression(FDIV,FLOAT,Valueabs_h,Extruder_2)","AUTO")}; } ] FACTORY_DEF {*} TeeFactory FACTORY_NAME { Extruder_2 } INPUT FEATURE_TYPE CsmapReprojector_REPROJECTED OUTPUT { FEATURE_TYPE ___TOREJECTOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) $(Extruder_2_func) } FACTORY_DEF {*} TestFactory FACTORY_NAME { Extruder_2_Rejector } INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) == "" OUTPUT { PASSED FEATURE_TYPE Extruder_2_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.847059,0.847059,0.847059" 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_2_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_2_DEF 3d-building-0726 cid string poly_id string parent_id string abs_h float rel_h float