我正在尝试使用 LanguageTool API 在 Autodesk Revit 中实现房间名称的拼写检查。但是,当我运行脚本时,Revit 就会冻结。看来问题是在执行以下部分代码时开始的。
问题:
为什么当我运行此脚本时 Revit 冻结? 有没有更好的方法在 Revit 中对房间名称实施拼写检查? 关于让 Hunspell 使用 de_CH 语言环境有什么建议吗?
我感谢任何帮助或建议!
private async Task<(bool isCorrect, List<string> suggestions)> CheckSpelling(string word)
{
string url = $"https://api.languagetool.org/v2/check?text={word}&language=de-CH";
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
JObject json = JObject.Parse(responseBody);
var matches = json["matches"];
if (matches != null && matches.HasValues)
{
List<string> suggestions = new List<string>();
foreach (var match in matches)
{
var replacements = match["replacements"];
if (replacements != null && replacements.HasValues)
{
suggestions.AddRange(replacements.Select(r => r["value"].ToString()));
}
}
return (false, suggestions);
}
else
{
return (true, new List<string>());
}
}
}
这在很大程度上取决于您尝试运行此方法的上下文。请注意 Revit API 的以下基本原则:
您在上面分享的代码并未明确使用任何 Revit API 功能,afaict。
但是,
async
可能会也可能不会破坏执行上下文。如果没有更多背景,我无法判断。