Innovyze-ICM-Libraries icon indicating copy to clipboard operation
Innovyze-ICM-Libraries copied to clipboard

Methods which are **ICM Exchange only** are not documented as such

Open sancarn opened this issue 7 years ago • 2 comments

Many methods are available only in ICM exchange, however are documented as available in the UI mode.

Current ruby automation method:

def try(object,method,args)
	begin
		object.method(method).call(*args)
	rescue Exception => e
                message = e.to_s  #In general if you get a parameter type error, the method is likely runnable in the UI.
                if (message =="The method cannot be run from the user interface")
                    message = "ICMExchange Only"
                elsif message=="The method is for Innovyze internal use only, please check your licence."
                    message = "Innovyze Private method"
                elsif message == "The method cannot be run from InfoWorks ICM"
                    message = "The method cannot be run from InfoWorks ICM"
                end
		puts object.to_s + "." +  method.to_s.ljust(40) + ":\t" + message
	end
end

req = 1; rest=1
try(WSApplication,:add_ons_folder									,[])
try(WSApplication,:compare_binary_results_files						,[req,req,req,req])
try(WSApplication,:create											,[req])
try(WSApplication,:create_transportable								,[req])

Some Examples:

WSApplication.compare_binary_results_files            :	Innovyze Private method
WSApplication.create                                  :	ICMExchange Only
WSApplication.create_transportable                    :	ICMExchange Only
WSApplication.delete_temp_files?                      :	Innovyze Private method
WSApplication.delete_temp_files=                      :	Innovyze Private method
WSApplication.log_event                               :	Both UI and ICMExchange
WSApplication.open                                    :	ICMExchange Only
WSApplication.override_user_unit                      :	ICMExchange Only
WSApplication.override_user_units                     :	ICMExchange Only
WSApplication.override_working_folder                 :	ICMExchange Only
WSApplication.set_exit_code                           :	ICMExchange Only
WSApplication.set_local_root                          :	ICMExchange Only
WSApplication.set_working_folder                      :	ICMExchange Only
WSApplication.set_results_folder                      :	ICMExchange Only
WSApplication.post_debug                              :	Innovyze Private method
WSApplication.connect_local_agent                     :	ICMExchange Only
WSApplication.launch_sims                             :	ICMExchange Only
WSApplication.use_arcgis_desktop_licence              :	ICMExchange Only
WSApplication.wait_for_jobs                           :	ICMExchange Only
WSApplication.cancel_job                              :	ICMExchange Only
WSApplication.file_dialog                             :	UI Only
WSApplication.folder_dialog                           :	UI Only
WSApplication.input_box                               :	UI Only
WSApplication.message_box                             :	UI Only
WSApplication.open_text_view                          :	UI Only
WSApplication.prompt                                  :	UI Only
WSApplication.scalars                                 :	UI Only
WSDatabase.copy_into_root                             :	ICMExchange Only
WSDatabase.custom_schema                              :	ICMExchange Only
WSDatabase.file_root                                  :	ICMExchange Only
WSDatabase.find_model_object                          :	Both UI and ICMExchange
WSDatabase.find_root_model_object                     :	Both UI and ICMExchange
WSDatabase.list_read_write_run_fields                 :	ICMExchange Only
WSDatabase.model_object                               :	Both UI and ICMExchange
WSDatabase.model_object_collection                    :	Both UI and ICMExchange
WSDatabase.model_object_from_type_and_guid            :	ICMExchange Only
WSDatabase.model_object_from_type_and_id              :	Both UI and ICMExchange
WSDatabase.new_network_name                           :	ICMExchange Only
WSDatabase.scripting_name_of_type                     :	ICMExchange Only
WSDatabase.new_model_object                           :	ICMExchange Only
WSOpenNetwork.add_scenario							  :	Both UI and ICMExchange
WSOpenNetwork.befdss_export                           :	The method cannot be run from InfoWorks ICM
WSOpenNetwork.befdss_import_cctv                      :	The method cannot be run from InfoWorks ICM
WSOpenNetwork.befdss_import_manhole_surveys           :	The method cannot be run from InfoWorks ICM
WSOpenNetwork.cctv_standard                           :	The method cannot be run from InfoWorks ICM
WSOpenNetwork.close                                   :	ICMExchange Only
WSOpenNetwork.commit_bypassing_validation             :	ICMExchange Only
WSOpenNetwork.csv_export                              :	Both UI and ICMExchange
WSOpenNetwork.csv_import                              :	Both UI and ICMExchange
WSOpenNetwork.current_scenario=                       :	Both UI and ICMExchange
WSOpenNetwork.delete_scenario                         :	Both UI and ICMExchange
WSOpenNetwork.each                                    :	Both UI and ICMExchange
WSOpenNetwork.field_choices                           :	Both UI and ICMExchange
WSOpenNetwork.field_choice_descriptions               :	Both UI and ICMExchange
WSOpenNetwork.field_names                             :	Both UI and ICMExchange
WSOpenNetwork.get_projection_string                   :	Both UI and ICMExchange
WSOpenNetwork.get_projection_bounds                   :	Both UI and ICMExchange
WSOpenNetwork.get_string_pref                         :	Innovyze Private method
WSOpenNetwork.geometry_mbr                            :	Innovyze Private method
WSOpenNetwork.intersect                               :	Innovyze Private method
WSOpenNetwork.load_selection                          :	Both UI and ICMExchange
WSOpenNetwork.mhsurvey_standard                       :	The method cannot be run from InfoWorks ICM
WSOpenNetwork.new_row_object                          :	Both UI and ICMExchange
WSOpenNetwork.objects_in_polygon                      :	Both UI and ICMExchange
WSOpenNetwork.odic_import                             :	ICMExchange Only
WSOpenNetwork.odic_import_ex                          :	Both UI and ICMExchange
WSOpenNetwork.odec_export                             :	ICMExchange Only
WSOpenNetwork.odec_export_ex                          :	Both UI and ICMExchange
WSOpenNetwork.open_mo_layer_list                      :	Innovyze Private method
WSOpenNetwork.put_string_pref                         :	Innovyze Private method
WSOpenNetwork.row_object                              :	Both UI and ICMExchange
WSOpenNetwork.row_objects                             :	Both UI and ICMExchange
...
WSOpenNetwork.run_inference                           :	???? --> Error: network is not an asset network
WSOpenNetwork.run_stored_query_object                 :	???? --> Error 12 : No Such Record : (object_id=1)

sancarn avatar Jan 26 '18 21:01 sancarn

I created a ruby script to determine this from the UI Mode. Please see that GISST for the results of the script as well as a work in progress script, which I will be using in the future.

sancarn avatar Jan 27 '18 17:01 sancarn

Full list of ICM Exceptions extracted from IWActions.dll for InfoWorks ICM 7.5:

"The method cannot be run from InfoNet Exchange or ICM Exchange"
"The method cannot be run from InfoWorks ICM"
"The method cannot be run from InfoNet"
"The method cannot be run from the user interface"
"The method is no longer supported, check the documentation for alternatives."
"The method is for Innovyze internal use only, please check your licence."

sancarn avatar Jul 11 '18 07:07 sancarn