従来のCADでは不可能でしたがRevitを使えばユーザーがどのような作業を行っているか認知きます。その場面で何をやるべきか設計者にアドバイスすることもできるでしょう。これによって担当者の見落としや知識不足を補うことができます。組織に蓄積されているナレッジを活用することができます
ユーザーが開いているビューを把握する
DocumentからActiveViewを取得します。それがView3D、ViewSection、ViewSheet、ViewDrafting、どれなのかで種類がわかります。ここではそれを表示しています。もちろんユーザーはわかっているので知らせる必要はありませんが、このサンプルの動作確認のためだけです。
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Autodesk.Revit.DB.Document doc = uidoc.Document;
Autodesk.Revit.DB.View view = doc.ActiveView;
//ビューの種類を判断する
String prompt = "現在作業中のビュー:\n";
if (view is Autodesk.Revit.DB.View3D)
{
prompt += "3Dビュー";
}
else if (view is Autodesk.Revit.DB.ViewSection)
{
prompt += "断面図ビュー";
}
else if (view is Autodesk.Revit.DB.ViewSheet)
{
prompt += "シートビュー";
}
else if (view is Autodesk.Revit.DB.ViewDrafting)
{
prompt += "製図ビュー";
}
else
{
prompt += "プラン他 \nビューの名前= " + view.Name;
}
TaskDialog.Show("ビュー", prompt);
アドバイス表示用のフォームを用意
アドバイスを表示するためのフォームForm1を用意しておきます

その場面で必要なアドバイスをする
そのフォームにアドバイス内容を代入します。
この例はシンプルにするために”動力コンセント”という文字が入っているビューで作業していたら、そのテキストボックスに色々な注意点を入れて表示しています。
Form1 form1 = new Form1();
if (view.Name.Contains("動力コンセント"))
{
form1.SetLabel("動力コンセント");
form1.SetTextbox("動力コンセント平面図では以下の点を確認しましょう。\r\n" +
"・電源種別は正しいか\r\n" +
"・容量は正しいか\r\n" +
"・機械設備と機器記号など情報は合っているか\r\n" +
"・正しいファミリ、タイプが選択されているか\r\n" +
"・盤は正しいか\r\n" +
"・距離が長い回路は電線サイズアップしたか\r\n");
}
form1.ShowDialog();
return Result.Succeeded;
まとめ
ここでは非常にプリミティブな例を示しましたが、Excel形式のチェックリストを連携させたり、参考資料Webページにリンクしたり、リレーショナルデータベースと連携させたりすれば本格的なシステムも可能だと思います。
ご興味のある方はこちらのコードを参照ください。
githubはこちらhttps://github.com/katsumikawasaki/ViewOperation.git
(ご注意)ここに掲載したコードはひとつの技術的な解法を示すサンプルです。実践的な用途に耐えうる堅牢性や品質等は備えていません。コードの実行結果について当組織は一切責任を負いませんので、参照、利用はご自身の責任でお願いします。
書籍もぜひご覧ください

コメントを残す