AutoCAD Civil 3D Customization
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Finding out which Part Family the pipe is from
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
104 Views, 3 Replies
10-02-2012 02:41 PM
I am updating a system which lists the sizes available for a specific part. What the client is looking for is to only show the sizes that have been defined in the parts list for the family that the part currently is associated with. This is where I am having difficulty. I cannot seem to locate what family the pipe is from.
Does anyone know of a .Net (I really would like to avoid COM if at all possible) to know which family the pipe belongs to?
Thanks,
Solved! Go to Solution.
Re: Finding out which Part Family the pipe is from
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-03-2012 12:32 PM in reply to:
joshuamodglin
The PartFamily property is not exposed in .NET, as I'm sure you've found. But, you can get the PartFamily via late-binding so no COM references are needed.
[CommandMethod("GetPartFamilyTest")]
public void getpartfamily()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Edit or;
PromptEntityOptions entOpts = new PromptEntityOptions("Select part: ");
entOpts.SetRejectMessage("..Not a network part, try again.");
entOpts.AddAllowedClass(typeof(PipeDb.Part), false);
PromptEntityResult res = ed.GetEntity(entOpts);
if (res.Status != PromptStatus.OK)
return;
using (Transaction tr = HostApplicationServices.WorkingDatabase.Transactio nManager.StartTransaction())
{
PipeDb.Part part = (PipeDb.Part)tr.GetObject(res.ObjectId, OpenMode.ForRead);
object acadpart = part.AcadObject;
object prtfam = acadpart.GetType().InvokeMember("PartFamily", System.Reflection.BindingFlags.GetProperty, null, acadpart, new object[0]);
ObjectId prtfamId = DBObject.FromAcadObject(prtfam);
PipeDb.Styles.PartFamily partFam = (PipeDb.Styles.PartFamily)tr.GetObject(prtfamId, OpenMode.ForRead);
tr.Commit();
}
}
Jeff_M, also a frequent Swamper
Re: Finding out which Part Family the pipe is from
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-03-2012 03:11 PM in reply to:
Jeff_M
Re: Finding out which Part Family the pipe is from
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-05-2012 01:01 PM in reply to:
Jeff_M

