例如我得到:

bpy.types.Modifier.bl_rna.properties['type'].enum_items[12]


(布尔值修饰符)

布尔修饰符具有一个用于实际布尔网格的称为“对象”的属性。
我怎样才能快速检查它是否真的有“ object”属性可用(通过bpy.types)?

我想按其属性过滤修饰符,例如:

[modifier.identifier for modifier in bpy.types.Modifier.bl_rna.properties['type'].enum_items if modifier.object != NULL]


显然,这是行不通的,只是添加了它是为了让您更好地了解Im打算做什么。

最佳答案

bpy.types包含类定义。 bpy.data包含用于在搅拌机场景中定义对象的实例。 bpy.context可以轻松访问多个兴趣点,而不必直接使用bpy.data,例如活动场景和对象以及选定对象和可见对象的列表。

作为类定义,bpy.types只能告诉您每种类型可以包含哪些属性,这可以在修改后进行。例如,插件可以使用bpy.props将属性添加到现有数据类型,这是在bpy.types中的类定义上完成的。

bpy.types.Modifier的每个子类都有其自己的属性,BooleanModifier具有一个对象属性,这是将与修改器父网格物体的网格物体交互的第二个对象。

要访问特定项目实例上的数据,您需要在bpy.databpy.context中找到相关数据。

例如,如果多维数据集具有将其网格与Sphere网格合并的布尔型修饰符,则可以在python console中获得以下内容。

>>> bpy.data.objects['Cube'].modifiers['Boolean'].object
bpy.data.objects['Sphere']
>>> bpy.data.objects['Cube'].modifiers['Boolean'].operation
'UNION'

关于python - 如何通过bpy.types获取特定的修饰符属性信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57364245/

10-13 08:51