Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
sancarn opened this issue Jan 26, 2018 · 2 comments
Open

Comments

@sancarn
Copy link
Owner

sancarn commented Jan 26, 2018

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
Copy link
Owner Author

sancarn commented Jan 27, 2018

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
Copy link
Owner Author

sancarn commented Jul 11, 2018

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."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant