Создание материалов через API с активом внешнего вида - PullRequest
0 голосов
/ 14 октября 2018

У меня есть CSV-файл со значениями RGB, который я использую для создания материалов в Revit с помощью сценариев Dynamo Python. Однако созданным материалам не назначен внешний вид AppearanceAsset (даже при наличии вкладки актива внешнего вида).я получаю AppearanceAssetID для материала, который он возвращает, «-1», что в соответствии с API означает, что для него нет назначенного актива.

Как создать материалы с уже присвоенными идентификаторам внешнего вида

Iхотите получить доступ к активу «Внешний вид» и установить для него «Цвет», поскольку обычно устанавливается только цвет графика , а не внешний вид .

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)


def ToRevitColor(dynamoColor):return Color(dynamoColor.Red, dynamoColor.Green, dynamoColor.Blue)
def ToDynamoObject(revitObject, isRevitOwned=False):return revitObject.ToDSType(isRevitOwned)
doc = DocumentManager.Instance.CurrentDBDocument

newMaterials = []
appassetid = []

TransactionManager.Instance.EnsureInTransaction(doc)

mat_name = IN[0]
color = IN[1]


for i,y in zip (mat_name, color):
    new_mat_id = Material.Create(doc, i)
    new_mat = doc.GetElement(new_mat_id)
    new_mat.Color = ToRevitColor(y)
    newMaterials.append(ToDynamoObject(new_mat))
    appassetid.append(new_mat.AppearanceAssetId)


TransactionManager.Instance.TransactionTaskDone()

OUT = newMaterials,appassetid

material Created Graphics tab

material Created appearance tab

output for getting appearance asset ID

http://www.revitapidocs.com/2018.1/d02d0677-341a-8d1a-d3eb-35ff82f01695.htm

Справочник по API

1 Ответ

0 голосов
/ 24 октября 2018

Эта проблема была удовлетворительно решена и подтверждена на дискуссионном форуме Revit API создание материалов с активом внешнего вида .

...