public static DetailPlot Create(Document doc, DetailPlotMaster master, Point3d basePoint, string PlotId)
        {
            BlockRefDrawingObject refDrawingObject = BlockRefDrawingObject.Create(doc.Database, basePoint, master);
            Transaction           trans            = doc.TransactionManager.TopTransaction;
            BlockReference        reference        = (BlockReference)trans.GetObject(refDrawingObject.BaseObject, OpenMode.ForRead);

            DetailPlot newDetailPlot = new DetailPlot(doc, reference);

            DataService.Current.GetStore <HousingDocumentStore>(doc.Name).GetManager <DetailPlotManager>().Add(newDetailPlot);
            newDetailPlot.PlotId       = PlotId;
            newDetailPlot.PlotTypeName = master.PlotTypeName;
            return(newDetailPlot);
        }
        private static void ToDrawing(bool insert)
        {
            Document doc    = Application.DocumentManager.MdiActiveDocument;
            Editor   editor = doc.Editor;

            PromptResult promptResult = editor.GetString("\nEnter block template id: ");

            if (promptResult.Status != PromptStatus.OK)
            {
                return;
            }

            using (Transaction trans = doc.TransactionManager.StartTransaction())
            {
                Guid            id     = new Guid(promptResult.StringResult);
                ITemplateSource source = DataService.Current.GetTemplateSource(id);
                (Database database, TemplateDrawingObject template) = source.GetTemplate(id);
                BlockDrawingObject residentTemplateBlock;
                using (database)
                    using (database.TransactionManager.StartTransaction())
                    {
                        residentTemplateBlock = template.TransferToDocument(doc);
                    }

                if (insert)
                {
                    PromptPointResult result = editor.GetPoint("Please enter location of block:");
                    if (result.Status != PromptStatus.OK)
                    {
                        return;
                    }

                    BlockRefDrawingObject.Create(doc.Database, result.Value, residentTemplateBlock);
                }

                trans.Commit();
            }
        }