public static DBObject Create(this Grevit.Types.Column c, Transaction tr) { DictionaryMemberStyle mst = new DictionaryMemberStyle(Command.Database); try { Member member = new Member(); member.MemberType = MemberType.Column; if (Command.existing_objects.ContainsKey(c.GID)) { member = (Member)tr.GetObject(Command.existing_objects[c.GID], OpenMode.ForWrite); } else { member.SetDatabaseDefaults(Command.Database); member.SetToStandard(Command.Database); BlockTable bt = (BlockTable)tr.GetObject(Command.Database.BlockTableId, OpenMode.ForRead); BlockTableRecord ms = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); ms.AppendEntity(member); tr.AddNewlyCreatedDBObject(member, true); } LayerTable lt = (LayerTable)tr.GetObject(Command.Database.LayerTableId, OpenMode.ForRead); if (c.TypeOrLayer != "") { if (lt.Has(c.TypeOrLayer)) { member.LayerId = lt[c.TypeOrLayer]; } } if (mst.Has(c.FamilyOrStyle, tr)) { member.StyleId = mst.GetAt(c.FamilyOrStyle); } member.Set(c.location.ToPoint3d(), c.locationTop.ToPoint3d()); return(member); } catch (Autodesk.AutoCAD.Runtime.Exception e) { } return(null); }
public static DBObject Create(this Grevit.Types.Column c, Transaction tr) { DictionaryMemberStyle mst = new DictionaryMemberStyle(Command.Database); try { Member member = new Member(); member.MemberType = MemberType.Column; if (Command.existing_objects.ContainsKey(c.GID)) { member = (Member)tr.GetObject(Command.existing_objects[c.GID], OpenMode.ForWrite); } else { member.SetDatabaseDefaults(Command.Database); member.SetToStandard(Command.Database); BlockTable bt = (BlockTable)tr.GetObject(Command.Database.BlockTableId, OpenMode.ForRead); BlockTableRecord ms = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); ms.AppendEntity(member); tr.AddNewlyCreatedDBObject(member, true); } LayerTable lt = (LayerTable)tr.GetObject(Command.Database.LayerTableId, OpenMode.ForRead); if (c.TypeOrLayer != "") { if (lt.Has(c.TypeOrLayer)) member.LayerId = lt[c.TypeOrLayer]; } if (mst.Has(c.FamilyOrStyle, tr)) member.StyleId = mst.GetAt(c.FamilyOrStyle); member.Set(c.location.ToPoint3d(), c.locationTop.ToPoint3d()); return member; } catch (Autodesk.AutoCAD.Runtime.Exception e) { } return null; }
public static void Create(Grevit.Types.Column c) { Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database; Transaction tr = db.TransactionManager.StartTransaction(); DictionaryMemberStyle mst = new DictionaryMemberStyle(db); try { Member member = new Member(); member.MemberType = MemberType.Column; if (Command.existing_objects.ContainsKey(c.GID)) { member = (Member)tr.GetObject(Command.existing_objects[c.GID], OpenMode.ForWrite); } else { member.SetDatabaseDefaults(db); member.SetToStandard(db); BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord ms = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); ms.AppendEntity(member); tr.AddNewlyCreatedDBObject(member, true); } LayerTable lt = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead); if (c.TypeOrLayer != "") { if (lt.Has(c.TypeOrLayer)) member.LayerId = lt[c.TypeOrLayer]; } if (mst.Has(c.FamilyOrStyle, tr)) member.StyleId = mst.GetAt(c.FamilyOrStyle); member.Set(GrevitPtoPoint3d(c.location), GrevitPtoPoint3d(c.locationTop)); writeProperties(member, c.parameters, tr); AddXData(c, member); storeID(c, member.Id); tr.Commit(); } catch (Autodesk.AutoCAD.Runtime.Exception e) { tr.Abort(); } finally { tr.Dispose(); } }