UNPKG

@itwin/core-backend

Version:
125 lines 5.47 kB
"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 Elements */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DrawingGraphicRepresentsFunctionalElement = exports.PhysicalElementFulfillsFunction = exports.FunctionalElementIsOfType = exports.FunctionalType = exports.FunctionalComponentElement = exports.FunctionalComposite = exports.FunctionalBreakdownElement = exports.FunctionalElement = exports.FunctionalModel = exports.FunctionalPartition = void 0; const core_common_1 = require("@itwin/core-common"); const Element_1 = require("../Element"); const Model_1 = require("../Model"); const NavigationRelationship_1 = require("../NavigationRelationship"); const Relationship_1 = require("../Relationship"); const EditTxn_1 = require("../EditTxn"); const Symbols_1 = require("../internal/Symbols"); /** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented * to a Subject and broken down by a FunctionalModel. * @public */ class FunctionalPartition extends Element_1.InformationPartitionElement { static get className() { return "FunctionalPartition"; } constructor(props, iModel) { super(props, iModel); } } exports.FunctionalPartition = FunctionalPartition; /** A container for persisting FunctionalElements. * @public */ class FunctionalModel extends Model_1.RoleModel { static get className() { return "FunctionalModel"; } constructor(props, iModel) { super(props, iModel); } static insert(txnOrDb, parentSubjectId, name) { const txn = txnOrDb instanceof EditTxn_1.EditTxn ? txnOrDb : txnOrDb[Symbols_1._implicitTxn]; const partitionId = txn.insertElement({ classFullName: FunctionalPartition.classFullName, model: core_common_1.IModel.repositoryModelId, parent: new NavigationRelationship_1.SubjectOwnsPartitionElements(parentSubjectId), code: FunctionalPartition.createCode(txn.iModel, parentSubjectId, name), }); return txn.insertModel({ classFullName: this.classFullName, modeledElement: { id: partitionId }, }); } } exports.FunctionalModel = FunctionalModel; /** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement. * @public */ class FunctionalElement extends Element_1.RoleElement { static get className() { return "FunctionalElement"; } constructor(props, iModel) { super(props, iModel); } } exports.FunctionalElement = FunctionalElement; /** A FunctionalBreakdownElement is a *folder* node in the functional hierarchy. * @public */ class FunctionalBreakdownElement extends FunctionalElement { static get className() { return "FunctionalBreakdownElement"; } constructor(props, iModel) { super(props, iModel); } } exports.FunctionalBreakdownElement = FunctionalBreakdownElement; /** @public */ class FunctionalComposite extends FunctionalBreakdownElement { static get className() { return "FunctionalComposite"; } constructor(props, iModel) { super(props, iModel); } } exports.FunctionalComposite = FunctionalComposite; /** A FunctionalComponentElement is a *leaf* node in the functional hierarchy. * @public */ class FunctionalComponentElement extends FunctionalElement { static get className() { return "FunctionalComponentElement"; } constructor(props, iModel) { super(props, iModel); } } exports.FunctionalComponentElement = FunctionalComponentElement; /** Defines a set of properties (the 'type') that can be associated with a Functional Element. * @public */ class FunctionalType extends Element_1.TypeDefinitionElement { static get className() { return "FunctionalType"; } constructor(props, iModel) { super(props, iModel); } } exports.FunctionalType = FunctionalType; /** Relates a [[FunctionalElement]] to its [[FunctionalType]] * @public */ class FunctionalElementIsOfType extends core_common_1.RelatedElement { static get className() { return "FunctionalElementIsOfType"; } static classFullName = "Functional:FunctionalElementIsOfType"; constructor(id, relClassName = FunctionalElementIsOfType.classFullName) { super({ id, relClassName }); } } exports.FunctionalElementIsOfType = FunctionalElementIsOfType; /** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills. * @public */ class PhysicalElementFulfillsFunction extends Relationship_1.ElementRefersToElements { static get className() { return "PhysicalElementFulfillsFunction"; } } exports.PhysicalElementFulfillsFunction = PhysicalElementFulfillsFunction; /** Relates a [[DrawingGraphic]] to the [[FunctionalElement]] that it represents * @public */ class DrawingGraphicRepresentsFunctionalElement extends Relationship_1.DrawingGraphicRepresentsElement { static get className() { return "DrawingGraphicRepresentsFunctionalElement"; } } exports.DrawingGraphicRepresentsFunctionalElement = DrawingGraphicRepresentsFunctionalElement; //# sourceMappingURL=FunctionalElements.js.map