例如我得到:
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.data
或bpy.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/