<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "USDKit",
  "identifier" : "/documentation/USDKit/USDPrim/Predicate",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "USDKit"
    ],
    "preciseIdentifier" : "s:6USDKit7USDPrimV9PredicateV"
  },
  "title" : "USDPrim.Predicate"
}
-->

# USDPrim.Predicate

A filter which returns true or false for prims based on their flags.

```
struct Predicate
```

## Overview

A predicate checks flags on a [`USDPrim`](/documentation/USDKit/USDPrim) and can require that each flag
is set or not set.

```swift
let loadedModels = prim.children(where: [.isModel, .isLoaded])
let inactiveGroups = prim.children(where: [.isGroup, !.isActive])
```

## Topics

### Operators

[`static func ! (USDPrim.Predicate) -> USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/!(_:))

Returns the opposite of a predicate.

### Initializers

[`init(arrayLiteral: USDPrim.Predicate...)`](/documentation/USDKit/USDPrim/Predicate/init(arrayLiteral:))

A predicate which accepts only prims with all of the specified flags.

### Type Properties

[`static var all: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/all)

A predicate which is always true, and accepts all prims.

[`static var hasDefSpecifier: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/hasDefSpecifier)

True if the prim has a def specifier.

[`static var isAbstract: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isAbstract)

True if the prim or any of its ancestors are a class.

[`static var isActive: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isActive)

True if the prim and all of its ancestors are active.

[`static var isComponent: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isComponent)

Returns true if this prim’s kind metadata identifies it as a model component.

[`static var isDefined: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isDefined)

True if the prim and all its ancestors have a `def` specifier.

[`static var isGroup: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isGroup)

Returns true if this prim’s kind metadata identifies it as a model group.

[`static var isInstance: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isInstance)

True if the prim is an instance of a prototype.

[`static var isLoaded: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isLoaded)

True if the prim is active and none of its loadable ancestors are unloaded.

[`static var isModel: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/isModel)

Returns true if this prim’s kind metadata identifies it as a model.

[`static var none: USDPrim.Predicate`](/documentation/USDKit/USDPrim/Predicate/none)

A predicate which is always false, and accepts no prims.

### Default Implementations

[CustomStringConvertible Implementations](/documentation/USDKit/USDPrim/Predicate/CustomStringConvertible-Implementations)

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`ExpressibleByArrayLiteral`](/documentation/Swift/ExpressibleByArrayLiteral)

[`Copyable`](/documentation/Swift/Copyable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Escapable`](/documentation/Swift/Escapable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)