def FindSyflexMeshes(model=None): all_syflex = XSI.FindObjects(None, '{513A555C-13F2-4D77-82E7-C35D14B789C1}') if model: return [ syflex.OutputPorts(0).Target2.Parent for syflex in all_syflex if (model.Name == syflex.OutputPorts(0).Target2.Parent.Model.Name) ] else: return [syflex.OutputPorts(0).Target2.Parent for syflex in all_syflex]
def CollectGuideElements(model): """ Collect guide element property page under model :param Model model: SDK Model object :return list: SDK PPG list """ return [ prop for prop in XSI.FindObjects( None, '{76332571-D242-11d0-B69C-00AA003B3EA6}') if prop.Type == 'RigElement' and prop.Parent3DObject.Model.IsEqualTo(model) ]
def GetProperties(_type, model=None): """ Get all custom properties of propType name under model (or scene) :param str _type: property type name :param Model model: SDK Model object :return XSI.Collection: SDK PPG collection """ filtered = XSIFactory.CreateActiveXObject('XSI.Collection') all_properties = XSI.FindObjects(None, '{76332571-D242-11d0-B69C-00AA003B3EA6}') for _property in all_properties: if _property.Type == _type: if model: if _property.Parent3DObject.Model.IsEqualTo(model): filtered.Add(_property) else: filtered.Add(_property) return filtered
def GetSymmetryMap(inObject): symmetrymaps = XSI.FindObjects(None, "{2EBA6DE4-B7EA-4877-80FE-FC768F32729F}") for symap in symmetrymaps: if symap.Parent3DObject.IsEqualTo(inObject): return symap # create cluster if not exist cluster = inObject.ActivePrimitive.Geometry.Clusters("SymmetryMapCls") if not cluster: cluster = inObject.ActivePrimitive.Geometry.AddCluster( constants.siVertexCluster, "SymmetryMapCls") symap = XSI.CreateSymmetryMap("SymmetryMap", cluster, "SymmetryMap")(0) return symap