2016-11-30 193 views
1

我有問題。使用Revit Python Shell從Revit文件以某種方式提取,導出或複製項目屬性?如果是的話,它有多困難?從Revit提取項目屬性

回答

1

通過項目屬性您的意思是項目信息參數?這是RPS去取項目信息參數的快捷方式:

parameterName = 'Project Name' 
value = '- parameter not found -' # default setting 

for parameter in document.ProjectInformation.Parameters: 
    if parameter.Definition.Name == parameterName: 
     if parameter.AsString(): 
      value = parameter.AsString() 
     elif parameter.AsDouble(): 
      value = parameter.AsDouble() 
     elif parameter.AsInteger(): 
      value = parameter.AsInteger() 
     else: 
      value = '- invalid value -' 


print value 

編輯:爲了獲取參數值

+0

是的,謝謝,它工作。但是,這段代碼不會返回它們的值。我怎樣才能看到它們? – Zed

+0

謝謝,那正是我需要的! – Zed

0

我無法與Revit Python Shell交談,但是就Revit API而言,它非常簡單。

從您的Document對象中,有一個「ProjectInformation」屬性。

所以在C#中,它看起來像:

Parameter p = 
myDoc.ProjectInformation.get_Parameter(BuiltInParameter.PROJECT_NUMBER); 

Parameter o = 
myDoc.ProjectInformation.GetParameters("MyCustomParameter").FirstOrDefault(); 

附註:我最近碰到的模式,對他們的文件沒有ProjectInformation財產(空)接連發生。這不好。我相信可以通過在模型上運行審計來修復它 - 但是從代碼的角度來看,您應該爲它做好準備(不像上面的!:))。

+0

哇!你知道這些文件的歷史嗎?你想嘗試在ProjectInfo元素上執行doc.Delete嗎?有可能在任何時間你喜歡它刪除,從而引起疼痛和痛苦其他可憐的靈魂... –

+0

傑里米,我不知道他們是如何得到這樣的。一些客戶送他們到我們,因爲他們在我們的一些應用程序,在這裏我們沒有檢查空的ProjectInformation財產的失敗。我們必須爲我們的軟件提供補丁。 – Matt