Presentation > content > Selected Node Instances Edit this page Selected node instances specification TypeScript type: SelectedNodeInstancesSpecification. Returns content for selected (input) instances. Attributes Name Required? Type Default Filtering acceptableSchemaName No string "" acceptableClassNames No string[] [] acceptablePolymorphically No boolean false onlyIfNotHandled No boolean false Ordering priority No number 1000 Content Modifiers relatedProperties No RelatedPropertiesSpecification[] [] calculatedProperties No CalculatedPropertiesSpecification[] [] propertyCategories No PropertyCategorySpecification[] [] propertyOverrides No PropertySpecification[] [] Misc. relatedInstances No RelatedInstanceSpecification[] [] Attribute: acceptableSchemaName Specifies ECSchema name which the input instances have to match for the specification to be used. Type string Is Required No Default Value Schemas with any name are accepted // The ruleset has a specification that only returns content for input class instances which // are under `BisCore` schema. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.SelectedNodeInstances, acceptableSchemaName: "BisCore", }], }], }; Selected input Result BisCore.SpatialViewDefinition Generic.GroupModel Attribute: acceptableClassNames Specifies a list of class names which the input instances have to match for the specification to be used. Type string[] Is Required No Default Value Classes with any name are accepted // The ruleset has a specification that only returns content for input class instances which // are of class `bis.SpatialViewDefinition`. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.SelectedNodeInstances, acceptableClassNames: ["SpatialViewDefinition"], }], }], }; Selected input Result BisCore.SpatialViewDefinition BisCore.DictionaryModel Attribute: acceptablePolymorphically Specifies whether derived classes of acceptableClassNames should be included in the content. Type boolean Is Required No Default Value false // The ruleset has a specification that returns content for `bis.ViewDefinition` input class instances // and all deriving classes. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.SelectedNodeInstances, acceptableClassNames: ["ViewDefinition"], acceptablePolymorphically: true, }], }], }; Result acceptablePolymorphically: true acceptablePolymorphically: false Attribute: onlyIfNotHandled When true, the specification takes effect only when all other specifications with higher priority are ruled out. This attribute is most useful for defining fallback specifications. Type boolean Is Required No Default Value false // This ruleset defines two specifications that return content for `bis.ViewDefinition` and `bis.PhysicalModel` // instances respectively. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [ { specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["ViewDefinition"], arePolymorphic: true }, }, // The following specification is defined second so it's lower in priority. Because it has `onlyIfNotHandled` attribute, // it's overriden by the specification above. { specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["PhysicalModel"], arePolymorphic: true }, onlyIfNotHandled: true, }, ], }], }; Result onlyIfNotHandled: true onlyIfNotHandled: false Attribute: priority Controls the order in which specifications are handled — specification with higher priority value is handled first. If priorities are equal, the specifications are handled in the order they appear in the ruleset. Type number Is Required No Default Value 1000 // Specifications to return content for `bis.PhysicalModel` and `bis.DictionaryModel` respectively. // The `bis.PhysicalModel` specification has lower priority so it's displayed after the // higher priority specification. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["PhysicalModel"] }, priority: 0, }, { specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["DictionaryModel"] }, priority: 1, }], }], }; Attribute: relatedProperties Specifications of related properties which are included in the generated content. Type RelatedPropertiesSpecification[] Is Required No Default Value [] // This ruleset returns content for `bis.SpatialViewDefinition`, which includes all properties from related `bis.DisplayStyle` instances. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["SpatialViewDefinition"] }, relatedProperties: [{ propertiesSource: { relationship: { schemaName: "BisCore", className: "ViewDefinitionUsesDisplayStyle" }, direction: RelationshipDirection.Forward, }, }], }], }], }; relatedProperties: [] relatedProperties as defined in the above ruleset Attribute: calculatedProperties Specifications of calculated properties whose values are generated using provided ECExpressions. Type CalculatedPropertiesSpecification[] Is Required No Default Value [] // In addition to returning content for all `bis.SpatialViewDefinition` instances, this ruleset also adds a // custom `Camera view direction` property to each instance. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["SpatialViewDefinition"] }, calculatedProperties: [{ label: "Camera view direction", value: "IIf (this.pitch >= 10, \"Vertical upwards\", IIf (this.pitch <= -10, \"Vertical downwards\", \"Horizontal\"))", }], }], }], }; Attribute: propertyCategories Defines a list of custom categories. Custom categories are not present in the result unless they contain at least one property. To assign a property to the category, reference its id in PropertySpecification.categoryId when defining propertyOverrides. Type PropertyCategorySpecification[] Is Required No Default Value [] // This ruleset places camera-related `bis.SpatialViewDefinition` properties inside a custom category. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["SpatialViewDefinition"] }, propertyCategories: [{ id: "camera_category", label: "Camera settings", autoExpand: true, }], propertyOverrides: [ { name: "EyePoint", categoryId: "camera_category" }, { name: "FocusDistance", categoryId: "camera_category" }, { name: "IsCameraOn", categoryId: "camera_category" }, ], }], }], }; Attribute: propertyOverrides Specifications of various property overrides that allow customizing individual properties display. Type PropertySpecification[] Is Required No Default Value [] // The specification returns content for `bis.ViewDefinition` with one // overriden property label. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["ViewDefinition"], arePolymorphic: true }, propertyOverrides: [{ name: "Model", labelOverride: "Container Model" }], }], }], }; Result propertyOverrides: [] propertyOverrides as defined in the above ruleset Attribute: relatedInstances Specifications of related instances that can be used when creating the content. There are several use cases when this is useful: When there's a need to only load instances that have a related instance. Providing a related instance specification with isRequired set to true filters-out the instances that don't have the related instance. When there's a need to filter instances by a related instance value. The alias attribute may then be used in the instanceFilter attribute to reference related instance property values. When there's a need to customize content based on related instance property values. Related instance classes are included when looking for customization rules, which allows referencing related instances and their properties in customization rule ECExpressions by their alias. Type RelatedInstanceSpecification[] Is Required No Default Value [] // The specification returns content for `bis.ModelSelector` filtered by related // `bis.SpatialViewDefinition` instance `Yaw` property value. const ruleset: Ruleset = { id: "example", rules: [{ ruleType: RuleTypes.Content, specifications: [{ specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses, classes: { schemaName: "BisCore", classNames: ["ModelSelector"], arePolymorphic: true }, relatedInstances: [{ relationshipPath: { relationship: { schemaName: "BisCore", className: "SpatialViewDefinitionUsesModelSelector" }, direction: RelationshipDirection.Backward }, alias: "relatedInstance", }], instanceFilter: "relatedInstance.Yaw > 0", }], }], }; Result SpatialViewDefinition instances ModelSelector instances ModelSelector instances filtered by SpatialViewDefinition.Yaw Deprecated attributes Attribute: showImages Should image IDs be calculated for the returned instances. When true, ImageIdOverride rules get applied when creating the content. ExtendedDataRule should be used instead to provide image data to content items created by this specification. See extended data usage page for more details. Type boolean Is Required No Default Value false Last Updated: 20 May, 2022