Revit二次開發之十七 深入解析Revit介面

2022-06-04 09:42:09 字數 1982 閱讀 4490

同理可知道,其定義

二、文件document

1、資料承載物件:autodesk.revit.db.document

在任何三維軟體,不得不說乙個重要的東西,就是資料,我們所有的三維呈現必須以資料為基礎,不管是呈現為平面、立面、三維或者其他,都必須有一套唯一的資料,所有我們所有的檢視,只是當前資料的一種表現形式,在其中,就有乙個至關重要的物件,用於承載所有的資料和資料的定義,其核心要素就是autodesk.revit.db命名空間下的所有物件,承載所有資料的物件核心就是:「document」,其物件是autodesk.revit.db.document,這個物件承載了所有的資料物件,我們看看這些物件主要幾個方法:

可以看出,這個物件由於資料完整,是作為我們資料匯入匯出的核心物件,我們也可以通過這個document獲取元素、族等物件。

2、資料建立物件:autodesk.revit.creation.document

由於autodesk.revit.db.document承載著所有的資料,是所有構件顯示的源頭,直接通過api操作db.document肯定不合適,資料任意新增,不利於資料的穩定性,在此基礎上,定義了乙個creation.document的封裝類,用於對db.document進行建立操作,這個物件autodesk.revit.db.document.create屬性獲取。我們可以看看其常規的屬性定義:

3、autodesk.revit.ui

.uidocumen

t前面兩個物件,無非操作都是資料,但是模型如何呈現,特別基於文件級別的模型定位、隔離、檢視管理等,基本上無法做到,這裡就不得不提uidocumen

t物件,這個物件是用於對document資料所有呈現的檢視的乙個綜合管理,所以對於mvc來說,u就是v層、db.document是m層,creation.document是c層,共同構建了revit文件的乙個綜合管理,uidocument

是對顯示的乙個管理單元,其控制著所有的檢視物件,我們可以在uidocument

裡面找到屬性定義如下:

如圖所示,其包含了document資料物件,包含介面上的選擇物件,也包含了所有的檢視物件,其核心方法getopenuiviews能獲取介面上所有的uvview檢視物件。

三、檢視物件

1、資料檢視物件autodesk.revit.db.view

他和db.document物件基本一致,是view中資料的乙個載體,這個view的資料和db.document息息相關和有一些關係,主要看view自身利用的多少,所以view有很多不同的型別,每種型別都有很多自身的特性,對檢視的操作,基本都是在這個view之中。但這些操作只是侷限在對檢視中的元素資料進行操作,對檢視的本身的改變就交給另外乙個類uiview來實現

2、檢視呈現類autodesk.revit.ui.uiview  

這個物件是對view的視覺化物件,用於在revit中顯示view中的資料,所有uiview可以縮放、定位等功能,是對於介面層級的操作。

小結,通過以上的分析,我們知道了revit採用mvc的管理模式,將資料和檢視進行分離,所以view作為乙個element物件,儲存在document中,所以通過對應的過濾器,能獲取當前文件的所有檢視:

filteredelementcollector collector = new

filteredelementcollector(doc);

ilist

views = collector.ofclass(typeof(view)).toelements();

uiview檢視,是顯示view的時候才建立,並不是一致都存在,所有的基本原理可以定義如下:

Revit二次開發 初學

前言 由於工作需要,近期開始學習revit二次開發知識。學習的同時將學習過程與小夥伴們一起分享,希望後來的小夥伴在看到我的學習筆記的時候有所幫助。說明由於revit的版本在不斷更新中,所以我在學習revit的時候選擇了從revit自帶的幫助檔案開始學習,不同版本的revit,就看相應的help檔案。...

revit二次開發之單位轉換

revit內部基本單位是英呎,如果要獲取或設定構件引數數值需要進行單位轉換,比如轉換為基本的公釐或公尺等單位 1.可以使用常規方式進行轉換 1英呎等於0.3047999995367公尺,等於304.7999995367公釐 2.可以使用revitapi內建的轉換函式進行目標單位的轉換 使用unitu...

Revit二次開發之單位轉換

revit內部基本單位是英呎,如果要獲取或設定構件引數數值需要進行單位轉換,比如轉換為基本的公釐或公尺等單位 1.可以使用常規方式進行轉換 1英呎等於0.3047999995367公尺,等於304.7999995367公釐 2.可以使用revitapi內建的轉換函式進行目標單位的轉換 使用unitu...