import FreeCAD

# Функция для получения списка всех объектов с заданным свойством
def get_objects_with_property(property_name, property_value):
    result = []
    for obj in FreeCAD.ActiveDocument.Objects:
        if hasattr(obj, "PropertiesList") and property_name in obj.PropertiesList:
            if obj.getPropertyByName(property_name) == property_value:
                result.append(obj)
    return result

# Получение списка всех объектов с названием тела в свойстве
bodies = get_objects_with_property("BodyName", "Body")

# Получение списка всех объектов
all_objects = FreeCAD.ActiveDocument.Objects

# Поиск и вывод тел, у которых нет связанных вспомогательных объектов
for body in bodies:
    linked_objects = []
    for obj in all_objects:
        if obj.hasLinkOf(body):
            linked_objects.append(obj.Name)
    if not linked_objects:
        print(f"Тело без связанных объектов: {body.Name}")


