public OwnerMicrostation(IModelMicrostation modelMicrostation)
 {
     ModelMicrostation = modelMicrostation ?? throw new ArgumentNullException(nameof(modelMicrostation));
 }
 /// <summary>
 /// Создать ячейку на основе шаблона в библиотеке
 /// </summary>
 public IResultAppValue <ICellElementMicrostation> CreateSignatureFromLibrary(string cellName, PointMicrostation origin,
                                                                              IModelMicrostation modelMicrostation,
                                                                              Func <ICellElementMicrostation, ICellElementMicrostation> additionalParameters = null) =>
 AttachLibrary(MicrostationResources.SignatureMicrostationFileName).
 ResultValueOkBind(libraryElements => CreateCellElementFromLibrary(cellName, origin, modelMicrostation, additionalParameters)).
 ResultVoidOk(_ => DetachLibrary());
 /// <summary>
 /// Сохранить изображение элемента ячейки Microstation
 /// </summary>
 private IResultValue <ISignatureFileData> CreateJpegFromCell(IModelMicrostation modelMicrostation, ISignatureLibrary signatureLibraryBase) =>
 _applicationMicrostation.CreateCellElementFromLibrary(signatureLibraryBase.PersonId, new PointMicrostation(0, 0), modelMicrostation).
 ResultVoidOk(cellElement => cellElement.LineWeight = 7).
 ToResultValueFromApplication().
 ResultVoidOk(_ => _messagingService.ShowMessage($"Обработка подписи {signatureLibraryBase.PersonInformation.FullName}")).
 ResultValueOk(cellSignature => ToJpegByte(cellSignature, signatureLibraryBase));
        /// <summary>
        /// Создать ячейку на основе шаблона в библиотеке и проверить наличие такой в библиотеке
        /// </summary>
        public IResultAppValue <ICellElementMicrostation> CreateCellElementFromLibrary(string cellName, PointMicrostation origin,
                                                                                       IModelMicrostation modelMicrostation,
                                                                                       Func <ICellElementMicrostation, ICellElementMicrostation> additionalParameters = null)
        {
            var cellElement = _application.CreateCellElement2(StringIdPrepare(cellName),
                                                              _application.Point3dFromXY(origin.X, origin.Y),
                                                              _application.Point3dFromXY(1, 1),
                                                              false, _application.Matrix3dIdentity());

            var cellDefaultOrigin       = new CellElementMicrostation(cellElement, modelMicrostation.ToOwnerMicrostation());
            var cellElementMicrostation = additionalParameters?.Invoke(cellDefaultOrigin) ?? cellDefaultOrigin;

            _application.ActiveDesignFile.Models[modelMicrostation.IdName].AddElement((Element)cellElement);

            return(new ResultAppValue <ICellElementMicrostation>(cellElementMicrostation,
                                                                 new ErrorApplication(ErrorApplicationType.SignatureNotFound, "Элемент подписи не найден")));
        }