"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/** @packageDocumentation
 * @module Relationships
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.SheetIndexReferenceRefersToSheetIndex = exports.SheetReferenceRefersToSheet = exports.ExternalSourceAttachmentAttachesSource = exports.ExternalSourceIsInRepository = exports.ElementOwnsExternalSourceAspects = exports.ElementOwnsMultiAspects = exports.ElementOwnsUniqueAspect = exports.PhysicalTypeIsOfPhysicalMaterial = exports.PhysicalElementIsOfPhysicalMaterial = exports.PhysicalElementIsOfType = exports.SpatialLocationIsOfType = exports.GeometricElement3dHasTypeDefinition = exports.GraphicalElement2dIsOfType = exports.GeometricElement2dHasTypeDefinition = exports.SheetIndexOwnsEntries = exports.SheetIndexFolderOwnsEntries = exports.FolderContainsRepositories = exports.ExternalSourceOwnsAttachments = exports.PhysicalElementAssemblesElements = exports.ElementEncapsulatesElements = exports.RenderMaterialOwnsRenderMaterials = exports.CategoryOwnsSubCategories = exports.SubjectOwnsPartitionElements = exports.SubjectOwnsSubjects = exports.ElementOwnsChildElements = void 0;
const core_common_1 = require("@itwin/core-common");
/** Relates a parent Element to child Elements which represent parts of the Entity modeled by the parent Element.
 * @public
 */
class ElementOwnsChildElements extends core_common_1.RelatedElement {
    static classFullName = "BisCore:ElementOwnsChildElements";
    constructor(parentId, relClassName = ElementOwnsChildElements.classFullName) {
        super({ id: parentId, relClassName });
    }
}
exports.ElementOwnsChildElements = ElementOwnsChildElements;
/** Relates a parent [[Subject]] to [[Subject]] child elements.
 * @public
 */
class SubjectOwnsSubjects extends ElementOwnsChildElements {
    static classFullName = "BisCore:SubjectOwnsSubjects";
    constructor(parentId, relClassName = SubjectOwnsSubjects.classFullName) {
        super(parentId, relClassName);
    }
}
exports.SubjectOwnsSubjects = SubjectOwnsSubjects;
/** Relates a parent [[Subject]] to [[InformationPartitionElement]] child elements.
 * @public
 */
class SubjectOwnsPartitionElements extends ElementOwnsChildElements {
    static classFullName = "BisCore:SubjectOwnsPartitionElements";
    constructor(parentId, relClassName = SubjectOwnsPartitionElements.classFullName) {
        super(parentId, relClassName);
    }
}
exports.SubjectOwnsPartitionElements = SubjectOwnsPartitionElements;
/** Relates a parent [[Category]] to [[SubCategory]] child elements.
 * @public
 */
class CategoryOwnsSubCategories extends ElementOwnsChildElements {
    static classFullName = "BisCore:CategoryOwnsSubCategories";
    constructor(parentId, relClassName = CategoryOwnsSubCategories.classFullName) {
        super(parentId, relClassName);
    }
}
exports.CategoryOwnsSubCategories = CategoryOwnsSubCategories;
/** Relates a parent [[RenderMaterial]] to [[RenderMaterial]] child elements.
 * @public
 */
class RenderMaterialOwnsRenderMaterials extends ElementOwnsChildElements {
    static classFullName = "BisCore:RenderMaterialOwnsRenderMaterials";
    constructor(parentId, relClassName = RenderMaterialOwnsRenderMaterials.classFullName) {
        super(parentId, relClassName);
    }
}
exports.RenderMaterialOwnsRenderMaterials = RenderMaterialOwnsRenderMaterials;
/** Relates a parent Element to child Elements which represent **hidden** parts of the Entity.
 * @public
 */
class ElementEncapsulatesElements extends ElementOwnsChildElements {
    static classFullName = "BisCore:ElementEncapsulatesElements";
    constructor(parentId, relClassName = ElementEncapsulatesElements.classFullName) {
        super(parentId, relClassName);
    }
}
exports.ElementEncapsulatesElements = ElementEncapsulatesElements;
/** Relates a parent [[PhysicalElement]] to [[PhysicalElement]] children that it assembles.
 * @public
 */
class PhysicalElementAssemblesElements extends ElementOwnsChildElements {
    static classFullName = "BisCore:PhysicalElementAssemblesElements";
    constructor(parentId, relClassName = PhysicalElementAssemblesElements.classFullName) {
        super(parentId, relClassName);
    }
}
exports.PhysicalElementAssemblesElements = PhysicalElementAssemblesElements;
/** Relates a parent [[ExternalSource]] to its [[ExternalSourceAttachment]] children.
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
class ExternalSourceOwnsAttachments extends ElementOwnsChildElements {
    static classFullName = "BisCore:ExternalSourceOwnsAttachments";
    constructor(parentId, relClassName = ExternalSourceOwnsAttachments.classFullName) {
        super(parentId, relClassName);
    }
}
exports.ExternalSourceOwnsAttachments = ExternalSourceOwnsAttachments;
/** Relates a parent [[FolderLink]] to its [[RepositoryLink]] children.
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
class FolderContainsRepositories extends ElementOwnsChildElements {
    static classFullName = "BisCore:FolderContainsRepositories";
    constructor(parentId, relClassName = FolderContainsRepositories.classFullName) {
        super(parentId, relClassName);
    }
}
exports.FolderContainsRepositories = FolderContainsRepositories;
/** Relates a [[SheetIndexFolder]] to the [[SheetIndexEntry]]'s that it contains.
 * @beta
 */
class SheetIndexFolderOwnsEntries extends ElementOwnsChildElements {
    static classFullName = "BisCore:SheetIndexFolderOwnsEntries";
    constructor(parentId, relClassName = SheetIndexFolderOwnsEntries.classFullName) {
        super(parentId, relClassName);
    }
}
exports.SheetIndexFolderOwnsEntries = SheetIndexFolderOwnsEntries;
/** Relates a [[SheetIndex]] to the [SheetIndexEntry]]'s that it contains.
 * @beta
 */
class SheetIndexOwnsEntries extends ElementOwnsChildElements {
    static classFullName = "BisCore:SheetIndexOwnsEntries";
    constructor(parentId, relClassName = SheetIndexOwnsEntries.classFullName) {
        super(parentId, relClassName);
    }
}
exports.SheetIndexOwnsEntries = SheetIndexOwnsEntries;
/** Relates a [[GeometricElement2d]] to its [[TypeDefinitionElement]]
 * @public
 */
class GeometricElement2dHasTypeDefinition extends core_common_1.TypeDefinition {
    static classFullName = "BisCore:GeometricElement2dHasTypeDefinition";
    constructor(id, relClassName = GeometricElement2dHasTypeDefinition.classFullName) {
        super({ id, relClassName });
    }
}
exports.GeometricElement2dHasTypeDefinition = GeometricElement2dHasTypeDefinition;
/** Relates a [[GraphicalElement2d]] to its [[GraphicalType2d]]
 * @public
 */
class GraphicalElement2dIsOfType extends GeometricElement2dHasTypeDefinition {
    static classFullName = "BisCore:GraphicalElement2dIsOfType";
    constructor(id, relClassName = GraphicalElement2dIsOfType.classFullName) {
        super(id, relClassName);
    }
}
exports.GraphicalElement2dIsOfType = GraphicalElement2dIsOfType;
/** Relates a [[GeometricElement3d]] to its [[TypeDefinitionElement]]
 * @public
 */
class GeometricElement3dHasTypeDefinition extends core_common_1.TypeDefinition {
    static classFullName = "BisCore:GeometricElement3dHasTypeDefinition";
    constructor(id, relClassName = GeometricElement3dHasTypeDefinition.classFullName) {
        super({ id, relClassName });
    }
}
exports.GeometricElement3dHasTypeDefinition = GeometricElement3dHasTypeDefinition;
/** Relates a [[SpatialLocationElement]] to its [[SpatialLocationType]]
 * @public
 */
class SpatialLocationIsOfType extends GeometricElement3dHasTypeDefinition {
    static classFullName = "BisCore:SpatialLocationIsOfType";
    constructor(id, relClassName = SpatialLocationIsOfType.classFullName) {
        super(id, relClassName);
    }
}
exports.SpatialLocationIsOfType = SpatialLocationIsOfType;
/** Relates a [[PhysicalElement]] to its [[PhysicalType]]
 * @public
 */
class PhysicalElementIsOfType extends GeometricElement3dHasTypeDefinition {
    static classFullName = "BisCore:PhysicalElementIsOfType";
    constructor(id, relClassName = PhysicalElementIsOfType.classFullName) {
        super(id, relClassName);
    }
}
exports.PhysicalElementIsOfType = PhysicalElementIsOfType;
/** Relates a [[PhysicalElement]] to its [[PhysicalMaterial]]
 * @public
 */
class PhysicalElementIsOfPhysicalMaterial extends core_common_1.RelatedElement {
    static classFullName = "BisCore:PhysicalElementIsOfPhysicalMaterial";
    constructor(id) {
        super({ id });
    }
}
exports.PhysicalElementIsOfPhysicalMaterial = PhysicalElementIsOfPhysicalMaterial;
/** Relates a [[PhysicalType]] to its [[PhysicalMaterial]]
 * @public
 */
class PhysicalTypeIsOfPhysicalMaterial extends core_common_1.RelatedElement {
    static classFullName = "BisCore:PhysicalTypeIsOfPhysicalMaterial";
    constructor(id) {
        super({ id });
    }
}
exports.PhysicalTypeIsOfPhysicalMaterial = PhysicalTypeIsOfPhysicalMaterial;
/** Relates an [[Element]] and an [[ElementUniqueAspect]] that it owns.
 * @public
 */
class ElementOwnsUniqueAspect extends core_common_1.RelatedElement {
    static classFullName = "BisCore:ElementOwnsUniqueAspect";
    constructor(elementId, relClassName = ElementOwnsUniqueAspect.classFullName) {
        super({ id: elementId, relClassName });
    }
}
exports.ElementOwnsUniqueAspect = ElementOwnsUniqueAspect;
/** Relates an [[Element]] and an [[ElementMultiAspect]] that it owns.
 * @public
 */
class ElementOwnsMultiAspects extends core_common_1.RelatedElement {
    static classFullName = "BisCore:ElementOwnsMultiAspects";
    constructor(elementId, relClassName = ElementOwnsMultiAspects.classFullName) {
        super({ id: elementId, relClassName });
    }
}
exports.ElementOwnsMultiAspects = ElementOwnsMultiAspects;
/** Relates an [[Element]] and an [[ExternalSourceAspect]] that it owns.
 * @public
 */
class ElementOwnsExternalSourceAspects extends ElementOwnsMultiAspects {
    static classFullName = "BisCore:ElementOwnsExternalSourceAspects";
    constructor(elementId, relClassName = ElementOwnsExternalSourceAspects.classFullName) {
        super(elementId, relClassName);
    }
}
exports.ElementOwnsExternalSourceAspects = ElementOwnsExternalSourceAspects;
/** Relates an [[ExternalSource]] to the [[RepositoryLink]] that it is persisted in.
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
class ExternalSourceIsInRepository extends core_common_1.RelatedElement {
    static classFullName = "BisCore:ExternalSourceIsInRepository";
    constructor(repositoryId, relClassName = ExternalSourceIsInRepository.classFullName) {
        super({ id: repositoryId, relClassName });
    }
}
exports.ExternalSourceIsInRepository = ExternalSourceIsInRepository;
/** Relates an [[ExternalSource]] to the [[RepositoryLink]] that it is persisted in.
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
class ExternalSourceAttachmentAttachesSource extends core_common_1.RelatedElement {
    static classFullName = "BisCore:ExternalSourceAttachmentAttachesSource";
    constructor(externalSourceId, relClassName = ExternalSourceAttachmentAttachesSource.classFullName) {
        super({ id: externalSourceId, relClassName });
    }
}
exports.ExternalSourceAttachmentAttachesSource = ExternalSourceAttachmentAttachesSource;
/** Relates a [[SheetReference]] and [[Sheet]] that it refers.
 * @beta
 */
class SheetReferenceRefersToSheet extends core_common_1.RelatedElement {
    static classFullName = "BisCore:SheetReferenceRefersToSheet";
    constructor(sheetId, relClassName = SheetReferenceRefersToSheet.classFullName) {
        super({ id: sheetId, relClassName });
    }
}
exports.SheetReferenceRefersToSheet = SheetReferenceRefersToSheet;
/** Relates a [[SheetIndexReference]] to a [[SheetIndex]] it refers.
 * @beta
 */
class SheetIndexReferenceRefersToSheetIndex extends core_common_1.RelatedElement {
    static classFullName = "BisCore:SheetIndexReferenceRefersToSheetIndex";
    constructor(sheetIndexId, relClassName = SheetIndexReferenceRefersToSheetIndex.classFullName) {
        super({ id: sheetIndexId, relClassName });
    }
}
exports.SheetIndexReferenceRefersToSheetIndex = SheetIndexReferenceRefersToSheetIndex;
//# sourceMappingURL=NavigationRelationship.js.map