Пример #1
0
        /// <summary>
        /// Opens an existing GSA file. Email address and server address is needed for logging purposes.
        /// </summary>
        /// <param name="path">Absolute path to GSA file</param>
        /// <param name="emailAddress">User email address</param>
        /// <param name="serverAddress">Speckle server address</param>
        public void OpenFile(string path, bool showWindow = true, object gsaInstance = null)
        {
            ExecuteWithLock(() =>
            {
                if (GSAObject != null)
                {
                    try
                    {
                        GSAObject.Close();
                    }
                    catch { }
                    GSAObject = null;
                }

                GSAObject = (IComAuto)gsaInstance ?? new ComAuto();

                GSAObject.LogFeatureUsage("api::specklegsa::" +
                                          FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location)
                                          .ProductVersion + "::GSA " + GSAObject.VersionString()
                                          .Split(new char[] { '\n' })[0]
                                          .Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries)[1]);

                GSAObject.Open(path);
                FilePath = path;
                GSAObject.SetLocale(Locale.LOC_EN_GB);

                if (showWindow)
                {
                    GSAObject.DisplayGsaWindow(true);
                }
            });
        }