#! <?xml version="1.0" encoding="UTF-8" ?>
#! <WORKSPACE
#    
#    
#    Command-line to run this workspace:
#    
#    
#    C:\apps\FME2016.1\fme.exe C:\Users\imark\AppData\Local\Temp\wb_template_1463595603630_23056\SpatialRelationships.fmw
#          --SourceDataset_ACAD "1/FMEInput/BuildingFootprints.dwg"
#          --SourceDataset_FILEGDB "1/FMEInput/Addresses.gdb"
#    
#    
#!   WORKSPACE_VERSION="1"
#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
#!   DESTINATION="NONE"
#!   DESTINATION_ROUTING_FILE=""
#!   TITLE="SpatialRelationships"
#!   LAST_SAVE_DATE="2016-05-18T13:20:17"
#!   LOG_MAX_RECORDED_FEATURES="200"
#!   FME_DOCUMENT_PRIORGUID=""
#!   WARN_INVALID_XFORM_PARAM="Yes"
#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto"
#!   EXPLICIT_BOOKMARK_ORDER="false"
#!   END_TCL=""
#!   REDIRECT_TERMINATORS="NONE"
#!   ATTR_TYPE_ENCODING="SDF"
#!   SHOW_INFO_NODES="true"
#!   BEGIN_PYTHON=""
#!   FME_SERVER_SERVICES=""
#!   DOC_TOP_LEFT="100 -601.502"
#!   VIEW_POSITION="-100.001 0"
#!   FME_GEOMETRY_HANDLING="Enhanced"
#!   FME_BUILD_NUM="16492"
#!   LAST_SAVE_BUILD="FME(R) 2016.1.0.0 (20160419 - Build 16492 - WIN32)"
#!   REQUIREMENTS="&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&#10;    &lt;br/&gt;&#10;&lt;/p&gt;&#10;"
#!   IGNORE_READER_FAILURE="No"
#!   DESCRIPTION="&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&#10;    &lt;br/&gt;&#10;&lt;/p&gt;&#10;"
#!   FME_REPROJECTION_ENGINE="FME"
#!   LEGAL_TERMS_CONDITIONS="&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&#10;    &lt;br/&gt;&#10;&lt;/p&gt;&#10;"
#!   END_PYTHON=""
#!   FME_DOCUMENT_GUID="e0aaa8a2-7359-4c3d-bedf-ae950860782a"
#!   SHOW_ANNOTATIONS="true"
#!   REQUIREMENTS_KEYWORD="none"
#!   DOC_EXTENTS="1310.26 485.13"
#!   PYTHON_COMPATIBILITY="27"
#!   CATEGORY=""
#!   MAX_LOG_FEATURES="200"
#!   SOURCE="NONE"
#!   BEGIN_TCL=""
#!   SOURCE_ROUTING_FILE=""
#!   FME_STROKE_MAX_DEVIATION="0"
#!   LOG_FILE=""
#!   HISTORY=""
#!   PASSWORD=""
#!   ZOOM_SCALE="100"
#!   USAGE="&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&#10;    &lt;br/&gt;&#10;&lt;/p&gt;&#10;"
#! >
#! <DATASETS>
#! <DATASET
#!   IS_SOURCE="true"
#!   ROLE="READER"
#!   FORMAT="ACAD"
#!   DATASET="$(SourceDataset_ACAD)"
#!   KEYWORD="ACAD_1"
#!   MULTI_GEOM_ALLOWED="false"
#!   ATTR_MAX_LENGTH="0"
#!   ATTR_CASE="ANY"
#!   ALLOWED_FEAT_TYPES=""
#!   WRITE_DEFS="true"
#!   DEFLINE_TEMPLATE="autocad_color 10 autocad_linetype CONTINUOUS autocad_layer_frozen no autocad_layer_hidden no autocad_layer_locked no autocad_layer_on yes autocad_layer_desc &quot;&quot;"
#!   DEFLINE_ATTRS="true"
#!   EXPOSABLE_ATTRS="autocad_version char(32) autocad_proxygraphics number(6,0) fme_text_string char(50) autocad_block_insert_y number(31,15) autocad_has_hook_line char(10) autocad_viewport_ucs_origin_y number(31,15) autocad_extended_data{0}.application_name char(50) autocad_control_z string autocad_polyflag char(50) autocad_num_fit_pts number(11,0) autocad_hatch_pattern_space number(31,15) autocad_dim_leader_pt2.y number(31,15) autocad_xrecord_data{0}.world_direction{0}.z number(31,15) autocad_fontname char(50) fme_primary_axis number(31,15) autocad_mpolygon_origin_point_x number(31,15) autocad_viewport_default_lighting logical autocad_line_defpoint.x number(31,15) autocad_box_width number(31,15) autocad_fit_z string autocad_xrecord_data{}.world_direction{0}.y number(31,15) autocad_hatch_object_type number(6,0) autocad_anno_type char(30) autocad_viewport_back_clip logical autocad_dim_arrowhead_pt_1.x number(31,15) autocad_defpt2.y number(31,15) autocad_hatch_pattern_angle number(31,15) autocad_group_anonymous char(50) autocad_dim_arc_start_param number(31,15) fme_attrib_info{}.color.source char(10) autocad_dim_arc_end_param number(31,15) autocad_upside_down char(1) autocad_mpolygon_offset_y number(31,15) autocad_xref_type char(10) autocad_layer_hidden char(10) autocad_xrecord_data{0}.world_displacement{0}.y number(31,15) autocad_angdir logical autocad_base_x number(31,15) autocad_layout_limit_max_x number(31,15) autocad_raster_display_opt_show_unaligned logical autocad_dim_clone_inspection_point.y number(31,15) autocad_scale number(31,15) autocad_extended_data{0}.world_position{0}.z number(31,15) autocad_hatch_gradient_angle number(31,15) autocad_path_type char(10) autocad_x_dir_z number(31,15) autocad_raster_clip_points{}.z number(31,15) autocad_layer_color number(6,0) autocad_mtext_text_height number(31,15) autocad_viewport_center_point_x number(31,15) autocad_num_verts number(5,0) autocad_resolved_linetype char(50) autocad_text_z_pos number(31,15) autocad_viewport_grid_adaptive logical autocad_x_dir_x number(31,15) autocad_xrecord_data{0}.binary{0} char(50) autocad_xrecord_data{}.real{0} number(31,15) autocad_defpt2.x number(31,15) autocad_line_defpoint.y number(31,15) autocad_viewport_view_center_y number(31,15) autocad_original_entity char(50) autocad_xrecord_data{}.three_reals{0}.real1 number(31,15) autocad_xref_name char(50) autocad_mline_style char(50) autocad_width_factor number(31,15) autocad_layer_lineweight number(5,0) autocad_dim_leader_pt2.z number(31,15) autocad_normal_y number(31,15) autocad_extended_data{0}.world_displacement{0}.y number(31,15) autocad_defpt4.x number(31,15) autocad_shape_vertical char(6) autocad_hatch_origin_point_x number(31,15) autocad_start_width number(31,15) autocad_invisible_attributes{} char(50) fme_rotation number(31,15) autocad_layout_name char(254) autocad_extrusion_z number(31,15) autocad_viewport_view_center_x number(31,15) autocad_viewport_ucs_ydir_x number(31,15) autocad_xrecord_data{0}.autocad_layer{0} char(50) autocad_extended_data{}.distance{0} number(31,15) autocad_viewport_view_target_z number(31,15) autocad_xrecord_data{0}.16Bit_integer{0} number(5,0) autocad_attributes_follow char(50) autocad_viewport_grid_follow logical autocad_viewport_grid logical autocad_viewport_view_direction_z number(31,15) autocad_extended_data{}.three_reals{0}.real1 number(31,15) autocad_base_y number(31,15) autocad_mpolygon_pattern_name char(32) autocad_dim_leader_pt1.z number(31,15) autocad_attr_def_prompt string autocad_lineweight char(10) autocad_knots string autocad_viewport_hidden_lines_removed logical autocad_viewport_ucs_origin_x number(31,15) autocad_mpolygon_gradient_shift number(31,15) autocad_linetype_generation number(1,0) autocad_xrecord_data{}.three_reals{0}.real3 number(31,15) autocad_xrecord_data{0}.world_displacement{0}.z number(31,15) autocad_base_z number(31,15) autocad_xrecord_data{0}.world_position{0}.x number(31,15) fme_attrib_info{}.location_y number(31,15) autocad_extended_data{}.real{0} number(31,15) fme_attrib_info{}.height number(31,15) autocad_mpolygon_associative number(5,0) autocad_viewport_back_clip_distance number(31,15) autocad_elevation number(31,15) autocad_extended_data{0}.world_direction{0}.y number(31,15) autocad_xrecord_data{}.autocad_scale{0} number(31,15) autocad_mtext_ref_rect_width number(31,15) autocad_viewport_resolved_target_x number(31,15) autocad_block_insert_z number(31,15) autocad_zscale number(31,15) autocad_xrecord_data{}.string{} char(50) autocad_original_entity_type char(50) autocad_rotation number(31,15) autocad_viewport_width number(31,15) autocad_viewport_plot_style_sheet string autocad_block_insert_x number(31,15) autocad_original_rotation number(31,15) autocad_vertical char(1) autocad_xrecord_data{0}.three_reals{0}.real2 number(31,15) autocad_textpict char(50) autocad_viewport_ucs_icon_visible logical autocad_viewport_ucs_xdir_z number(31,15) autocad_dimension_type char(50) autocad_xrecord_data{}.handle{2} char(50) autocad_hatch_gradient_color1 char(50) autocad_xrecord_data{}.xrecord_name char(50) autocad_knot_param char(10) autocad_shape_name char(32) autocad_extended_data{}.three_reals{0}.real2 number(31,15) autocad_dim_arrowhead_pt_2.y number(31,15) autocad_shape_filename char(65) autocad_viewport_grid_increment_y number(31,15) autocad_dim_clone_inspection_point.z number(31,15) autocad_block_number number(5,0) autocad_entity char(50) autocad_extended_data{}.autocad_layer{0} char(50) autocad_hatch_pattern_scale number(31,15) autocad_xrecord_data{0}.world_position{0}.z number(31,15) autocad_group_description char(50) fme_attrib_info{}.style char(512) autocad_viewport_front_clip_eye logical autocad_box_height number(31,15) autocad_mpolygon_shade_tint_value number(31,15) autocad_tracking_percent number(31,15) autocad_text_y_pos number(31,15) autocad_hatch_origin_point_y number(31,15) fme_attrib_info{}.attribute_flag char(2) autocad_layout_insert_base_y number(31,15) autocad_xrecord_data{}.handle{0} char(50) autocad_raster_fade number(4,0) autocad_hatch_pattern_name char(32) autocad_dim_arc_symbol_type number(6,0) autocad_mpolygon_origin_point_y number(31,15) autocad_arc_defpt.z number(31,15) autocad_defpt4.z number(31,15) autocad_projectname char(32) autocad_extended_data{}.binary{0} char(50) fme_attrib_info{}.width_factor number(31,15) autocad_viewport_view_target_y number(31,15) autocad_hatch_shade_tint_value number(31,15) autocad_mpolygon_gradient_one_color_mode number(5,0) autocad_mpolygon_gradient_name char(32) autocad_start_tangent_y number(31,15) autocad_estimated_num_lines number(5,0) autocad_mpolygon_offset_x number(31,15) autocad_hatch_gradient_shift number(31,15) autocad_anno_handle char(50) autocad_periodic_spline number(6,0) fme_color char(50) autocad_hatch_associative number(5,0) autocad_start_tangent_z number(31,15) autocad_width number(31,15) autocad_xrecord_data{0}.world_displacement{0}.x number(31,15) autocad_viewport_snap logical autocad_group_num_entities char(50) autocad_attr_def_tag string autocad_viewport_twist_angle number(31,15) autocad_viewport_view_direction_y number(31,15) autocad_hatch_loop{}.autocad_hatch_bulge{} number(31,15) autocad_number_rows number(5,0) autocad_underlined char(1) autocad_angbase number(31,15) autocad_extended_data{0}.world_position{0}.y number(31,15) autocad_start_angle number(31,15) autocad_xrecord_data{0}.world_direction{0}.x number(31,15) autocad_mpolygon_pattern_double number(5,0) autocad_xrecord_data{0}.world_direction{0}.y number(31,15) autocad_arrow_head_on char(50) autocad_extended_data{0}.binary{0} char(50) autocad_extended_data{0}.handle{0} char(50) autocad_block_name char(50) autocad_viewport_locked logical fme_attrib_info{}.color.green number(31,15) autocad_linetype char(50) autocad_xrecord_data{0}.three_reals{0}.real1 number(31,15) multi_reader_type char(50) autocad_group_accessible char(50) autocad_mpolygon_object_type number(6,0) autocad_text_size number(31,15) autocad_extended_data{}.world_position{0}.x number(31,15) autocad_viewport_non_rect_clip_handle char(50) autocad_viewport_snap_isometric logical autocad_control_weights string autocad_hatch_gradient_type number(6,0) autocad_fit_y string autocad_txt_offset_z number(31,15) autocad_extended_data{}.world_direction{0}.x number(31,15) autocad_viewport_on logical autocad_ucs_xangle number(31,15) autocad_xrecord_data{}.16Bit_integer{0} number(5,0) autocad_viewport_non_rect_clip logical autocad_extrusion_x number(31,15) fme_attrib_info{}.isVisible char(6) autocad_attribute_display char(50) autocad_control_y string autocad_viewport_shade_plot char(32) autocad_extended_data{}.world_position{0}.z number(31,15) autocad_viewport_center_point_z number(31,15) autocad_text_x_pos number(31,15) autocad_fill_color number(6,0) autocad_extended_data{0}.autocad_layer{0} char(50) autocad_mpolygon_gradient_color2 char(50) autocad_defpt3.z number(31,15) fme_attrib_info{}.location_z number(31,15) fme_attrib_info{}.color.red number(31,15) fme_attrib_info{}.layer char(512) autocad_dim_flag number(5,0) autocad_group_name char(50) autocad_viewport_center_point_y number(31,15) autocad_layer_on char(10) autocad_shape_rotation number(31,15) autocad_xrecord_data{}.world_displacement{0}.y number(31,15) autocad_fit_x string autocad_text_string char(50) autocad_viewport_brightness number(31,15) autocad_layout_linetype_scale logical autocad_dim_arrowhead_pt_2.x number(31,15) autocad_attr_def_default string autocad_xref_status char(50) autocad_viewport_custom_scale number(31,15) autocad_extended_data{0}.distance{0} number(31,15) autocad_mpolygon_gradient_color1 char(50) autocad_original_color char(10) autocad_viewport_handle char(50) autocad_hatch_loop{}.autocad_hatch_bulges_present number(5,0) autocad_xrecord_data{0}.xrecord_name char(50) autocad_extended_data{}.string{} char(50) autocad_extended_data{}.world_displacement{0}.y number(31,15) autocad_layer_frozen char(10) autocad_backwards char(1) autocad_hatch_pixel_size number(31,15) autocad_raster_display_opt_show logical autocad_viewport_view_direction_x number(31,15) autocad_viewport_grid_increment_x number(31,15) fme_attrib_info{}.rotation number(31,15) autocad_hatch_style number(6,0) autocad_xrecord_data{0}.three_reals{0}.real3 number(31,15) autocad_extended_data{}.handle{0} char(50) autocad_viewport_default_lighting_type number(6,0) autocad_layer char(50) autocad_viewport_resolved_target_y number(31,15) autocad_layout_limit_min_x number(31,15) autocad_dim_leader_pt1.y number(31,15) autocad_overlined char(1) autocad_xrecord_data{0}.string{0} char(50) autocad_xrecord_data{}.world_position{0}.z number(31,15) fme_attrib_info{}.justification char(25) autocad_viewport_snap_base_point_y number(31,15) autocad_alignment_x number(31,15) autocad_extended_data{0}.handle{2} char(50) autocad_original_position_y number(31,15) autocad_extended_data{0}.string{0} char(50) autocad_raster_clip_points{}.x number(31,15) autocad_hatch_gradient_one_color_mode number(5,0) autocad_raster_clip_inverted logical autocad_extended_data{0}.world_position{0}.x number(31,15) autocad_mpolygon_pattern_type number(6,0) autocad_xrecord_data{}.autocad_layer{0} char(50) autocad_insunits number(6,0) autocad_viewport_grid_subdivision_restricted logical autocad_number_columns number(5,0) autocad_extended_data{}.16Bit_integer{0} number(5,0) autocad_raster_display_opt_transparent logical autocad_yscale number(31,15) autocad_hatch_loop{}.autocad_hatch_loop_type number(11,0) autocad_layer_desc string autocad_primary_axis number(31,15) autocad_xref_path string autocad_extended_data{0}.world_displacement{0}.x number(31,15) autocad_xrecord_data{0}.handle{1} char(50) autocad_mpolygon_pattern_angle number(31,15) autocad_mline_type char(50) autocad_mpolygon_style number(6,0) autocad_layout_limit_min_y number(31,15) autocad_normal_z number(31,15) autocad_oblique number(31,15) autocad_viewport_ambient_light_color number(6,0) autocad_xrecord_data_list{} char(50) autocad_extended_data{}.world_direction{0}.z number(31,15) autocad_xrecord_data{}.world_displacement{0}.x number(31,15) autocad_color number(6,0) autocad_xscale number(31,15) autocad_raster_filename string autocad_dimension_style_name char(50) autocad_layer_type char(50) autocad_raster_brightness number(4,0) autocad_closed_spline number(6,0) autocad_hatch_gradient_color2 char(50) autocad_extended_data{0}.world_direction{0}.z number(31,15) autocad_raster_original_transparency char(50) autocad_viewport_ucs_icon_origin logical autocad_layout_limit_max_y number(31,15) fme_attrib_info{}.location_x number(31,15) autocad_extended_data{0}.three_reals{0}.real2 number(31,15) autocad_extended_data{}.handle{2} char(50) autocad_viewport_clipped_handle char(50) autocad_linespace_factor number(31,15) autocad_hatch_gradient_name char(32) autocad_attach_point char(50) autocad_num_lines number(5,0) autocad_xrecord_data{0}.real{0} number(31,15) autocad_viewport_view_height number(31,15) autocad_raster_contrast number(4,0) autocad_viewport_contrast number(31,15) autocad_justification char(50) autocad_true_color char(50) autocad_visible_attributes{} char(50) autocad_xrecord_data{0}.distance{0} number(31,15) autocad_dimension_attach_point number(5,0) autocad_entity_visibility char(10) autocad_dim_arrowhead_pt_1.y number(31,15) autocad_latitude number(31,15) autocad_attmode number(6,0) autocad_xrecord_data{}.world_position{0}.x number(31,15) autocad_viewport_ucs_xdir_y number(31,15) autocad_num_knots number(11,0) autocad_true_type_font char(50) autocad_mpolygon_gradient_type number(6,0) autocad_text_midpoint.z number(31,15) autocad_extended_data{}.world_direction{0}.y number(31,15) autocad_xrecord_data{}.world_position{0}.y number(31,15) autocad_hatch_complex_mode number(5,0) autocad_extended_data{}.world_displacement{0}.x number(31,15) autocad_longitude number(31,15) autocad_extended_data{0}.world_displacement{0}.z number(31,15) autocad_dim_arc_is_partial number(5,0) autocad_knot_tolerance number(31,15) fme_feature_type char(50) fme_start_angle number(31,15) autocad_start_tangent_x number(31,15) autocad_extended_data{0}.world_direction{0}.x number(31,15) autocad_lunits number(6,0) autocad_xrecord_data{}.world_direction{0}.z number(31,15) autocad_layout_limit_check logical autocad_flag number(6,0) autocad_dim_leader_pt2.x number(31,15) autocad_source_filename string fme_attrib_info{}.field_name char(513) autocad_original_text_string string autocad_extended_data{0}.autocad_scale{0} number(31,15) autocad_viewport_ucs_elevation number(31,15) autocad_anno_height number(31,15) autocad_mpolygon_pixel_size number(31,15) autocad_extended_data{0}.handle{1} char(50) autocad_viewport_snap_increment_y number(31,15) fme_fill_color char(50) autocad_defpt3.x number(31,15) autocad_extended_data{}.three_reals{0}.real3 number(31,15) autocad_xrecord_data{}.distance{0} number(31,15) autocad_mpolygon_pattern_scale number(31,15) autocad_xrecord_data{}.world_displacement{0}.z number(31,15) autocad_viewport_ucs_xdir_x number(31,15) autocad_raster_clip_points{}.y number(31,15) autocad_original_position_x number(31,15) autocad_big_fontname char(65) autocad_viewport_resolved_target_z number(31,15) fme_attrib_info{}.color.blue number(31,15) autocad_entity_handle char(50) autocad_viewport_grid_bound_limits logical autocad_raster_transparency number(4,0) autocad_viewport_height number(31,15) autocad_viewport_grid_major number(6,0) autocad_end_tangent_z number(31,15) autocad_aunits number(6,0) autocad_end_tangent_x number(31,15) autocad_row_distance number(31,15) autocad_sweep_angle number(31,15) autocad_viewport_perspective logical autocad_rational_spline number(6,0) multi_reader_id number(11,0) autocad_mpolygon_pattern_space number(31,15) autocad_arc_defpt.x number(31,15) autocad_viewport_snap_angle number(31,15) autocad_arc_defpt.y number(31,15) autocad_secondary_axis number(31,15) autocad_viewport_lens_length number(31,15) fme_type char(50) autocad_normal_x number(31,15) autocad_end_width number(31,15) autocad_num_cntl_pts number(11,0) autocad_spline_type char(15) autocad_viewport_front_clip_distance number(31,15) autocad_viewport_ucs_ydir_z number(31,15) fme_attrib_info{}.align_x number(31,15) autocad_original_position_z number(31,15) autocad_mpolygon_gradient_angle number(31,15) autocad_extended_data{}.autocad_scale{0} number(31,15) autocad_xrecord_data{}.three_reals{0}.real2 number(31,15) autocad_hatch_pattern_type number(6,0) autocad_original_text_size number(31,15) fme_attrib_info{}.align_y number(31,15) autocad_layer_linetype char(32) autocad_layout_tab_order number(11,0) autocad_extended_data{0}.real{0} number(31,15) autocad_extrusion_y number(31,15) autocad_extended_data{}.world_position{0}.y number(31,15) autocad_txt_offset_x number(31,15) fme_attrib_info{} char(50) autocad_xrecord_data{0}.handle{0} char(50) autocad_layout_insert_base_x number(31,15) autocad_control_x string autocad_group_selectable char(50) autocad_hook_line_on_xdir char(10) autocad_shape_height number(31,15) autocad_hatch_pattern_double number(5,0) fme_attrib_info{}.field_size number(5,0) autocad_xrecord_data{}.binary{0} char(50) autocad_defpt3.y number(31,15) autocad_viewport_snap_base_point_x number(31,15) autocad_fillmode logical autocad_linetype_scale number(31,15) fme_text_size number(31,15) autocad_viewport_front_clip logical autocad_xrecord_data{0}.world_position{0}.y number(31,15) autocad_viewport_snap_increment_x number(31,15) autocad_layout_insert_base_z number(31,15) autocad_mtext_string char(50) autocad_degree number(31,15) autocad_shape_width number(31,15) fme_sweep_angle number(31,15) autocad_defpt2.z number(31,15) autocad_xrecord_data{}.world_direction{0}.x number(31,15) autocad_shape_index number(31,15) autocad_extended_data{0}.16Bit_integer{0} number(5,0) autocad_original_layer char(50) autocad_viewport_standard_scale char(32) autocad_auprec number(6,0) autocad_xrecord_data{0}.autocad_scale{0} number(31,15) autocad_viewport_ucs_follow_mode logical autocad_xrecord_data{0}.handle{2} char(50) autocad_layer_locked char(10) autocad_viewport_circle_sides number(6,0) autocad_viewport_ucs_saved_with_viewport logical autocad_extended_data{0}.three_reals{0}.real3 number(31,15) fme_attrib_info{}.oblique number(31,15) multi_reader_full_id number(11,0) autocad_alignment_y number(31,15) autocad_alignment_z number(31,15) autocad_extended_data{0}.three_reals{0}.real1 number(31,15) autocad_extended_data{}.handle{1} char(50) autocad_dim_leader_pt1.x number(31,15) autocad_extended_data_list{} char(50) autocad_fit_tolerance number(31,15) autocad_txt_offset_y number(31,15) autocad_viewport_view_target_x number(31,15) autocad_dim_clone_inspection_point.x number(31,15) autocad_thickness number(31,15) fme_attrib_info{}.field_value char(2049) fme_dataset char(50) fme_geometry fme_char(50) autocad_mpolygon_pattern_color char(50) autocad_text_midpoint.y number(31,15) autocad_x_dir_y number(31,15) autocad_viewport_snap_iso_pair number(6,0) fme_attrib_info{}.generation char(25) autocad_xrecord_data{}.handle{1} char(50) autocad_end_tangent_y number(31,15) autocad_luprec number(6,0) autocad_raster_display_opt_clip logical autocad_space string autocad_viewport_ucs_origin_z number(31,15) autocad_text_midpoint.x number(31,15) fme_basename char(50) autocad_viewport_ucs_ydir_y number(31,15) fme_secondary_axis number(31,15) autocad_bulge char(50) autocad_extended_data{}.application_name char(50) autocad_defpt4.y number(31,15) autocad_anno_width number(31,15) multi_reader_keyword char(50) autocad_line_defpoint.z number(31,15) autocad_extended_data{}.world_displacement{0}.z number(31,15) autocad_text_rotation number(31,15)"
#!   DEFLINE_PARMS=""
#!   ATTR_INDEX_TYPES=""
#!   ATTR_NAME_INVALID_CHARS=""
#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
#!   ENABLED="true"
#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
#!   DATASET_TYPE="FILE"
#!   GENERATE_FME_BUILD_NUM="16492"
#!   COORDSYS=""
#!   MAX_FEATURES_PER_FEATURE_TYPE=""
#!   MAX_FEATURES=""
#!   FEATURE_TYPES=""
#!   START_FEATURE=""
#!   MIN_FEATURES=""
#! >
#! <METAFILE_PARAMETER
#!   NAME="ADVANCED_PARMS"
#!   VALUE="ACAD_IN_USE_BLOCK_HEADER_LAYER ACAD_IN_USE_BLOCK_LAYER_INFO ACAD_IN_RESOLVE_ENTITY_COLOR ACAD_IN_PRESERVE_INSERTS ACAD_IN_STORE_BULGE_INFO _BULGES_AS_ARCS ACAD_IN_INTERPRET_EXTENDED_DATA ACAD_IN_READ_GROUPS ACAD_IN_READ_XREFS ACAD_IN_EVALUATE_MLINE_GEOM ACAD_IN_CONVERT_ZERO_LENGTH_ARCS_TO_POINTS ACAD_IN_OUTPUT_ZERO_LENGTH_LINES_AS_LINES ACAD_IN_IGNORE_UCS ACAD_IN_PRESERVE_CLIPPED_RASTERS ACAD_IN_PRESERVE_COMPLEX_HATCHES ACAD_IN_IGNORE_FROZEN_LAYERS ACAD_IN_STORE_SPLINE_DEFS ACAD_IN_USE_DXF_HEADER ACAD_IN_RESOLVE_DIMENSIONS ACAD_IN_APPLY_WORLD_FILE ACAD_IN_READ_PROXY_GRAPHICS ACAD_IN_READ_SYS_VARS ACAD_IN_STORE_LAYER_INFO ACAD_IN_STORE_INSERT_POINT ACAD_IN_LIST_EXTENDED_DATA ACAD_IN_LIST_ATTRIBUTE_ENTITY_DATA ACAD_IN_XRECORD_READING ACAD_IN_SEARCH_ENVELOPE_MINX ACAD_IN_SEARCH_ENVELOPE_MINY ACAD_IN_SEARCH_ENVELOPE_MAXX ACAD_IN_SEARCH_ENVELOPE_MAXY ACAD_IN_CLIP_TO_ENVELOPE SEARCH_ENVELOPE_COORDINATE_SYSTEM"
#! />
#! <METAFILE_PARAMETER
#!   NAME="DATASET_NAME"
#!   VALUE="dwg file"
#! />
#! <METAFILE_PARAMETER
#!   NAME="MIME_TYPE"
#!   VALUE=".dwg image/vnd.dwg .dxf image/vnd.dxf ADD_DISPOSITION"
#! />
#! <METAFILE_PARAMETER
#!   NAME="READER_DATASET_HINT"
#!   VALUE="Select the DWG file(s)"
#! />
#! <METAFILE_PARAMETER
#!   NAME="WRITER_DATASET_HINT"
#!   VALUE="Specify a name for the DWG file"
#! />
#! <METAFILE_PARAMETER
#!   NAME="FEATURE_TYPE_NAME"
#!   VALUE="Layer"
#! />
#! <METAFILE_PARAMETER
#!   NAME="FEATURE_TYPE_DEFAULT_NAME"
#!   VALUE="Layer1"
#! />
#! </DATASET>
#! <DATASET
#!   IS_SOURCE="true"
#!   ROLE="READER"
#!   FORMAT="FILEGDB"
#!   DATASET="$(SourceDataset_FILEGDB)"
#!   KEYWORD="FILEGDB_1"
#!   MULTI_GEOM_ALLOWED="false"
#!   ATTR_MAX_LENGTH="0"
#!   ATTR_CASE="ANY"
#!   ALLOWED_FEAT_TYPES=""
#!   WRITE_DEFS="true"
#!   DEFLINE_TEMPLATE="filegdb_type {FME_GEN_GEOMETRY} filegdb_where &quot;&quot;"
#!   DEFLINE_ATTRS="true"
#!   EXPOSABLE_ATTRS="fme_text_string text(50) fme_basename text(50) fme_geometry fme_char(50) fme_dataset text(50) fme_feature_type text(50) fme_start_angle double fme_text_size double fme_fill_color text(50) fme_sweep_angle double fme_primary_axis double fme_secondary_axis double multi_reader_keyword text(50) multi_reader_id int multi_reader_type text(50) fme_rotation double fme_color text(50) multi_reader_full_id int fme_type text(50)"
#!   DEFLINE_PARMS="&quot;GUI NAMEDGROUP filegdb_table_settings_group filegdb_where Table Settings&quot; &quot;&quot; &quot;GUI OPTIONAL TEXT filegdb_where WHERE Clause&quot; &quot;&quot; "
#!   ATTR_INDEX_TYPES="indexed"
#!   ATTR_NAME_INVALID_CHARS=""
#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
#!   ENABLED="true"
#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
#!   DATASET_TYPE="GEODATABASE"
#!   GENERATE_FME_BUILD_NUM="16492"
#!   COORDSYS=""
#!   MAX_FEATURES_PER_FEATURE_TYPE=""
#!   MAX_FEATURES=""
#!   FEATURE_TYPES=""
#!   START_FEATURE=""
#!   MIN_FEATURES=""
#! >
#! <METAFILE_PARAMETER
#!   NAME="ADVANCED_PARMS"
#!   VALUE="FILEGDB_IN_SEARCH_ENVELOPE_MINX FILEGDB_IN_SEARCH_ENVELOPE_MINY FILEGDB_IN_SEARCH_ENVELOPE_MAXX FILEGDB_IN_SEARCH_ENVELOPE_MAXY FILEGDB_IN_CLIP_TO_ENVELOPE SEARCH_ENVELOPE_COORDINATE_SYSTEM FILEGDB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM"
#! />
#! <METAFILE_PARAMETER
#!   NAME="DATASET_NAME"
#!   VALUE="gdb file"
#! />
#! <METAFILE_PARAMETER
#!   NAME="READER_DATASET_HINT"
#!   VALUE="Select the File Geodatabase folder"
#! />
#! <METAFILE_PARAMETER
#!   NAME="WRITER_DATASET_HINT"
#!   VALUE="Specify File Geodatabase folder"
#! />
#! <METAFILE_PARAMETER
#!   NAME="FEATURE_TYPE_NAME"
#!   VALUE="Feature Class or Table"
#! />
#! <METAFILE_PARAMETER
#!   NAME="FEATURE_TYPE_DEFAULT_NAME"
#!   VALUE="FeatureClass1"
#! />
#! </DATASET>
#! </DATASETS>
#! <DATA_TYPES>
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(width)"
#!   FME_TYPE="fme_varchar(width)"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(width)"
#!   FME_TYPE="fme_varbinary(width)"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(width)"
#!   FME_TYPE="fme_char(width)"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(width)"
#!   FME_TYPE="fme_binary(width)"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(20)"
#!   FME_TYPE="fme_datetime"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(12)"
#!   FME_TYPE="fme_time"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(8)"
#!   FME_TYPE="fme_date"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_binarybuffer"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_xml"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_json"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="logical"
#!   FME_TYPE="fme_boolean"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(31,15)"
#!   FME_TYPE="fme_real64"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(15,7)"
#!   FME_TYPE="fme_real32"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(20,0)"
#!   FME_TYPE="fme_int64"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(20,0)"
#!   FME_TYPE="fme_uint64"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(11,0)"
#!   FME_TYPE="fme_int32"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(11,0)"
#!   FME_TYPE="fme_uint32"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(6,0)"
#!   FME_TYPE="fme_int16"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(6,0)"
#!   FME_TYPE="fme_uint16"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(4,0)"
#!   FME_TYPE="fme_int8"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(4,0)"
#!   FME_TYPE="fme_uint8"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="number(width,decimal)"
#!   FME_TYPE="fme_decimal(width,decimal)"
#!   FORMAT="ACAD"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(width)"
#!   FME_TYPE="fme_varchar(width)"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(width)"
#!   FME_TYPE="fme_char(width)"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(2048)"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(2048)"
#!   FME_TYPE="fme_xml"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(2048)"
#!   FME_TYPE="fme_json"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="blob"
#!   FME_TYPE="fme_binarybuffer"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="blob"
#!   FME_TYPE="fme_varbinary(width)"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="blob"
#!   FME_TYPE="fme_binary(width)"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="date"
#!   FME_TYPE="fme_datetime"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="date"
#!   FME_TYPE="fme_date"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="date"
#!   FME_TYPE="fme_time"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="single"
#!   FME_TYPE="fme_real32"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="double"
#!   FME_TYPE="fme_real64"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="double"
#!   FME_TYPE="fme_decimal(width,decimal)"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int"
#!   FME_TYPE="fme_int32"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="double"
#!   FME_TYPE="fme_uint32"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(20)"
#!   FME_TYPE="fme_int64"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="text(20)"
#!   FME_TYPE="fme_uint64"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="smallint"
#!   FME_TYPE="fme_int16"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int"
#!   FME_TYPE="fme_uint16"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="smallint"
#!   FME_TYPE="fme_int8"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="smallint"
#!   FME_TYPE="fme_uint8"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="smallint"
#!   FME_TYPE="fme_boolean"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="objectid"
#!   FME_TYPE="fme_int32"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="guid"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="FILEGDB"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="globalid"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="FILEGDB"
#! />
#! </DATA_TYPES>
#! <GEOM_TYPES>
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_point"
#!   FME_TYPE="fme_point"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_insert"
#!   FME_TYPE="fme_point"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_shape"
#!   FME_TYPE="fme_point"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_line"
#!   FME_TYPE="fme_line"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_leader"
#!   FME_TYPE="fme_line"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_xline"
#!   FME_TYPE="fme_line"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_ray"
#!   FME_TYPE="fme_line"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_polygon"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_trace"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_solid"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_face"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_layout"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_text"
#!   FME_TYPE="fme_text"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_arc"
#!   FME_TYPE="fme_arc"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_ellipse"
#!   FME_TYPE="fme_ellipse"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_polygon"
#!   FME_TYPE="fme_rectangle"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_polygon"
#!   FME_TYPE="fme_rounded_rectangle"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_spline"
#!   FME_TYPE="fme_line"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_no_map"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_attribute"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_multi_line"
#!   FME_TYPE="fme_line"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_multi_text"
#!   FME_TYPE="fme_text"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_attr_def"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_viewport"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_tolerance"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_dictionary"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_mline_style"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_class"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_hatch"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_mpolygon"
#!   FME_TYPE="fme_area"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_surface"
#!   FME_TYPE="fme_surface"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_solid3d"
#!   FME_TYPE="fme_solid"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_raster"
#!   FME_TYPE="fme_raster"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_xref"
#!   FME_TYPE="fme_point"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_body"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_region"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_zombie"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_xrecord"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_leader"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_group"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_proxy"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_block"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_end_block"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_block"
#!   FME_TYPE="fme_collection"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_dimension"
#!   FME_TYPE="fme_collection"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_dimension_def"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_info"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="autocad_polygon"
#!   FME_TYPE="fme_point_cloud"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_no_map"
#!   FME_TYPE="fme_feature_table"
#!   FORMAT="ACAD"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_point"
#!   FME_TYPE="fme_point"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polygon"
#!   FME_TYPE="fme_area"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polygon"
#!   FME_TYPE="fme_rounded_rectangle"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polyline"
#!   FME_TYPE="fme_line"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_multipoint"
#!   FME_TYPE="fme_point"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polygon"
#!   FME_TYPE="fme_rectangle"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_point"
#!   FME_TYPE="fme_text"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polyline"
#!   FME_TYPE="fme_arc"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polygon"
#!   FME_TYPE="fme_ellipse"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_no_geom"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polygon"
#!   FME_TYPE="fme_raster"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polyline"
#!   FME_TYPE="fme_surface"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polyline"
#!   FME_TYPE="fme_solid"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_polygon"
#!   FME_TYPE="fme_point_cloud"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_no_geom"
#!   FME_TYPE="fme_feature_table"
#!   FORMAT="FILEGDB"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="geodb_no_geom"
#!   FME_TYPE="fme_collection"
#!   FORMAT="FILEGDB"
#! />
#! </GEOM_TYPES>
#! <FEATURE_TYPES>
#! <FEATURE_TYPE
#!   IS_SOURCE="true"
#!   NODE_NAME="BuildingFootprints"
#!   FEATURE_TYPE_NAME=""
#!   FEATURE_TYPE_NAME_QUALIFIER=""
#!   IS_EDITABLE="false"
#!   IDENTIFIER="1"
#!   FEAT_GEOMTYPE="autocad_line autocad_point autocad_ellipse autocad_shape autocad_text autocad_arc autocad_trace autocad_solid autocad_insert autocad_polygon autocad_face autocad_ray autocad_xline autocad_spline autocad_multi_line autocad_multi_text autocad_dimension autocad_hatch autocad_mpolygon autocad_surface autocad_solid3d autocad_dimension_def autocad_attr_def autocad_info autocad_layout autocad_viewport"
#!   POSITION="100 -230"
#!   BOUNDING_RECT="100 -230 528.131 71"
#!   ORDER="5e+14"
#!   COLLAPSED="true"
#!   KEYWORD="ACAD_1"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   HIDDEN_USER_ATTRS=""
#!   MERGE_FILTER=""
#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
#!   MERGE_FILTER_CASE_SENSITIVE="true"
#!   DYNAMIC_SCHEMA="false"
#! >
#! </FEATURE_TYPE>
#! <FEATURE_TYPE
#!   IS_SOURCE="true"
#!   NODE_NAME="PostalAddress"
#!   FEATURE_TYPE_NAME=""
#!   FEATURE_TYPE_NAME_QUALIFIER=""
#!   IS_EDITABLE="false"
#!   IDENTIFIER="3"
#!   FEAT_GEOMTYPE="geodb_point"
#!   POSITION="100 -530.502"
#!   BOUNDING_RECT="100 -530.502 528.131 71"
#!   ORDER="5e+14"
#!   COLLAPSED="true"
#!   KEYWORD="FILEGDB_1"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   HIDDEN_USER_ATTRS=""
#!   MERGE_FILTER=""
#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
#!   MERGE_FILTER_CASE_SENSITIVE="true"
#!   DYNAMIC_SCHEMA="false"
#! >
#!     <FEAT_ATTRIBUTE ATTR_NAME="OBJECTID" ATTR_TYPE="objectid" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="GlobalID" ATTR_TYPE="guid" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="OWNERNM1" ATTR_TYPE="text(150)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="OWNERNM2" ATTR_TYPE="text(150)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="PSTLADDRESS" ATTR_TYPE="text(250)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="PSTLCITY" ATTR_TYPE="text(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="PSTLPROV" ATTR_TYPE="text(25)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="INTSTATE" ATTR_TYPE="text(5)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="INTPSTLCD" ATTR_TYPE="text(10)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="COUNTRY" ATTR_TYPE="text(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="REPRESENT" ATTR_TYPE="text(14)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="STATUS" ATTR_TYPE="text(9)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="LASTUPDATE" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="LASTEDITOR" ATTR_TYPE="text(50)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="POSTALCODE" ATTR_TYPE="text(6)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <DEFLINE_PARM PARM_NAME="filegdb_where" PARM_VALUE=""/>
#!     <DEFLINE_PARM PARM_NAME="filegdb_table_settings_group" PARM_VALUE=""/>
#! </FEATURE_TYPE>
#! </FEATURE_TYPES>
#! <FMESERVER>
#! </FMESERVER>
#! <GLOBAL_PARAMETERS>
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI MULTIFILE SourceDataset_ACAD DWG_Files(*.dwg)/DXF_Files(*.dxf)|*.dwg;*.dxf|DWG_Files(*.dwg)|*.dwg|DXF_Files(*.dxf)|*.dxf|All_Files|* Source Autodesk AutoCAD DWG/DXF File(s):"
#!   DEFAULT_VALUE="$(FME_MF_DIR)1/FMEInput/BuildingFootprints.dwg"
#!   IS_STAND_ALONE="false"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI SOURCE_GEODATABASE SourceDataset_FILEGDB Source Geodatabase:"
#!   DEFAULT_VALUE="$(FME_MF_DIR)1/FMEInput/Addresses.gdb"
#!   IS_STAND_ALONE="false"
#! />
#! </GLOBAL_PARAMETERS>
#! <COMMENTS>
#! </COMMENTS>
#! <CONSTANTS>
#! </CONSTANTS>
#! <BOOKMARKS>
#! </BOOKMARKS>
#! <TRANSFORMERS>
#! <TRANSFORMER
#!   IDENTIFIER="4"
#!   TYPE="SpatialFilter"
#!   VERSION="8"
#!   POSITION="856.259 -296.878"
#!   BOUNDING_RECT="856.259 -296.878 -1 -1"
#!   ORDER="5e+14"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="16492"
#! >
#!     <OUTPUT_FEAT NAME="PASSED"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="OBJECTID" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="GlobalID" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="OWNERNM1" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="OWNERNM2" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="PSTLADDRESS" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="PSTLCITY" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="PSTLPROV" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="INTSTATE" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="INTPSTLCD" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="COUNTRY" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="REPRESENT" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="STATUS" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="LASTUPDATE" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="LASTEDITOR" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="POSTALCODE" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_predicate" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="FAILED"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="OBJECTID" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="GlobalID" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="OWNERNM1" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="OWNERNM2" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="PSTLADDRESS" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="PSTLCITY" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="PSTLPROV" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="INTSTATE" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="INTPSTLCD" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="COUNTRY" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="REPRESENT" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="STATUS" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="LASTUPDATE" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="LASTEDITOR" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="POSTALCODE" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="2"/>
#!     <XFORM_ATTR ATTR_NAME="OBJECTID" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="GlobalID" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="OWNERNM1" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="OWNERNM2" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="PSTLADDRESS" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="PSTLCITY" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="PSTLPROV" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="INTSTATE" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="INTPSTLCD" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="COUNTRY" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="REPRESENT" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="STATUS" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="LASTUPDATE" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="LASTEDITOR" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="POSTALCODE" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_GROUP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="ATTR_PREFIX" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TESTS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PASS_CRITERIA" PARM_VALUE="Pass Against One Filter"/>
#!     <XFORM_PARM PARM_NAME="CURVE_BOUNDARY_RULE_PARAM" PARM_VALUE="Default Rule"/>
#!     <XFORM_PARM PARM_NAME="FME_PROCESS_COUNTDISP" PARM_VALUE="No Parallelism"/>
#!     <XFORM_PARM PARM_NAME="BASE_TYPE" PARM_VALUE="Multiple Filters"/>
#!     <XFORM_PARM PARM_NAME="FME_PROCESS_GROUPS_ORDERED" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="PREDATTR" PARM_VALUE="_predicate"/>
#!     <XFORM_PARM PARM_NAME="USE_BOUNDING_BOX" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SpatialFilter"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_MODE" PARM_VALUE="Merge Filter"/>
#!     <XFORM_PARM PARM_NAME="ATTR_CONFLICT_RES" PARM_VALUE="Use Candidate"/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PREDICATES" PARM_VALUE="CONTAINS"/>
#!     <XFORM_PARM PARM_NAME="AGGREGATE_HANDLING" PARM_VALUE="Yes"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="7"
#!   TYPE="Inspector"
#!   VERSION="3"
#!   POSITION="1410.26 -431.004"
#!   BOUNDING_RECT="1410.26 -431.004 -1 -1"
#!   ORDER="5e+14"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="16492"
#! >
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="AREA_COLOR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="POINTCLOUD_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_NUM_ROWS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_TYPE_DISPLAY" PARM_VALUE="No Thinning"/>
#!     <XFORM_PARM PARM_NAME="RASTER_VISUALIZATION_OPTION" PARM_VALUE="No Reduction"/>
#!     <XFORM_PARM PARM_NAME="RASTER_START_ROW" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RASTER_START_COL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="VECTOR_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="PEN_COLOR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Passed"/>
#!     <XFORM_PARM PARM_NAME="TACKATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_NUM_COLS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_INTERVAL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_MAX_NUM_POINTS" PARM_VALUE="&lt;Unused&gt;"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="9"
#!   TYPE="Inspector"
#!   VERSION="3"
#!   POSITION="1410.26 -569.004"
#!   BOUNDING_RECT="1410.26 -569.004 -1 -1"
#!   ORDER="5e+14"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="16492"
#! >
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="AREA_COLOR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="POINTCLOUD_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_NUM_ROWS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_TYPE_DISPLAY" PARM_VALUE="No Thinning"/>
#!     <XFORM_PARM PARM_NAME="RASTER_VISUALIZATION_OPTION" PARM_VALUE="No Reduction"/>
#!     <XFORM_PARM PARM_NAME="RASTER_START_ROW" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RASTER_START_COL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="VECTOR_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PEN_COLOR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Failed"/>
#!     <XFORM_PARM PARM_NAME="TACKATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_NUM_COLS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_INTERVAL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_MAX_NUM_POINTS" PARM_VALUE="&lt;Unused&gt;"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="11"
#!   TYPE="Inspector"
#!   VERSION="3"
#!   POSITION="831.127 -116.372"
#!   BOUNDING_RECT="831.127 -116.372 498.762 71"
#!   ORDER="5e+14"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="16492"
#! >
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="AREA_COLOR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="POINTCLOUD_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_NUM_ROWS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_TYPE_DISPLAY" PARM_VALUE="No Thinning"/>
#!     <XFORM_PARM PARM_NAME="RASTER_VISUALIZATION_OPTION" PARM_VALUE="No Reduction"/>
#!     <XFORM_PARM PARM_NAME="RASTER_START_ROW" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RASTER_START_COL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="VECTOR_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PEN_COLOR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="BuildingFootprints"/>
#!     <XFORM_PARM PARM_NAME="TACKATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RASTER_NUM_COLS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_INTERVAL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="THINNER_MAX_NUM_POINTS" PARM_VALUE="&lt;Unused&gt;"/>
#! </TRANSFORMER>
#! </TRANSFORMERS>
#! <FEAT_LINKS>
#! <FEAT_LINK
#!   IDENTIFIER="5"
#!   SOURCE_NODE="1"
#!   TARGET_NODE="4"
#!   SOURCE_PORT_DESC="-1"
#!   TARGET_PORT_DESC="fi 0 Filter"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="12"
#!   SOURCE_NODE="1"
#!   TARGET_NODE="11"
#!   SOURCE_PORT_DESC="-1"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="1"
#!   HIDDEN="false"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="6"
#!   SOURCE_NODE="3"
#!   TARGET_NODE="4"
#!   SOURCE_PORT_DESC="-1"
#!   TARGET_PORT_DESC="fi 1 Candidate"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="8"
#!   SOURCE_NODE="4"
#!   TARGET_NODE="7"
#!   SOURCE_PORT_DESC="fo 0 PASSED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="10"
#!   SOURCE_NODE="4"
#!   TARGET_NODE="9"
#!   SOURCE_PORT_DESC="fo 1 FAILED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   EXTRA_POINTS=""
#! />
#! </FEAT_LINKS>
#! <BREAKPOINTS>
#! </BREAKPOINTS>
#! <ATTR_LINKS>
#! </ATTR_LINKS>
#! <SUBDOCUMENTS>
#! </SUBDOCUMENTS>
#! <LOOKUP_TABLES>
#! </LOOKUP_TABLES>
#! </WORKSPACE>
FME_PYTHON_VERSION 27
GUI IGNORE SourceDataset_ACAD_1,RESOLVE_SELECTED_BLOCKS_ACAD_1,READ_SELECTED_PAPER_SPACE_ACAD_1,ACAD_IN_RESOLVE_BLOCKS_ACAD_1,ACAD_IN_USE_BLOCK_HEADER_LAYER_ACAD_1,ACAD_IN_USE_BLOCK_LAYER_INFO_ACAD_1,ACAD_IN_STORE_INSERT_POINT_ACAD_1,ACAD_IN_PRESERVE_INSERTS_ACAD_1,ACAD_IN_VISIBLE_ATTRIBUTES_AS_TEXT_ACAD_1,ACAD_IN_EXPLODE_MTEXT_ACAD_1,ACAD_IN_READ_AS_2_5D_ACAD_1,ACAD_IN_READ_MODEL_SPACE_ACAD_1,ACAD_IN_READ_PAPER_SPACE_ACAD_1,ACAD_IN_READ_PAPER_SPACE_LAYOUTS_ACAD_1,ACAD_IN_RESOLVE_VIEWPORTS_ACAD_1,ACAD_IN_INTERPRET_EXTENDED_DATA_ACAD_1,ACAD_IN_LIST_EXTENDED_DATA_ACAD_1,ACAD_IN_LIST_ATTRIBUTE_ENTITY_DATA_ACAD_1,ACAD_IN_XRECORD_READING_ACAD_1,ACAD_IN_EXPOSE_ATTRS_GROUP_ACAD_1,ACAD_IN_SEARCH_ENVELOPE_MINX_ACAD_1,ACAD_IN_SEARCH_ENVELOPE_MINY_ACAD_1,ACAD_IN_SEARCH_ENVELOPE_MAXX_ACAD_1,ACAD_IN_SEARCH_ENVELOPE_MAXY_ACAD_1,ACAD_IN_CLIP_TO_ENVELOPE_ACAD_1,ACAD_IN_ACAD_RDR_ADV_PARM_GROUP_ACAD_1,ACAD_IN_CONVERT_ZERO_LENGTH_ARCS_TO_POINTS_ACAD_1,ACAD_IN_RESOLVE_ENTITY_COLOR_ACAD_1,ACAD_IN_PRESERVE_COMPLEX_HATCHES_ACAD_1,ACAD_IN_READ_GROUPS_ACAD_1,ACAD_IN_READ_XREFS_ACAD_1,ACAD_IN_EVALUATE_MLINE_GEOM_ACAD_1,ACAD_IN_STORE_LAYER_INFO_ACAD_1,ACAD_IN_STORE_BULGE_INFO_ACAD_1,ACAD_IN_OUTPUT_ZERO_LENGTH_LINES_AS_LINES_ACAD_1,ACAD_IN_STORE_SPLINE_DEFS_ACAD_1,ACAD_IN_RESOLVE_DIMENSIONS_ACAD_1,ACAD_IN_PRESERVE_CLIPPED_RASTERS_ACAD_1,ACAD_IN_IGNORE_FROZEN_LAYERS_ACAD_1,ACAD_IN_IGNORE_UCS_ACAD_1,ACAD_IN_APPLY_WORLD_FILE_ACAD_1,ACAD_IN_READ_PROXY_GRAPHICS_ACAD_1,ACAD_IN_READ_SYS_VARS_ACAD_1,ACAD_IN_USE_DXF_HEADER_ACAD_1,ACAD_IN_NETWORK_AUTHENTICATION_ACAD_1,SEARCH_ENVELOPE_COORDINATE_SYSTEM_ACAD_1,SourceDataset_FILEGDB_1,FILEGDB_IN_EXPOSE_ATTRS_GROUP_FILEGDB_1,FILEGDB_IN_SEARCH_ENVELOPE_MINX_FILEGDB_1,FILEGDB_IN_SEARCH_ENVELOPE_MINY_FILEGDB_1,FILEGDB_IN_SEARCH_ENVELOPE_MAXX_FILEGDB_1,FILEGDB_IN_SEARCH_ENVELOPE_MAXY_FILEGDB_1,FILEGDB_IN_CLIP_TO_ENVELOPE_FILEGDB_1,FILEGDB_IN_NETWORK_AUTHENTICATION_FILEGDB_1,SEARCH_ENVELOPE_COORDINATE_SYSTEM_FILEGDB_1
DEFAULT_MACRO SourceDataset_ACAD $(FME_MF_DIR)1/FMEInput/BuildingFootprints.dwg
GUI MULTIFILE SourceDataset_ACAD DWG_Files(*.dwg)/DXF_Files(*.dxf)|*.dwg;*.dxf|DWG_Files(*.dwg)|*.dwg|DXF_Files(*.dxf)|*.dxf|All_Files|* Source Autodesk AutoCAD DWG/DXF File(s):
DEFAULT_MACRO SourceDataset_FILEGDB $(FME_MF_DIR)1/FMEInput/Addresses.gdb
GUI SOURCE_GEODATABASE SourceDataset_FILEGDB Source Geodatabase:
INCLUDE [ if {{$(SourceDataset_ACAD)} == {}} { puts_real {Parameter 'SourceDataset_ACAD' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(SourceDataset_FILEGDB)} == {}} { puts_real {Parameter 'SourceDataset_FILEGDB' must be given a value.}; exit 1; }; ]
#! START_HEADER
#! START_WB_HEADER
READER_TYPE MULTI_READER
MULTI_READER_TYPE{0} ACAD
MULTI_READER_KEYWORD{0} ACAD_1
MULTI_READER_GEN_DIRECTIVES{0} SEARCH_ENVELOPE_MINY,0,READ_XREFS,no,ACAD_RDR_ADV_PARM_GROUP,,STORE_INSERT_POINT,no,READ_PROXY_GRAPHICS,yes,LIST_ATTRIBUTE_ENTITY_DATA,yes,READ_PAPER_SPACE,,STORE_LAYER_INFO,no,RESOLVE_VIEWPORTS,no,PRESERVE_COMPLEX_HATCHES,no,DXF_HEADER_GROUP,,USE_DXF_HEADER,,USE_BLOCK_LAYER_INFO,no,VISIBLE_ATTRIBUTES_AS_TEXT,yes,READ_SELECTED_PAPER_SPACE,,RESOLVE_SELECTED_BLOCKS,,ACAD_ATTRIBUTE_OPTIONS,,PRESERVE_CLIPPED_RASTERS,no,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,SEARCH_ENVELOPE_MINX,0,CLIP_TO_ENVELOPE,NO,IGNORE_UCS,no,_MERGE_SCHEMAS,YES,CONVERT_ZERO_LENGTH_ARCS_TO_POINTS,yes,EXPOSE_ATTRS_MSG,,STORE_SPLINE_DEFS,yes,RESOLVE_ENTITY_COLOR,yes,METAFILE,acad,ENTITY_OPTIONS,,USE_BLOCK_HEADER_LAYER,yes,ACAD_EXPOSE_FORMAT_ATTRS,,SPACE_OPTIONS,,RESOLVE_DIMENSIONS,yes,EVALUATE_MLINE_GEOM,no,XRECORD_READING,Lists,RESOLVE_BLOCKS,yes,APPLY_WORLD_FILE,yes,READ_MODEL_SPACE,yes,EXPLODE_MTEXT,yes,LIST_EXTENDED_DATA,yes,READ_PAPER_SPACE_LAYOUTS,yes,EXPOSE_ATTRS_GROUP,,STORE_BULGE_INFO,no,OUTPUT_ZERO_LENGTH_LINES_AS_LINES,no,STRUCTURE_EXTENDED_DATA,no,PRESERVE_INSERTS,no,READ_AS_2_5D,no,SEARCH_ENVELOPE_MAXX,0,READ_GROUPS,no,SEARCH_ENVELOPE_MAXY,0,READ_SYS_VARS,no,INTERPRET_EXTENDED_DATA,yes,USE_SEARCH_ENVELOPE,NO,IGNORE_FROZEN_LAYERS,no
MULTI_READER_TYPE{1} FILEGDB
MULTI_READER_KEYWORD{1} FILEGDB_1
MULTI_READER_GEN_DIRECTIVES{1} TABLELIST,,SEARCH_ENVELOPE_MINY,0,SEARCH_ENVELOPE_MAXY,0,FME_CONNECTION_GROUP,,EXPOSE_ATTRS_GROUP,,FILEGDB_EXPOSE_FORMAT_ATTRS,,CLIP_TO_ENVELOPE,NO,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,SEARCH_ENVELOPE_MAXX,0,SEARCH_ENVELOPE_MINX,0,USE_SEARCH_ENVELOPE,NO,_MERGE_SCHEMAS,YES

WRITER_TYPE NULL
WRITER_KEYWORD NULL_DEST
NULL_DEST_DATASET null
#! END_WB_HEADER

#! START_WB_HEADER
FACTORY_DEF * BranchingFactory                                         \
  FACTORY_NAME "Source Feature Router"                                 \
  INPUT FEATURE_TYPE *                                                 \
  TARGET_FACTORY @Concatenate("Source Catcher ", &multi_reader_id)     \
  FALLBACK_TARGET_FACTORY "Branching Catcher"

#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "ACAD_1"
FACTORY_DEF * TeeFactory                                               \
  FACTORY_NAME "Source Catcher 0"                                      \
  INPUT FEATURE_TYPE *                                                 \
  OUTPUT FEATURE_TYPE *

#! END_WB_HEADER
#! START_SOURCE_HEADER ACAD ACAD_1
# ============================================================================
# The following GUI line prompts for a file to be used as the
# source of the DWG/DXF translation.
# The user input is stored in a MACRO, which is then used to define
# the dataset to be read.
# 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_ACAD_1 $(SourceDataset)}     \
 } ]
#! END_WB_HEADER
#! START_SOURCE_HEADER ACAD ACAD_1
DEFAULT_MACRO SourceDataset_ACAD_1 $(SourceDataset_ACAD)
GUI MULTIFILE SourceDataset_ACAD_1 DWG_Files(*.dwg)/DXF_Files(*.dxf)|*.dwg;*.dxf|DWG_Files(*.dwg)|*.dwg|DXF_Files(*.dxf)|*.dxf|All_Files|* Source Autodesk AutoCAD DWG/DXF File(s):
DEFAULT_MACRO _BULGES_AS_ARCS_ACAD_1 no
ACAD_1_SPLIT_BULGE_ARCS $(_BULGES_AS_ARCS_ACAD_1)
DEFAULT_MACRO RESOLVE_SELECTED_BLOCKS_ACAD_1 
ACAD_1_RESOLVE_SELECTED_BLOCKS $(RESOLVE_SELECTED_BLOCKS_ACAD_1)
GUI OPTIONAL TEXT_ENCODED RESOLVE_SELECTED_BLOCKS_ACAD_1 Explode Selected Blocks:
DEFAULT_MACRO READ_SELECTED_PAPER_SPACE_ACAD_1 
ACAD_1_READ_SELECTED_PAPER_SPACE $(READ_SELECTED_PAPER_SPACE_ACAD_1)
GUI OPTIONAL TEXT_ENCODED READ_SELECTED_PAPER_SPACE_ACAD_1 Read Selected Paper Spaces:
# ============================================================================
# Now define a TestFactory which deletes any Insert entities
# which do not have any attributes following. If you want to get
# rid of these points for any reason then, remove the comments
#
#FACTORY_DEF * TestFactory # INPUT FEATURE_TYPE * autocad_entity autocad_insert # TEST &autocad_attributes_follow = false # OUTPUT FAILED   FEATURE_TYPE *
#
DEFAULT_MACRO WB_KEYWORD_ACAD_1 "DWG"
FACTORY_DEF * TeeFactory                              \
FACTORY_NAME $(WB_KEYWORD)"RenameAutocadExtendedAttrs"          \
INPUT FEATURE_TYPE *                               \
OUTPUT FEATURE_TYPE *                              \
@CopyAttributes(autocad_extended_data_list{},extended_data_list{})    \
@CopyAttributes(autocad_extended_data{},extended_data{})    \
@RemoveAttributes(fme_regexp_match,^extended_data)
DEFAULT_MACRO ACAD_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_ACAD_1 Yes
ACAD_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(ACAD_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_ACAD_1)"
# ============================================================================
# And indicate whether or not we are to expand the blocks.
DEFAULT_MACRO ACAD_IN_RESOLVE_BLOCKS_ACAD_1 yes
ACAD_1_RESOLVE_BLOCKS "$(ACAD_IN_RESOLVE_BLOCKS_ACAD_1)"
GUI ACTIVEDISCLOSUREGROUP ACAD_IN_RESOLVE_BLOCKS_ACAD_1 FME_DISCLOSURE_CLOSED%USE_BLOCK_HEADER_LAYER%USE_BLOCK_LAYER_INFO%STORE_INSERT_POINT%PRESERVE_INSERTS%RESOLVE_SELECTED_BLOCKS Explode Blocks into Entities
# ============================================================================
# Indicate whether we want to use the block header feature type for the components
# when blocks are exploded or to read components on their original feature types.
DEFAULT_MACRO ACAD_IN_USE_BLOCK_HEADER_LAYER_ACAD_1 yes
ACAD_1_USE_BLOCK_HEADER_LAYER "$(ACAD_IN_USE_BLOCK_HEADER_LAYER_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_USE_BLOCK_HEADER_LAYER_ACAD_1 yes%no Use Block Feature Type for Components
# ============================================================================
# Indicate whether we want to use the block header layer information for the components
# when blocks are exploded or to read components with their original layer information.
DEFAULT_MACRO ACAD_IN_USE_BLOCK_LAYER_INFO_ACAD_1 no
ACAD_1_USE_BLOCK_LAYER_INFO "$(ACAD_IN_USE_BLOCK_LAYER_INFO_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_USE_BLOCK_LAYER_INFO_ACAD_1 yes%no Use Block Layer Information for Components
# ============================================================================
# Indicate whether we want to store the insert location for the block reference
# on the components when blocks are exploded.
DEFAULT_MACRO ACAD_IN_STORE_INSERT_POINT_ACAD_1 no
ACAD_1_STORE_INSERT_POINT "$(ACAD_IN_STORE_INSERT_POINT_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_STORE_INSERT_POINT_ACAD_1 yes%no Store Insert Location on Components
# ============================================================================
DEFAULT_MACRO ACAD_IN_PRESERVE_INSERTS_ACAD_1 no
ACAD_1_PRESERVE_INSERTS "$(ACAD_IN_PRESERVE_INSERTS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_PRESERVE_INSERTS_ACAD_1 yes%no Preserve Insert Points
# ============================================================================
# ============================================================================
# As well, see if we should turn visible attributes into text
# entities so they will be visible in the output system
DEFAULT_MACRO ACAD_IN_VISIBLE_ATTRIBUTES_AS_TEXT_ACAD_1 yes
ACAD_1_VISIBLE_ATTRIBUTES_AS_TEXT "$(ACAD_IN_VISIBLE_ATTRIBUTES_AS_TEXT_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_VISIBLE_ATTRIBUTES_AS_TEXT_ACAD_1 yes%no Read Visible Attributes as Text Entities
# ============================================================================
DEFAULT_MACRO ACAD_IN_EXPLODE_MTEXT_ACAD_1 yes
ACAD_1_EXPLODE_MTEXT "$(ACAD_IN_EXPLODE_MTEXT_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_EXPLODE_MTEXT_ACAD_1 yes%no Explode MText Entities
# ============================================================================
# read polylines as 2D or 2.5D polylines
DEFAULT_MACRO ACAD_IN_READ_AS_2_5D_ACAD_1 no
ACAD_1_READ_AS_2_5D "$(ACAD_IN_READ_AS_2_5D_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_READ_AS_2_5D_ACAD_1 yes%no Read Polylines as 2.5D
# ============================================================================
# Should we read the model space
DEFAULT_MACRO ACAD_IN_READ_MODEL_SPACE_ACAD_1 yes
ACAD_1_READ_MODEL_SPACE "$(ACAD_IN_READ_MODEL_SPACE_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_READ_MODEL_SPACE_ACAD_1 yes%no Read Model Space
# ============================================================================
GUI DISCLOSUREGROUP ACAD_IN_READ_PAPER_SPACE_ACAD_1 FME_DISCLOSURE_CLOSED%READ_SELECTED_PAPER_SPACE%READ_PAPER_SPACE_LAYOUTS%RESOLVE_VIEWPORTS Read Paper Space
# ============================================================================
# Indicate which paperspaces we will read
# ============================================================================
# Indicate whether or not we will read paper space layout information.
DEFAULT_MACRO ACAD_IN_READ_PAPER_SPACE_LAYOUTS_ACAD_1 yes
ACAD_1_READ_PAPER_SPACE_LAYOUTS "$(ACAD_IN_READ_PAPER_SPACE_LAYOUTS_ACAD_1)"
GUI CHECKBOX ACAD_IN_READ_PAPER_SPACE_LAYOUTS_ACAD_1 yes%no Read Paper Space Layout Information
# ============================================================================
# Should we resolve viewports
DEFAULT_MACRO ACAD_IN_RESOLVE_VIEWPORTS_ACAD_1 no
ACAD_1_RESOLVE_VIEWPORTS "$(ACAD_IN_RESOLVE_VIEWPORTS_ACAD_1)"
GUI CHECKBOX ACAD_IN_RESOLVE_VIEWPORTS_ACAD_1 yes%no Read Model Space Entities Through Viewport
# ============================================================================
# 20140211 - allow control over additional interpreted representation for user EED
DEFAULT_MACRO ACAD_IN_INTERPRET_EXTENDED_DATA_ACAD_1 yes
ACAD_1_INTERPRET_EXTENDED_DATA "$(ACAD_IN_INTERPRET_EXTENDED_DATA_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_INTERPRET_EXTENDED_DATA_ACAD_1 yes%no Read Interpreted Extended Entity Data
# ============================================================================
DEFAULT_MACRO ACAD_IN_LIST_EXTENDED_DATA_ACAD_1 yes
ACAD_1_LIST_EXTENDED_DATA "$(ACAD_IN_LIST_EXTENDED_DATA_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_LIST_EXTENDED_DATA_ACAD_1 yes%no Read Extended Entity Data As List
# ============================================================================
DEFAULT_MACRO ACAD_IN_LIST_ATTRIBUTE_ENTITY_DATA_ACAD_1 yes
ACAD_1_LIST_ATTRIBUTE_ENTITY_DATA "$(ACAD_IN_LIST_ATTRIBUTE_ENTITY_DATA_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_LIST_ATTRIBUTE_ENTITY_DATA_ACAD_1 yes%no Read Attribute Entity Data As List
# ============================================================================
# Ensure that the legacy form is still used, so we don't have to make a new directive
DEFAULT_MACRO ACAD_IN_XRECORD_READING_ACAD_1 Lists
ACAD_1_XRECORD_READING "$(ACAD_IN_XRECORD_READING_ACAD_1)"
#GUI CHOICE XRECORD_READING None%Lists Entity XRecord Reading
GUI CHECKBOX_WITHLABEL ACAD_IN_XRECORD_READING_ACAD_1 Lists%None Entity XRecord Data Reading
DEFAULT_MACRO ACAD_IN_EXPOSE_ATTRS_GROUP_ACAD_1 
ACAD_1_EXPOSE_ATTRS_GROUP "$(ACAD_IN_EXPOSE_ATTRS_GROUP_ACAD_1)"
GUI DISCLOSUREGROUP ACAD_IN_EXPOSE_ATTRS_GROUP_ACAD_1 EXPOSE_ATTRS_MSG%ACAD_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 ACAD_IN_SEARCH_ENVELOPE_MINX_ACAD_1 0
ACAD_1_SEARCH_ENVELOPE "$(ACAD_IN_SEARCH_ENVELOPE_MINX_ACAD_1)"
GUI OPTIONAL FLOAT ACAD_IN_SEARCH_ENVELOPE_MINX_ACAD_1 Minimum X:
# ===========================================================================
DEFAULT_MACRO ACAD_IN_SEARCH_ENVELOPE_MINY_ACAD_1 0
ACAD_1_SEARCH_ENVELOPE "$(ACAD_IN_SEARCH_ENVELOPE_MINY_ACAD_1)"
GUI OPTIONAL FLOAT ACAD_IN_SEARCH_ENVELOPE_MINY_ACAD_1 Minimum Y:
# ===========================================================================
DEFAULT_MACRO ACAD_IN_SEARCH_ENVELOPE_MAXX_ACAD_1 0
ACAD_1_SEARCH_ENVELOPE "$(ACAD_IN_SEARCH_ENVELOPE_MAXX_ACAD_1)"
GUI OPTIONAL FLOAT ACAD_IN_SEARCH_ENVELOPE_MAXX_ACAD_1 Maximum X:
# ===========================================================================
DEFAULT_MACRO ACAD_IN_SEARCH_ENVELOPE_MAXY_ACAD_1 0
ACAD_1_SEARCH_ENVELOPE "$(ACAD_IN_SEARCH_ENVELOPE_MAXY_ACAD_1)"
GUI OPTIONAL FLOAT ACAD_IN_SEARCH_ENVELOPE_MAXY_ACAD_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 ACAD_IN_CLIP_TO_ENVELOPE_ACAD_1 NO
ACAD_1_CLIP_TO_ENVELOPE "$(ACAD_IN_CLIP_TO_ENVELOPE_ACAD_1)"
GUI OPTIONAL CHECKBOX ACAD_IN_CLIP_TO_ENVELOPE_ACAD_1 YES%NO Clip to Search Envelope
GUI DISCLOSUREGROUP ACAD_IN_ACAD_RDR_ADV_PARM_GROUP_ACAD_1 FME_DISCLOSURE_CLOSED%RESOLVE_ENTITY_COLOR%PRESERVE_COMPLEX_HATCHES%PRESERVE_CLIPPED_RASTERS%RESOLVE_DIMENSIONS%EVALUATE_MLINE_GEOM%STORE_SPLINE_DEFS%STORE_BULGE_INFO%IGNORE_UCS%CONVERT_ZERO_LENGTH_ARCS_TO_POINTS%READ_GROUPS%READ_XREFS%STORE_LAYER_INFO%OUTPUT_ZERO_LENGTH_LINES_AS_LINES%IGNORE_FROZEN_LAYERS%APPLY_WORLD_FILE%READ_PROXY_GRAPHICS%READ_SYS_VARS%DXF_HEADER_GROUP Advanced
# ============================================================================
DEFAULT_MACRO ACAD_IN_CONVERT_ZERO_LENGTH_ARCS_TO_POINTS_ACAD_1 yes
ACAD_1_CONVERT_ZERO_LENGTH_ARCS_TO_POINTS "$(ACAD_IN_CONVERT_ZERO_LENGTH_ARCS_TO_POINTS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_CONVERT_ZERO_LENGTH_ARCS_TO_POINTS_ACAD_1 yes%no Convert Zero Length Arcs to Points
# ============================================================================
# PR#9808 - Indicate whether we want to resolve entities color or keep it as ByLayer.
# By default, we'll resolve entity color because that's how we have been doing
# it all along. So to maintain backwards compatibility we'll keep that as default.
DEFAULT_MACRO ACAD_IN_RESOLVE_ENTITY_COLOR_ACAD_1 yes
ACAD_1_RESOLVE_ENTITY_COLOR "$(ACAD_IN_RESOLVE_ENTITY_COLOR_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_RESOLVE_ENTITY_COLOR_ACAD_1 yes%no Resolve Entity Color
# ============================================================================
DEFAULT_MACRO ACAD_IN_PRESERVE_COMPLEX_HATCHES_ACAD_1 no
ACAD_1_PRESERVE_COMPLEX_HATCHES "$(ACAD_IN_PRESERVE_COMPLEX_HATCHES_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_PRESERVE_COMPLEX_HATCHES_ACAD_1 yes%no Preserve Complex Hatches and MPolygons
# ============================================================================
# And indicate whether or not to read groups.
DEFAULT_MACRO ACAD_IN_READ_GROUPS_ACAD_1 no
ACAD_1_READ_GROUPS "$(ACAD_IN_READ_GROUPS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_READ_GROUPS_ACAD_1 yes%no Read Groups
# ============================================================================
# And indicate whether or not to read xrefs.
DEFAULT_MACRO ACAD_IN_READ_XREFS_ACAD_1 no
ACAD_1_READ_XREFS "$(ACAD_IN_READ_XREFS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_READ_XREFS_ACAD_1 yes%no Read External References
# ============================================================================
# And indicate whether to read mlines as stored vertexes, or as calculated vertexes.
DEFAULT_MACRO ACAD_IN_EVALUATE_MLINE_GEOM_ACAD_1 no
ACAD_1_EVALUATE_MLINE_GEOM "$(ACAD_IN_EVALUATE_MLINE_GEOM_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_EVALUATE_MLINE_GEOM_ACAD_1 yes%no Evaluate Multi-line Entity Geometry
# ============================================================================
# Indicate if we want to store layer properties as feature attributes
DEFAULT_MACRO ACAD_IN_STORE_LAYER_INFO_ACAD_1 no
ACAD_1_STORE_LAYER_INFO "$(ACAD_IN_STORE_LAYER_INFO_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_STORE_LAYER_INFO_ACAD_1 yes%no Store Layer Properties on Features
# ============================================================================
# Decide how we should handle bulges
DEFAULT_MACRO ACAD_IN_STORE_BULGE_INFO_ACAD_1 no
ACAD_1_STORE_BULGE_INFO "$(ACAD_IN_STORE_BULGE_INFO_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_STORE_BULGE_INFO_ACAD_1 yes%no Store Bulge Info
# ============================================================================
# Decide how we should handle zero length lines
# By default, we'll convert any zero length lines we encounter to points
DEFAULT_MACRO ACAD_IN_OUTPUT_ZERO_LENGTH_LINES_AS_LINES_ACAD_1 no
ACAD_1_OUTPUT_ZERO_LENGTH_LINES_AS_LINES "$(ACAD_IN_OUTPUT_ZERO_LENGTH_LINES_AS_LINES_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_OUTPUT_ZERO_LENGTH_LINES_AS_LINES_ACAD_1 yes%no Output Zero Length Lines as Lines
# ============================================================================
# Decide how we should handle splines
DEFAULT_MACRO ACAD_IN_STORE_SPLINE_DEFS_ACAD_1 yes
ACAD_1_STORE_SPLINE_DEFS "$(ACAD_IN_STORE_SPLINE_DEFS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_STORE_SPLINE_DEFS_ACAD_1 yes%no Store Spline Definitions
# ============================================================================
DEFAULT_MACRO ACAD_IN_RESOLVE_DIMENSIONS_ACAD_1 yes
ACAD_1_RESOLVE_DIMENSIONS "$(ACAD_IN_RESOLVE_DIMENSIONS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_RESOLVE_DIMENSIONS_ACAD_1 yes%no Explode Dimensions
# ============================================================================
DEFAULT_MACRO ACAD_IN_PRESERVE_CLIPPED_RASTERS_ACAD_1 no
ACAD_1_PRESERVE_CLIPPED_RASTERS "$(ACAD_IN_PRESERVE_CLIPPED_RASTERS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_PRESERVE_CLIPPED_RASTERS_ACAD_1 yes%no Preserve Clipped Rasters
# ============================================================================
DEFAULT_MACRO ACAD_IN_IGNORE_FROZEN_LAYERS_ACAD_1 no
ACAD_1_IGNORE_FROZEN_LAYERS "$(ACAD_IN_IGNORE_FROZEN_LAYERS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_IGNORE_FROZEN_LAYERS_ACAD_1 yes%no Ignore Frozen Layers
# ============================================================================
# 20040114 - Decide if we should handle the user coordinate system (ucs)
DEFAULT_MACRO ACAD_IN_IGNORE_UCS_ACAD_1 no
ACAD_1_IGNORE_UCS "$(ACAD_IN_IGNORE_UCS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_IGNORE_UCS_ACAD_1 yes%no Ignore User Coordinate System (UCS)
# ============================================================================
# 20090504 - Decide if we should apply world file or not - default is YES
DEFAULT_MACRO ACAD_IN_APPLY_WORLD_FILE_ACAD_1 yes
ACAD_1_APPLY_WORLD_FILE "$(ACAD_IN_APPLY_WORLD_FILE_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_APPLY_WORLD_FILE_ACAD_1 yes%no Apply World File
# ============================================================================
# Should we read proxy graphics - default is YES
DEFAULT_MACRO ACAD_IN_READ_PROXY_GRAPHICS_ACAD_1 yes
ACAD_1_READ_PROXY_GRAPHICS "$(ACAD_IN_READ_PROXY_GRAPHICS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_READ_PROXY_GRAPHICS_ACAD_1 yes%no Read Proxy Entity Graphics
# ============================================================================
# Should we read system variables - default is NO
DEFAULT_MACRO ACAD_IN_READ_SYS_VARS_ACAD_1 no
ACAD_1_READ_SYS_VARS "$(ACAD_IN_READ_SYS_VARS_ACAD_1)"
GUI CHECKBOX_WITHLABEL ACAD_IN_READ_SYS_VARS_ACAD_1 yes%no Read Drawing System Variables
# ============================================================================
# ============================================================================
DEFAULT_MACRO ACAD_IN_USE_DXF_HEADER_ACAD_1 
ACAD_1_USE_DXF_HEADER "$(ACAD_IN_USE_DXF_HEADER_ACAD_1)"
GUI OPTIONAL FILENAME_MUSTEXIST ACAD_IN_USE_DXF_HEADER_ACAD_1 DXF_Files(*.dxf)|*.dxf|All_files(*.*)|*.* DXF Header File
# ============================================================================
DEFAULT_MACRO ACAD_IN_STRUCTURE_EXTENDED_DATA_ACAD_1 no
ACAD_1_STRUCTURE_EXTENDED_DATA "$(ACAD_IN_STRUCTURE_EXTENDED_DATA_ACAD_1)"
# ===========================================================================
DEFAULT_MACRO ACAD_IN_NETWORK_AUTHENTICATION_ACAD_1 
ACAD_1_NETWORK_AUTHENTICATION "$(ACAD_IN_NETWORK_AUTHENTICATION_ACAD_1)"
GUI OPTIONAL AUTHENTICATOR ACAD_IN_NETWORK_AUTHENTICATION_ACAD_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication
# ===========================================================================
DEFAULT_MACRO ACAD_IN_ATTRIBUTE_READING_ACAD_1 ALL
ACAD_1_ATTRIBUTE_READING "$(ACAD_IN_ATTRIBUTE_READING_ACAD_1)"
# ============================================================================
# Bring in macros for all the autocad colors
INCLUDE "$(FME_HOME)/metafile/autocadColors.fmi"
# 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_ACAD_1 
GUI OPTIONAL COORDSYS SEARCH_ENVELOPE_COORDINATE_SYSTEM_ACAD_1 Search Envelope Coordinate System:
ACAD_1_SEARCH_ENVELOPE_COORDINATE_SYSTEM "$(SEARCH_ENVELOPE_COORDINATE_SYSTEM_ACAD_1)"
# ===========================================================================
ACAD_1_DATASET "$(SourceDataset_ACAD_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
FACTORY_DEF * BranchingFactory                                         \
  FACTORY_NAME "Source Brancher 0"                                     \
  INPUT FEATURE_TYPE *                                                 \
    @SupplyAttributes(multi_reader_type,ACAD)                          \
  TARGET_FACTORY "Branching Catcher"

#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "FILEGDB_1"
FACTORY_DEF * TeeFactory                                               \
  FACTORY_NAME "Source Catcher 1"                                      \
  INPUT FEATURE_TYPE *                                                 \
  OUTPUT FEATURE_TYPE *

#! END_WB_HEADER
#! START_SOURCE_HEADER FILEGDB FILEGDB_1
# 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_FILEGDB_1 $(SourceDataset)}     \
 } ]
#! END_WB_HEADER
#! START_SOURCE_HEADER FILEGDB FILEGDB_1
DEFAULT_MACRO SourceDataset_FILEGDB_1 $(SourceDataset_FILEGDB)
GUI SOURCE_GEODATABASE SourceDataset_FILEGDB_1 Source Geodatabase:
DEFAULT_MACRO FILEGDB_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_FILEGDB_1 Yes
FILEGDB_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(FILEGDB_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_FILEGDB_1)"
DEFAULT_MACRO FILEGDB_IN_EXPOSE_ATTRS_GROUP_FILEGDB_1 
FILEGDB_1_EXPOSE_ATTRS_GROUP "$(FILEGDB_IN_EXPOSE_ATTRS_GROUP_FILEGDB_1)"
GUI DISCLOSUREGROUP FILEGDB_IN_EXPOSE_ATTRS_GROUP_FILEGDB_1 FILEGDB_EXPOSE_FORMAT_ATTRS Schema Attributes
# 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 FILEGDB_IN_SEARCH_ENVELOPE_MINX_FILEGDB_1 0
FILEGDB_1_SEARCH_ENVELOPE "$(FILEGDB_IN_SEARCH_ENVELOPE_MINX_FILEGDB_1)"
GUI OPTIONAL FLOAT FILEGDB_IN_SEARCH_ENVELOPE_MINX_FILEGDB_1 Minimum X:
# ===========================================================================
DEFAULT_MACRO FILEGDB_IN_SEARCH_ENVELOPE_MINY_FILEGDB_1 0
FILEGDB_1_SEARCH_ENVELOPE "$(FILEGDB_IN_SEARCH_ENVELOPE_MINY_FILEGDB_1)"
GUI OPTIONAL FLOAT FILEGDB_IN_SEARCH_ENVELOPE_MINY_FILEGDB_1 Minimum Y:
# ===========================================================================
DEFAULT_MACRO FILEGDB_IN_SEARCH_ENVELOPE_MAXX_FILEGDB_1 0
FILEGDB_1_SEARCH_ENVELOPE "$(FILEGDB_IN_SEARCH_ENVELOPE_MAXX_FILEGDB_1)"
GUI OPTIONAL FLOAT FILEGDB_IN_SEARCH_ENVELOPE_MAXX_FILEGDB_1 Maximum X:
# ===========================================================================
DEFAULT_MACRO FILEGDB_IN_SEARCH_ENVELOPE_MAXY_FILEGDB_1 0
FILEGDB_1_SEARCH_ENVELOPE "$(FILEGDB_IN_SEARCH_ENVELOPE_MAXY_FILEGDB_1)"
GUI OPTIONAL FLOAT FILEGDB_IN_SEARCH_ENVELOPE_MAXY_FILEGDB_1 Maximum Y:
# ===========================================================================
DEFAULT_MACRO FILEGDB_IN_CLIP_TO_ENVELOPE_FILEGDB_1 NO
FILEGDB_1_CLIP_TO_ENVELOPE "$(FILEGDB_IN_CLIP_TO_ENVELOPE_FILEGDB_1)"
GUI OPTIONAL CHECKBOX FILEGDB_IN_CLIP_TO_ENVELOPE_FILEGDB_1 YES%NO Clip to Search Envelope
#INCLUDE searchEnvCoordSys.fmi
# ===========================================================================
DEFAULT_MACRO FILEGDB_IN_NETWORK_AUTHENTICATION_FILEGDB_1 
FILEGDB_1_NETWORK_AUTHENTICATION "$(FILEGDB_IN_NETWORK_AUTHENTICATION_FILEGDB_1)"
GUI OPTIONAL AUTHENTICATOR FILEGDB_IN_NETWORK_AUTHENTICATION_FILEGDB_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication
# ===========================================================================
DEFAULT_MACRO FILEGDB_IN_ATTRIBUTE_READING_FILEGDB_1 ALL
FILEGDB_1_ATTRIBUTE_READING "$(FILEGDB_IN_ATTRIBUTE_READING_FILEGDB_1)"
# 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_FILEGDB_1 
GUI OPTIONAL COORDSYS SEARCH_ENVELOPE_COORDINATE_SYSTEM_FILEGDB_1 Search Envelope Coordinate System:
FILEGDB_1_SEARCH_ENVELOPE_COORDINATE_SYSTEM "$(SEARCH_ENVELOPE_COORDINATE_SYSTEM_FILEGDB_1)"
# ===========================================================================
FILEGDB_1_DATASET "$(SourceDataset_FILEGDB_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
FACTORY_DEF * BranchingFactory                                         \
  FACTORY_NAME "Source Brancher 1"                                     \
  INPUT FEATURE_TYPE *                                                 \
    @SupplyAttributes(multi_reader_type,FILEGDB)                       \
  TARGET_FACTORY "Branching Catcher"

#! END_WB_HEADER
#! START_WB_HEADER
#! END_WB_HEADER
#! START_WB_HEADER
FACTORY_DEF * TeeFactory                                               \
  FACTORY_NAME "Branching Catcher"                                     \
  INPUT FEATURE_TYPE *                                                 \
  OUTPUT FEATURE_TYPE *

#! END_WB_HEADER

#! END_HEADER

LOG_FILENAME "mapping.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
MAPPING_FILE_ID SpatialRelationships
LOG_TIMINGS YES
LOG_FILTER_MASK -1
DEFAULT_MACRO DATASET_KEYWORD_ACAD_1 ACAD_1
DEFAULT_MACRO DATASET_KEYWORD_FILEGDB_1 FILEGDB_1
# -------------------------------------------------------------------------

ACAD_1_READER_META_ATTRIBUTES fme_feature_type

# -------------------------------------------------------------------------

FILEGDB_1_READER_META_ATTRIBUTES fme_feature_type

# -------------------------------------------------------------------------

MULTI_READER_CONTINUE_ON_READER_FAILURE No

# -------------------------------------------------------------------------

MACRO WORKSPACE_NAME SpatialRelationships
MACRO FME_VIEWER_APP fmedatainspector
# -------------------------------------------------------------------------

INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)}  elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]}  {set gVisualizerTemp $env(TEMP)}  elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:};  regsub -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname; set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S];  puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp"; 
MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffs
MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc
MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES
# -------------------------------------------------------------------------

FACTORY_DEF * RoutingFactory   FACTORY_NAME "Router and Unexpected Input Remover"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *    ROUTE ACAD ACAD_1::BuildingFootprints multi_reader_keyword,$(DATASET_KEYWORD_ACAD_1) TO FME_GENERIC ::BuildingFootprints ALIAS_GEOMETRY    ROUTE FILEGDB FILEGDB_1::PostalAddress multi_reader_keyword,$(DATASET_KEYWORD_FILEGDB_1) TO FME_GENERIC ::PostalAddress ALIAS_GEOMETRY    MERGE_INPUT Yes   OUTPUT ROUTED FEATURE_TYPE *
ACAD_1_MERGE_DEF ACAD_1::BuildingFootprints EXACT BuildingFootprints DEFLINE autocad_color,10,autocad_linetype,CONTINUOUS,autocad_layer_frozen,no,autocad_layer_hidden,no,autocad_layer_locked,no,autocad_layer_on,yes,autocad_layer_desc,
FILEGDB_1_MERGE_DEF FILEGDB_1::PostalAddress EXACT PostalAddress DEFLINE filegdb_type,geodb_point,filegdb_where,,OBJECTID,objectid,GlobalID,guid,OWNERNM1,text<openparen>150<closeparen>,OWNERNM2,text<openparen>150<closeparen>,PSTLADDRESS,text<openparen>250<closeparen>,PSTLCITY,text<openparen>100<closeparen>,PSTLPROV,text<openparen>25<closeparen>,INTSTATE,text<openparen>5<closeparen>,INTPSTLCD,text<openparen>10<closeparen>,COUNTRY,text<openparen>100<closeparen>,REPRESENT,text<openparen>14<closeparen>,STATUS,text<openparen>9<closeparen>,LASTUPDATE,date,LASTEDITOR,text<openparen>50<closeparen>,POSTALCODE,text<openparen>6<closeparen>
# -------------------------------------------------------------------------

FACTORY_DEF * TeeFactory    FACTORY_NAME "PostalAddress (FILEGDB_1) Splitter"    INPUT FEATURE_TYPE PostalAddress    OUTPUT FEATURE_TYPE PostalAddress_FILEGDB_1
# -------------------------------------------------------------------------

FACTORY_DEF * TeeFactory    FACTORY_NAME "BuildingFootprints (ACAD_1) Splitter"    INPUT FEATURE_TYPE BuildingFootprints    OUTPUT FEATURE_TYPE BuildingFootprints_ACAD_1_0_+27xAR4MklU=    OUTPUT FEATURE_TYPE BuildingFootprints_ACAD_1_1_l2ym1pBvrbY=
DEFAULT_MACRO WB_CURRENT_CONTEXT
# -------------------------------------------------------------------------

FACTORY_DEF * SpatialFilterFactory    FACTORY_NAME SpatialFilter    INPUT BASE FEATURE_TYPE BuildingFootprints_ACAD_1_0_+27xAR4MklU=    INPUT CANDIDATE FEATURE_TYPE PostalAddress_FILEGDB_1    PREDICATE "CONTAINS"    USE_BOUNDING_BOX NO    MULTIPLE_BASES YES    MERGE_BASE_ATTR YES    ATTR_ACCUM_MODE "HANDLE_CONFLICT"    ATTR_CONFLICT_RES "CANDIDATE_IF_CONFLICT"    BASE_ATTR_PREFIX "<Unused>"    PREDICATE_ATTR "_predicate"    BOOLEAN_OPERATOR OR    REJECT_INVALID_GEOM Yes    REJECT_INVALID_PREDICATES Yes    CUSTOM_MULTI_HANDLING Yes    DIMENSION 2    CURVE_BOUNDARY_RULE ENDPOINTS_MOD2    OUTPUT PASSED FEATURE_TYPE SpatialFilter_PASSED    OUTPUT FAILED FEATURE_TYPE SpatialFilter_FAILED

# -------------------------------------------------------------------------

# Set the directive to add all the meta-attributes to the features.
# We do this so users see all possible information in the viewed
# features.

READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
# Assumption is that the workspace temp dir has been already set and created.  See controldefs.cpp - ControlDefs::writeVisualizerTempDir
DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [         set grpByAttrs {};         if { [string length $grpByAttrs] > 0 } {             if { [string first "@EvaluateExpression" $grpByAttrs] == 0 } {                 puts "MACRO CATMAC _$grpByAttrs" ;             } else {                set catter "" ;                set comma "" ;                foreach attr $grpByAttrs {                    set catter "$catter$comma@Value(\"$attr\")" ;                    set comma ",_," ;                } ;                puts "MACRO CATMAC _@Concatenate($catter)" ;             }         }         else {             puts "MACRO CATMAC " ;         };         set safeName "[regsub -all {[^a-zA-Z0-9]} {Failed} _]_[expr round(rand() * 1000000)]_[clock clicks  -milliseconds]";         puts "MACRO SAFE_FFS_NAME $safeName";         ]
# Make the temporary directory that the FFS files will live in.
FACTORY_DEF * CreationFactory      FACTORY_NAME Failed_DirCreator      OUTPUT FEATURE_TYPE __nukeme__          @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}")
FACTORY_DEF * TeeFactory    FACTORY_NAME Failed_DirCreatorCleanerUpper    INPUT FEATURE_TYPE __nukeme__
# Send raster, point cloud and vector features down different paths to prepare
# them for viewing

FACTORY_DEF * TestFactory    FACTORY_NAME Failed_FeatureDirector    INPUT  FEATURE_TYPE SpatialFilter_FAILED    TEST &fme_type == "fme_raster"    OUTPUT FAILED FEATURE_TYPE Failed___NotRasterFeatures___    OUTPUT PASSED FEATURE_TYPE Failed___RasterFeatures___
FACTORY_DEF * TestFactory    FACTORY_NAME Failed___FeatureDirector1    INPUT FEATURE_TYPE Failed___NotRasterFeatures___    TEST &fme_type == "fme_point_cloud"    OUTPUT FAILED FEATURE_TYPE Failed___VectorFeatures___    OUTPUT PASSED FEATURE_TYPE Failed___PointCloudFeatures___
# Vector features simply may get their colors overridden

FACTORY_DEF * TeeFactory    FACTORY_NAME Failed_VectorSetterUpper    INPUT FEATURE_TYPE Failed___VectorFeatures___    OUTPUT FEATURE_TYPE __viewme__
# Point Cloud Features Might Need to be thinned

# Note that we don't call the ThinPointCloud function directly, but rather
# do it through TCL. This should allow this transformer to be used with a
# Desktop license, even though ThinPointCloud requires Professional.

Tcl2 proc Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_thinPointCloud {} {    if {[string equal {NO_THINNING} {KEEPNPOINT}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {MAXNUMPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {FIRSTNPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {LASTNPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }; }
FACTORY_DEF * TeeFactory    FACTORY_NAME Failed___PointCloudThinner    INPUT FEATURE_TYPE Failed___PointCloudFeatures___    OUTPUT FEATURE_TYPE __viewme__       @Tcl2("Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_thinPointCloud")
Tcl2 proc Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_prepareRaster {subsetStartRow subsetNumRows subsetStartCol subsetNumCols} {    set useDI [string equal -nocase {$(FME_VIEWER_APP)} {fmedatainspector}];    if {!$useDI} {       FME_Execute ApplyRasterRotation BILINEAR;    };    set doResample [string equal {NoReduction} {Resample}];    set doSubset [string equal {NoReduction} {Subset}];    set doBounds [string equal {NoReduction} {BoundingBoxOnly}];    if {$doBounds}  {       FME_Execute GeometryType fme_polygon;    }    elseif {$doResample || $doSubset} {       set comment {          First, we need to prefix all the attributes. This is done because          we are going to call @RasterProperties, and we want to make sure          it doesn't overwrite any existing attributes.       };       set kAttrPrefix ".";       set allNames [FME_AttributeNames];       foreach oldName $allNames {          set newName $kAttrPrefix;          append newName $oldName;          FME_RenameAttribute $newName $oldName;       };       FME_Execute RasterProperties RASTER;       if {$doResample} {          set oldNumCols [FME_GetAttribute _num_columns];          set oldNumRows [FME_GetAttribute _num_rows];          set oldSpacingX [FME_GetAttribute _spacing_x];          set oldSpacingY [FME_GetAttribute _spacing_y];          set kMinNumCells 32;          set kMaxNumCells 512;          set comment {             We will only resample if both dimensions are greater than the             minimum num cells, and at least one is greater than the maximum.          };          if {$oldNumRows > $kMinNumCells && $oldNumCols > $kMinNumCells && ($oldNumRows > $kMaxNumCells || $oldNumCols > $kMaxNumCells)} {             set newSpacingX 1.0;             set newSpacingY 1.0;             if {$oldNumRows > $oldNumCols} {                set comment {                   If we have more rows than columns, we need to choose a spacing                   that reduces the number of rows to the maximum we've chosen.                };                set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMaxNumCells];                set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];                set comment {                   Now we need to check if doing this will result in the columns                   going below the minimum. If so, choose the spacing such that                   we only go down to the minimum (and not past).                };                set newNumCols [expr $oldNumCols * $oldSpacingX / $newSpacingX];                if {$newNumCols < $kMinNumCells}                {                   set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMinNumCells];                   set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];                };             }             else {                set comment {                   This is identical to the above case, except the roles of                   rows and cols are reversed.                };                set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMaxNumCells];                set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];                set newNumRows [expr $oldNumRows * $oldSpacingY / $newSpacingY];                if {$newNumRows < $kMinNumCells}                {                   set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMinNumCells];                   set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];                };             };             FME_Execute ResampleRaster CELL_SIZE $newSpacingX $newSpacingY NearestNeighbor;          };       }       elseif {$doSubset} {          set comment {             Get the value of some strings that may be attributes or constants.             Note that we pass in the attribute prefix we're using, because if             one does turn out to be an attribute, it won't actually be the exact             name in the string (since we renamed all our attributes above).          };          set rasterNumRows [FME_GetAttribute _num_rows];          set rasterNumCols [FME_GetAttribute _num_columns];          set comment {             Only do subsetting if the specified start position is actually             within the raster.          };          if {$subsetStartRow < $rasterNumRows && $subsetStartCol < $rasterNumCols}          {             set comment {                Now bound the subset to the size of the raster, so that                we don't create padding.             };             if {[expr $subsetStartRow + $subsetNumRows] > $rasterNumRows}             {                set subsetNumRows [expr $rasterNumRows - $subsetStartRow];             };             if {[expr $subsetStartCol + $subsetNumCols] > $rasterNumCols}             {                set subsetNumCols [expr $rasterNumCols - $subsetStartCol];             };             FME_Execute SubsetRaster $subsetStartRow $subsetNumRows $subsetStartCol $subsetNumCols;          };       };       set comment {          Remove all the attributes added by @RasterProperties and remove the          prefix from the real attributes. We assume they all start with an          underscore.       };       FME_Execute RemoveAttributes fme_regexp_match {^_};       foreach oldName $allNames {          set newName $kAttrPrefix;          append newName $oldName;          FME_RenameAttribute $oldName $newName;       };    }; }
FACTORY_DEF * TeeFactory    FACTORY_NAME Failed_RasterSetterUpper    INPUT FEATURE_TYPE Failed___RasterFeatures___    OUTPUT FEATURE_TYPE __viewme__       @Tcl2("Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_prepareRaster {<Unused>} {<Unused>} {<Unused>} {<Unused>}")
# Now route all the features into the recorder, changing their
# feature type to the transformer name so that they view nicely
# Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_VIS_FEAT_TYPE changes the feature types
# of the features being visualized.

DEFAULT_MACRO Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_VIS_FEAT_TYPE Failed$(CATMAC)
DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs
DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO
# [PR#45549] The Data Inspector will limit the maximum number of features
# it reads on WIN32, so we will correspondingly limit the number of
# features we record here using the MAX_FEATURES_TO_RECORD directive.

FACTORY_DEF * RecorderFactory    FACTORY_NAME Failed_Recorder    INPUT FEATURE_TYPE __viewme__  _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer))    INPUT FEATURE_TYPE __viewme__  @FeatureType($(Failed_89f92637_be2b_4c4f_9a5f_f5e227d301042_VIS_FEAT_TYPE))    FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)"    CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)"    INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)"    FSC_SCHEMA OBJECTID,varchar<openparen>255<closeparen>,GlobalID,varchar<openparen>255<closeparen>,OWNERNM1,varchar<openparen>255<closeparen>,OWNERNM2,varchar<openparen>255<closeparen>,PSTLADDRESS,varchar<openparen>255<closeparen>,PSTLCITY,varchar<openparen>255<closeparen>,PSTLPROV,varchar<openparen>255<closeparen>,INTSTATE,varchar<openparen>255<closeparen>,INTPSTLCD,varchar<openparen>255<closeparen>,COUNTRY,varchar<openparen>255<closeparen>,REPRESENT,varchar<openparen>255<closeparen>,STATUS,varchar<openparen>255<closeparen>,LASTUPDATE,varchar<openparen>255<closeparen>,LASTEDITOR,varchar<openparen>255<closeparen>,POSTALCODE,varchar<openparen>255<closeparen>    MODE RECORD    RECORD_DIRECTLY_TO_DISK YES    MAX_FEATURES_TO_RECORD WIN32 2000000

# -------------------------------------------------------------------------

# Set the directive to add all the meta-attributes to the features.
# We do this so users see all possible information in the viewed
# features.

READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
# Assumption is that the workspace temp dir has been already set and created.  See controldefs.cpp - ControlDefs::writeVisualizerTempDir
DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [         set grpByAttrs {};         if { [string length $grpByAttrs] > 0 } {             if { [string first "@EvaluateExpression" $grpByAttrs] == 0 } {                 puts "MACRO CATMAC _$grpByAttrs" ;             } else {                set catter "" ;                set comma "" ;                foreach attr $grpByAttrs {                    set catter "$catter$comma@Value(\"$attr\")" ;                    set comma ",_," ;                } ;                puts "MACRO CATMAC _@Concatenate($catter)" ;             }         }         else {             puts "MACRO CATMAC " ;         };         set safeName "[regsub -all {[^a-zA-Z0-9]} {Passed} _]_[expr round(rand() * 1000000)]_[clock clicks  -milliseconds]";         puts "MACRO SAFE_FFS_NAME $safeName";         ]
# Make the temporary directory that the FFS files will live in.
FACTORY_DEF * CreationFactory      FACTORY_NAME Passed_DirCreator      OUTPUT FEATURE_TYPE __nukeme__          @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}")
FACTORY_DEF * TeeFactory    FACTORY_NAME Passed_DirCreatorCleanerUpper    INPUT FEATURE_TYPE __nukeme__
# Send raster, point cloud and vector features down different paths to prepare
# them for viewing

FACTORY_DEF * TestFactory    FACTORY_NAME Passed_FeatureDirector    INPUT  FEATURE_TYPE SpatialFilter_PASSED    TEST &fme_type == "fme_raster"    OUTPUT FAILED FEATURE_TYPE Passed___NotRasterFeatures___    OUTPUT PASSED FEATURE_TYPE Passed___RasterFeatures___
FACTORY_DEF * TestFactory    FACTORY_NAME Passed___FeatureDirector1    INPUT FEATURE_TYPE Passed___NotRasterFeatures___    TEST &fme_type == "fme_point_cloud"    OUTPUT FAILED FEATURE_TYPE Passed___VectorFeatures___    OUTPUT PASSED FEATURE_TYPE Passed___PointCloudFeatures___
# Vector features simply may get their colors overridden

FACTORY_DEF * TeeFactory    FACTORY_NAME Passed_VectorSetterUpper    INPUT FEATURE_TYPE Passed___VectorFeatures___    OUTPUT FEATURE_TYPE __viewme__
# Point Cloud Features Might Need to be thinned

# Note that we don't call the ThinPointCloud function directly, but rather
# do it through TCL. This should allow this transformer to be used with a
# Desktop license, even though ThinPointCloud requires Professional.

Tcl2 proc Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_thinPointCloud {} {    if {[string equal {NO_THINNING} {KEEPNPOINT}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {MAXNUMPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {FIRSTNPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {LASTNPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }; }
FACTORY_DEF * TeeFactory    FACTORY_NAME Passed___PointCloudThinner    INPUT FEATURE_TYPE Passed___PointCloudFeatures___    OUTPUT FEATURE_TYPE __viewme__       @Tcl2("Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_thinPointCloud")
Tcl2 proc Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_prepareRaster {subsetStartRow subsetNumRows subsetStartCol subsetNumCols} {    set useDI [string equal -nocase {$(FME_VIEWER_APP)} {fmedatainspector}];    if {!$useDI} {       FME_Execute ApplyRasterRotation BILINEAR;    };    set doResample [string equal {NoReduction} {Resample}];    set doSubset [string equal {NoReduction} {Subset}];    set doBounds [string equal {NoReduction} {BoundingBoxOnly}];    if {$doBounds}  {       FME_Execute GeometryType fme_polygon;    }    elseif {$doResample || $doSubset} {       set comment {          First, we need to prefix all the attributes. This is done because          we are going to call @RasterProperties, and we want to make sure          it doesn't overwrite any existing attributes.       };       set kAttrPrefix ".";       set allNames [FME_AttributeNames];       foreach oldName $allNames {          set newName $kAttrPrefix;          append newName $oldName;          FME_RenameAttribute $newName $oldName;       };       FME_Execute RasterProperties RASTER;       if {$doResample} {          set oldNumCols [FME_GetAttribute _num_columns];          set oldNumRows [FME_GetAttribute _num_rows];          set oldSpacingX [FME_GetAttribute _spacing_x];          set oldSpacingY [FME_GetAttribute _spacing_y];          set kMinNumCells 32;          set kMaxNumCells 512;          set comment {             We will only resample if both dimensions are greater than the             minimum num cells, and at least one is greater than the maximum.          };          if {$oldNumRows > $kMinNumCells && $oldNumCols > $kMinNumCells && ($oldNumRows > $kMaxNumCells || $oldNumCols > $kMaxNumCells)} {             set newSpacingX 1.0;             set newSpacingY 1.0;             if {$oldNumRows > $oldNumCols} {                set comment {                   If we have more rows than columns, we need to choose a spacing                   that reduces the number of rows to the maximum we've chosen.                };                set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMaxNumCells];                set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];                set comment {                   Now we need to check if doing this will result in the columns                   going below the minimum. If so, choose the spacing such that                   we only go down to the minimum (and not past).                };                set newNumCols [expr $oldNumCols * $oldSpacingX / $newSpacingX];                if {$newNumCols < $kMinNumCells}                {                   set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMinNumCells];                   set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];                };             }             else {                set comment {                   This is identical to the above case, except the roles of                   rows and cols are reversed.                };                set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMaxNumCells];                set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];                set newNumRows [expr $oldNumRows * $oldSpacingY / $newSpacingY];                if {$newNumRows < $kMinNumCells}                {                   set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMinNumCells];                   set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];                };             };             FME_Execute ResampleRaster CELL_SIZE $newSpacingX $newSpacingY NearestNeighbor;          };       }       elseif {$doSubset} {          set comment {             Get the value of some strings that may be attributes or constants.             Note that we pass in the attribute prefix we're using, because if             one does turn out to be an attribute, it won't actually be the exact             name in the string (since we renamed all our attributes above).          };          set rasterNumRows [FME_GetAttribute _num_rows];          set rasterNumCols [FME_GetAttribute _num_columns];          set comment {             Only do subsetting if the specified start position is actually             within the raster.          };          if {$subsetStartRow < $rasterNumRows && $subsetStartCol < $rasterNumCols}          {             set comment {                Now bound the subset to the size of the raster, so that                we don't create padding.             };             if {[expr $subsetStartRow + $subsetNumRows] > $rasterNumRows}             {                set subsetNumRows [expr $rasterNumRows - $subsetStartRow];             };             if {[expr $subsetStartCol + $subsetNumCols] > $rasterNumCols}             {                set subsetNumCols [expr $rasterNumCols - $subsetStartCol];             };             FME_Execute SubsetRaster $subsetStartRow $subsetNumRows $subsetStartCol $subsetNumCols;          };       };       set comment {          Remove all the attributes added by @RasterProperties and remove the          prefix from the real attributes. We assume they all start with an          underscore.       };       FME_Execute RemoveAttributes fme_regexp_match {^_};       foreach oldName $allNames {          set newName $kAttrPrefix;          append newName $oldName;          FME_RenameAttribute $oldName $newName;       };    }; }
FACTORY_DEF * TeeFactory    FACTORY_NAME Passed_RasterSetterUpper    INPUT FEATURE_TYPE Passed___RasterFeatures___    OUTPUT FEATURE_TYPE __viewme__       @Tcl2("Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_prepareRaster {<Unused>} {<Unused>} {<Unused>} {<Unused>}")
# Now route all the features into the recorder, changing their
# feature type to the transformer name so that they view nicely
# Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_VIS_FEAT_TYPE changes the feature types
# of the features being visualized.

DEFAULT_MACRO Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_VIS_FEAT_TYPE Passed$(CATMAC)
DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs
DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO
# [PR#45549] The Data Inspector will limit the maximum number of features
# it reads on WIN32, so we will correspondingly limit the number of
# features we record here using the MAX_FEATURES_TO_RECORD directive.

FACTORY_DEF * RecorderFactory    FACTORY_NAME Passed_Recorder    INPUT FEATURE_TYPE __viewme__  _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer))    INPUT FEATURE_TYPE __viewme__  @FeatureType($(Passed_0aea0235_8354_4dad_b6c4_eb63096dba2c2_VIS_FEAT_TYPE))    FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)"    CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)"    INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)"    FSC_SCHEMA OBJECTID,varchar<openparen>255<closeparen>,GlobalID,varchar<openparen>255<closeparen>,OWNERNM1,varchar<openparen>255<closeparen>,OWNERNM2,varchar<openparen>255<closeparen>,PSTLADDRESS,varchar<openparen>255<closeparen>,PSTLCITY,varchar<openparen>255<closeparen>,PSTLPROV,varchar<openparen>255<closeparen>,INTSTATE,varchar<openparen>255<closeparen>,INTPSTLCD,varchar<openparen>255<closeparen>,COUNTRY,varchar<openparen>255<closeparen>,REPRESENT,varchar<openparen>255<closeparen>,STATUS,varchar<openparen>255<closeparen>,LASTUPDATE,varchar<openparen>255<closeparen>,LASTEDITOR,varchar<openparen>255<closeparen>,POSTALCODE,varchar<openparen>255<closeparen>,_predicate,varchar<openparen>255<closeparen>    MODE RECORD    RECORD_DIRECTLY_TO_DISK YES    MAX_FEATURES_TO_RECORD WIN32 2000000

# -------------------------------------------------------------------------

# Set the directive to add all the meta-attributes to the features.
# We do this so users see all possible information in the viewed
# features.

READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
# Assumption is that the workspace temp dir has been already set and created.  See controldefs.cpp - ControlDefs::writeVisualizerTempDir
DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [         set grpByAttrs {};         if { [string length $grpByAttrs] > 0 } {             if { [string first "@EvaluateExpression" $grpByAttrs] == 0 } {                 puts "MACRO CATMAC _$grpByAttrs" ;             } else {                set catter "" ;                set comma "" ;                foreach attr $grpByAttrs {                    set catter "$catter$comma@Value(\"$attr\")" ;                    set comma ",_," ;                } ;                puts "MACRO CATMAC _@Concatenate($catter)" ;             }         }         else {             puts "MACRO CATMAC " ;         };         set safeName "[regsub -all {[^a-zA-Z0-9]} {BuildingFootprints} _]_[expr round(rand() * 1000000)]_[clock clicks  -milliseconds]";         puts "MACRO SAFE_FFS_NAME $safeName";         ]
# Make the temporary directory that the FFS files will live in.
FACTORY_DEF * CreationFactory      FACTORY_NAME BuildingFootprints_DirCreator      OUTPUT FEATURE_TYPE __nukeme__          @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}")
FACTORY_DEF * TeeFactory    FACTORY_NAME BuildingFootprints_DirCreatorCleanerUpper    INPUT FEATURE_TYPE __nukeme__
# Send raster, point cloud and vector features down different paths to prepare
# them for viewing

FACTORY_DEF * TestFactory    FACTORY_NAME BuildingFootprints_FeatureDirector    INPUT  FEATURE_TYPE BuildingFootprints_ACAD_1_1_l2ym1pBvrbY=    TEST &fme_type == "fme_raster"    OUTPUT FAILED FEATURE_TYPE BuildingFootprints___NotRasterFeatures___    OUTPUT PASSED FEATURE_TYPE BuildingFootprints___RasterFeatures___
FACTORY_DEF * TestFactory    FACTORY_NAME BuildingFootprints___FeatureDirector1    INPUT FEATURE_TYPE BuildingFootprints___NotRasterFeatures___    TEST &fme_type == "fme_point_cloud"    OUTPUT FAILED FEATURE_TYPE BuildingFootprints___VectorFeatures___    OUTPUT PASSED FEATURE_TYPE BuildingFootprints___PointCloudFeatures___
# Vector features simply may get their colors overridden

FACTORY_DEF * TeeFactory    FACTORY_NAME BuildingFootprints_VectorSetterUpper    INPUT FEATURE_TYPE BuildingFootprints___VectorFeatures___    OUTPUT FEATURE_TYPE __viewme__
# Point Cloud Features Might Need to be thinned

# Note that we don't call the ThinPointCloud function directly, but rather
# do it through TCL. This should allow this transformer to be used with a
# Desktop license, even though ThinPointCloud requires Professional.

Tcl2 proc BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_thinPointCloud {} {    if {[string equal {NO_THINNING} {KEEPNPOINT}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {MAXNUMPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {FIRSTNPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }    elseif {[string equal {NO_THINNING} {LASTNPOINTS}]}    {       FME_Execute ThinPointCloud NO_THINNING "\"<Unused>\"";    }; }
FACTORY_DEF * TeeFactory    FACTORY_NAME BuildingFootprints___PointCloudThinner    INPUT FEATURE_TYPE BuildingFootprints___PointCloudFeatures___    OUTPUT FEATURE_TYPE __viewme__       @Tcl2("BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_thinPointCloud")
Tcl2 proc BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_prepareRaster {subsetStartRow subsetNumRows subsetStartCol subsetNumCols} {    set useDI [string equal -nocase {$(FME_VIEWER_APP)} {fmedatainspector}];    if {!$useDI} {       FME_Execute ApplyRasterRotation BILINEAR;    };    set doResample [string equal {NoReduction} {Resample}];    set doSubset [string equal {NoReduction} {Subset}];    set doBounds [string equal {NoReduction} {BoundingBoxOnly}];    if {$doBounds}  {       FME_Execute GeometryType fme_polygon;    }    elseif {$doResample || $doSubset} {       set comment {          First, we need to prefix all the attributes. This is done because          we are going to call @RasterProperties, and we want to make sure          it doesn't overwrite any existing attributes.       };       set kAttrPrefix ".";       set allNames [FME_AttributeNames];       foreach oldName $allNames {          set newName $kAttrPrefix;          append newName $oldName;          FME_RenameAttribute $newName $oldName;       };       FME_Execute RasterProperties RASTER;       if {$doResample} {          set oldNumCols [FME_GetAttribute _num_columns];          set oldNumRows [FME_GetAttribute _num_rows];          set oldSpacingX [FME_GetAttribute _spacing_x];          set oldSpacingY [FME_GetAttribute _spacing_y];          set kMinNumCells 32;          set kMaxNumCells 512;          set comment {             We will only resample if both dimensions are greater than the             minimum num cells, and at least one is greater than the maximum.          };          if {$oldNumRows > $kMinNumCells && $oldNumCols > $kMinNumCells && ($oldNumRows > $kMaxNumCells || $oldNumCols > $kMaxNumCells)} {             set newSpacingX 1.0;             set newSpacingY 1.0;             if {$oldNumRows > $oldNumCols} {                set comment {                   If we have more rows than columns, we need to choose a spacing                   that reduces the number of rows to the maximum we've chosen.                };                set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMaxNumCells];                set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];                set comment {                   Now we need to check if doing this will result in the columns                   going below the minimum. If so, choose the spacing such that                   we only go down to the minimum (and not past).                };                set newNumCols [expr $oldNumCols * $oldSpacingX / $newSpacingX];                if {$newNumCols < $kMinNumCells}                {                   set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMinNumCells];                   set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];                };             }             else {                set comment {                   This is identical to the above case, except the roles of                   rows and cols are reversed.                };                set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMaxNumCells];                set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];                set newNumRows [expr $oldNumRows * $oldSpacingY / $newSpacingY];                if {$newNumRows < $kMinNumCells}                {                   set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMinNumCells];                   set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];                };             };             FME_Execute ResampleRaster CELL_SIZE $newSpacingX $newSpacingY NearestNeighbor;          };       }       elseif {$doSubset} {          set comment {             Get the value of some strings that may be attributes or constants.             Note that we pass in the attribute prefix we're using, because if             one does turn out to be an attribute, it won't actually be the exact             name in the string (since we renamed all our attributes above).          };          set rasterNumRows [FME_GetAttribute _num_rows];          set rasterNumCols [FME_GetAttribute _num_columns];          set comment {             Only do subsetting if the specified start position is actually             within the raster.          };          if {$subsetStartRow < $rasterNumRows && $subsetStartCol < $rasterNumCols}          {             set comment {                Now bound the subset to the size of the raster, so that                we don't create padding.             };             if {[expr $subsetStartRow + $subsetNumRows] > $rasterNumRows}             {                set subsetNumRows [expr $rasterNumRows - $subsetStartRow];             };             if {[expr $subsetStartCol + $subsetNumCols] > $rasterNumCols}             {                set subsetNumCols [expr $rasterNumCols - $subsetStartCol];             };             FME_Execute SubsetRaster $subsetStartRow $subsetNumRows $subsetStartCol $subsetNumCols;          };       };       set comment {          Remove all the attributes added by @RasterProperties and remove the          prefix from the real attributes. We assume they all start with an          underscore.       };       FME_Execute RemoveAttributes fme_regexp_match {^_};       foreach oldName $allNames {          set newName $kAttrPrefix;          append newName $oldName;          FME_RenameAttribute $oldName $newName;       };    }; }
FACTORY_DEF * TeeFactory    FACTORY_NAME BuildingFootprints_RasterSetterUpper    INPUT FEATURE_TYPE BuildingFootprints___RasterFeatures___    OUTPUT FEATURE_TYPE __viewme__       @Tcl2("BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_prepareRaster {<Unused>} {<Unused>} {<Unused>} {<Unused>}")
# Now route all the features into the recorder, changing their
# feature type to the transformer name so that they view nicely
# BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_VIS_FEAT_TYPE changes the feature types
# of the features being visualized.

DEFAULT_MACRO BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_VIS_FEAT_TYPE BuildingFootprints$(CATMAC)
DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs
DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO
# [PR#45549] The Data Inspector will limit the maximum number of features
# it reads on WIN32, so we will correspondingly limit the number of
# features we record here using the MAX_FEATURES_TO_RECORD directive.

FACTORY_DEF * RecorderFactory    FACTORY_NAME BuildingFootprints_Recorder    INPUT FEATURE_TYPE __viewme__  _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer))    INPUT FEATURE_TYPE __viewme__  @FeatureType($(BuildingFootprints_086f31a2_2ee9_41be_92cd_bda622c6c3e02_VIS_FEAT_TYPE))    FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)"    CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)"    INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)"    FSC_SCHEMA    MODE RECORD    RECORD_DIRECTLY_TO_DISK YES    MAX_FEATURES_TO_RECORD WIN32 2000000

# -------------------------------------------------------------------------

FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *   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__

# -------------------------------------------------------------------------

FACTORY_DEF * CreationFactory   CREATE_AT_END   OUTPUT FEATURE_TYPE __NUKEME__   @TCL("if [file exists {$(WORKSPACE_TEMP_DIR)}] {set files [glob -nocomplain -directory  {$(WORKSPACE_TEMP_DIR)} -tails *.ffs];   if {[llength $files] == 1} {    set theFile {$(WORKSPACE_TEMP_DIR)/};   append theFile [lindex $files 0];   eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -f FFS $theFile & \175;  } elseif { [llength $files] == 0 } {  catch { file delete -force {$(WORKSPACE_TEMP_DIR)} };  } else {  set filesNoExt {}; set lastfile {}; foreach {fileName} [lsort $files] { set fileNoExt [string trimright $fileName {.ffs}]; if [regexp {(.*)_[0-9]*$} $fileNoExt wholething fileNoExtBase] {  if { $fileNoExtBase == $lastfile } { continue } }; set lastfile $fileNoExt; lappend filesNoExt $fileNoExt };  eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -d {$(WORKSPACE_TEMP_DIR)} -a ffs -f FFS $filesNoExt & \175; }; }; ")
FACTORY_DEF * TeeFactory   INPUT FEATURE_TYPE __NUKEME__
