首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用外观资产通过API创建材料

使用外观资产通过API创建材料
EN

Stack Overflow用户
提问于 2018-10-14 07:04:40
回答 1查看 867关注 0票数 0

我有一个带有RGB值的CSV文件,我用它来通过Dynamo脚本在Revit中创建材料,但是创建的材料没有分配给它(即使当我得到返回'-1‘的材料的AppearanceAsset时,它有一个外观资产选项卡}.Since,这意味着它没有被分配的资产。

如何使用已分配的外观ID创建材料?

我希望访问外观资产并将颜色设置为它,因为通常只设置图形颜色,而不设置外观颜色。

代码语言:javascript
复制
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

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

API引用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-24 06:34:46

这个问题在Revit讨论论坛创建具有外观资产的材料中得到了满意的解决和确认。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52800303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档