Excel 스프레드 시트를 Revit의 Windows 양식 테이블로 표시하려고합니다. VisualStudio에서 코드를 작성한 후 Windows 양식을 작성했습니다. (I 경로 및 시트 번호를 입력하도록)하고 있음을 실행함으로써, 윈도우 형태를 열고 도시 표 형식 데이터를 엑셀`Excel 정보를 표시하는 방법 Revit에서 Revit API 및 Windows 양식을 Visual Studio로 표시하는 방법
스페이스 ShowDataWindowsForm { 공용 부분 Form1 클래스 : 폼 { 공개를 Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
{
string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
textBoxPath.Text + ";Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM
[" + textBoxSheet.Text + "$]", conn);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
}
는 그럼, 외부 명령을 만든위한 윈도우 양식을 추가하고 정확하게 동일한 프로세스를했고,이 외부 명령에 대한 코드입니다
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.ReadOnly)]
공용 클래스 iShowDataWindowsForm : IExternalCommand { 정적 AddInId appId = 새 AddInId (새 Guid ("DB98294F-89D9-4EAE-A990-63A0694F91CC")); 공공 결과 실행 (ExternalCommandData commandData, 심판 문자열 메시지, ELEMENTSET ELEMENTSET) 는 {
using (Form1 thisform = new Form1())
{
thisform.ShowDialog();
}
return Result.Succeeded;
}
내가 REVIT를 열고 플러그인을 실행하면 내 문제는, 그것은 윈도우 폼을 열고 비주얼 스튜디오에서 같은, I 경로 및 시트 번호를 입력하지만,보기 버튼을 클릭하면 Revit이 중단되고 닫힙니다. 누구든지 나를 도울 수 있으면 고맙습니다. 이 그림은 Visual Studio에서 작동하는 방식을 보여 주지만 Revit에서는 충돌이 발생합니다. See picture
난 그냥 코드 자체에 경로와 시트 번호를 넣어, 지금은 가만히 Visual Studio에서보기 하단을 클릭, 그러나로 일하고 것은하지 창 양식에 대한 REVIT 최종 코드의 충돌` 네임 스페이스 ExcelVisualStudio { 공용 부분 클래스 Form1 : 양식 { public Form1() { InitializeComponent();
private void button1_Click(object sender, EventArgs e)
{
string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\farshidmoosavi\Desktop\Schedule3.xls" + ";Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM [" + "Sheet1" + "$]", conn);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
} 는` 나는 코드를 디버깅하고 나는이 충돌하는 프로그램을 일으키는 원인이되는 오류가 발견 : 비 사용자 코드 'System.Data.Common.DbDataAdapter을 통해 스테핑 :에 단계. ' 'Revit.exe '(Managed (v4.0.30319)) :'C : \ windows \ Microsoft.Net \ assembly \ GAC_64 \ System.Transactions \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Transactions.dll ' , 로딩 기호를 건너 뛰었습니다. 모듈이 최적화되고 디버거 옵션 'Just My Code'가 활성화됩니다. System.Data.dll에서 'System.AccessViolationException'예외가 throw되었습니다.'Revit.exe : Managed (v4.0.30319)'프로그램이 -1073741819 (0xc0000005) '액세스 위반'코드로 종료되었습니다.아직도 해결 방법을 모릅니다.