How to add custom properties at the body level in SCDM?

Gabriel Messager
Member, Employee Posts: 59
✭✭✭✭
Answers
-
- # Python Script, API Version = V21
- from SpaceClaim.Api.V21 import CustomProperty, SimplePropertyDisplay, Application
- class CustomPropertyDisplay(SimplePropertyDisplay):
- """This is a property diplay class used to populate the properties window.
- To use it, you must first register it with the Application:
- Application.AddPropertyDisplay(...).
- Once registerd the GetValue method is called on each selection change, and it should
- return the string to be displayed."""
- def __init__(self, category, name):
- SimplePropertyDisplay.__init__(category,name)
- def GetValue(self, body):
- # Make sure the selection is a body
- if not isinstance(body, IDesignBody):
- return None
- # Try to get the "MyCustomProp" attribute from the body
- (success, value) = body.GetMaster().TryGetTextAttribute("MyCustomProp")
- return value
- def SetValue(self, body, value):
- # Make sure the selection is a body
- if not isinstance(body, IDesignBody):
- return None
- # Update the attribute
- body.GetMaster().SetTextAttribute("MyCustomProp", value)
- # All DocObjects allow you set Text and Number attributes.
- # We will use these attributes to store our custom property
- for body in GetRootPart().GetAllBodies():
- body.GetMaster().SetTextAttribute("MyCustomProp", "This is my description")
- Application.AddPropertyDisplay(CustomPropertyDisplay("My_custom_properties", "my_title"))
0