原创 Revit二次開發_軸網快速標註

通過Revit二次開發實現對平行軸網的快速標註。交互操作是框選軸網->點選尺寸標註出現的位置->生成兩道尺寸標註。     要達到設想的結果一些地方需要特殊考慮: 框選操作容易誤選軸網,起碼要把與所選軸網不平行的軸網過濾出來。選用了第二

原创 Revit二次開發_重複執行命令直至使用Esc結束

Revit有部分創建元素的命令有一個特點,就是創建命令執行完後會重新調用這個命令,除非使用Esc或者右鍵取消這個命令。例如創建門,常規交互是這樣的:點擊門按鈕->進入選擇狀態->選擇一面牆->門族被創建->重新進入選擇狀態。 如果編寫的插

原创 Python_定時自動發送郵件

雖然主流郵箱都可以定時發送郵件,但還是嘗試用python寫了一個定時發送郵件的腳本,設定好一個發送時間後,可以按下面步驟將文件通過QQ郵箱發送出去。 文件的最後修改及最後訪問時間隨機調整爲發郵件前20~25分鐘; 文件超過10M或是一個文

原创 Revit二次開發_調用Revit的圖元創建界面創建圖元

RevitAPI中有許多特定圖元的創建方法,例如Wall.Create,Document.NewFamilyInstance等等,調用這些方法後會在文檔中直接創建出對應的圖元,但有時候希望使用Revit的創建界面進行圖元的創建:先點擊圖元

原创 Revit二次開發_項目文件分離

趕項目節點的時候覺得導圖紙、分離模型這種工作實在是太難受了,圖紙量大的時候即麻煩又容易出錯,於是通過二次開發的方法直接將導CAD、PDF、分離模型的工作整合成批量導出,並且自動放到對應的路徑。寫到分離模型的時候發現了一些API裏面不太友好

原创 Revit二次開發_末端點位修改檢查

這段時間一直在忙項目,加上過年休息了一段時間,重新接觸代碼的時候竟感到有點陌生,思緒也有點亂,看來狀態還是要慢慢調整回來呀。 因爲軟件及協同方式的原因,Revit相對Cad來說會更容易出現誤刪除元素的情況,這段時間做項目的時候出現了兩次電

原创 Revit宏的使用

Revit自帶的宏功能也是很強大的。我認爲宏功能有兩個比較大的優勢,一個是可以直接保存在項目文件中,即使將文件發送給其他人後,其他人不需要安裝其他工具也可以直接使用編寫好的宏功能;另外一個是對於一些簡單功能的開發或者進行簡單的可行性探究時

原创 Dynamo_圖紙序號簡單調整

最近接手的一個BIM項目,使用的Revit出圖。需要在原來的圖紙裏增加一些圖紙,但是由於原來的每張圖紙都有一個序號,增加圖紙意味着需要對所有序號重排,而圖紙量又比較大,於是使用Dynamo完成這個簡單的排序工作。 邏輯其實比較簡單,就是輸

原创 Python_簡單網絡爬蟲獲取網頁數據

寫了一個簡單的網絡爬蟲,用於獲取智聯招聘上一線及新一線城市所有與BIM相關的工作信息以便做一些數據分析。 首先通過chrome在智聯招聘上搜索BIM的職位,跳出頁面後ctrl+u查看網頁源代碼,然而並沒有找到當前頁面的職位信息。然後快捷鍵

原创 Excel_通過VBA高亮選擇單元格的行列

WPS有一個比較有意思的功能叫十字光標,就是可以亮顯選擇單元格的行列,數據量比較多的時候可以方便查看數據,可惜Excel原生並沒有類似的功能,網上搜索了一下,發現可以通過VBA完成類似的功能,便嘗試了一下。 思路是通過VBA獲得選擇區域的

原创 Revit二次開發_將數據導入Excel

有時需要將Revit模型的一些信息提取到Excel中進行處理或者是作爲記錄進行儲存,但也許是因爲Revit的數據結構相對複雜,並不支持直接將數據導出Excel,所以平時通過二次開發將信息輸出到Excel中。 常使用的輸出方法有三個,分別是

原创 Revit二次開發_通過改變族擴展名限制族的使用

使用SaveAs保存族文檔的時候嘗試將文件保存成其他後綴,發現保存出來的文件依然可以使用Revit打開,但會缺失一些功能: 1、文件不顯示縮略圖; 2、無法通過常規手段將族載入到項目中(例如拖拽文件到項目中、項目中的載入族、族中的載入到項

原创 Revit二次開發_WPF的使用

Revit中如果要獲取用戶輸入,除了Winform,還可以使用WPF。 在這裏記錄一個使用WPF編寫的簡單窗口例子。例子中讀取了Revit的自帶族庫路徑,然後根據族庫的結構生成樹狀列表,用戶可以在樹狀列表中選擇族載入到項目中。 不知爲何,

原创 Revit二次開發_利用射線法進行三維測量

Naviswork與桌子家的雲瀏覽器都有比較友好的三維測量工具,但Revit中想在三維中測量兩個物體之間的距離的時候實在是麻煩,於是想到通過二次開發來解決這個問題。Revit的Api中有一個ReferenceIntersector類,可以

原创 Dynamo_更換族類型

截止至Dynamo1.3.3版本,自帶的節點中似乎並沒有更換族的類型的節點,於是寫了一個更換族類型的Python節點。 實現方法非常簡單,就是通過調用RevitAPI的Element.ChangeTypeId()方法直接更換元素的類型。值