.NET

Reply
Contributor
insiaiftiqhar
Posts: 19
Registered: ‎06-21-2012
Message 1 of 3 (222 Views)
Accepted Solution

reading geomeric constraints

222 Views, 2 Replies
11-28-2012 01:55 PM

How do you read geometric constraints from the Assoc2dConstraintGroup in C# or VB?

Hi There,

 

Here is a c# sample that illustrates how to get started:

 

[CommandMethod("DumpConstraints")]
public void DumpConstraints()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
ObjectId networkId = AssocNetwork.GetInstanceFromObject(
db.CurrentSpaceId,
false,
true,
"ACAD_ASSOCNETWORK");
if (networkId == ObjectId.Null)
return;
using (Transaction Tx =
db.TransactionManager.StartTransaction())
{
using (AssocNetwork network =
Tx.GetObject(
networkId,
OpenMode.ForRead, false) as AssocNetwork)
{
foreach (ObjectId actionId in network.GetActions)
{
if (actionId == ObjectId.Null)
continue;
DBObject obj = Tx.GetObject(
actionId,
OpenMode.ForRead);
//ed.WriteMessage("\n - Action: " + obj.ToString().Remove(0, 34));
if (actionId.ObjectClass.IsDerivedFrom(
RXObject.GetClass(
typeof(Assoc2dConstraintGroup))))
{
Assoc2dConstraintGroup group = obj
as Assoc2dConstraintGroup;
foreach(GeometricalConstraint constraint
in group.Constraints)
{
//... do something ...
}
}
}
}
}
}

 

Regards,

Philippe.

ADN Support Specialist
philippe.leefsma
Posts: 646
Registered: ‎06-02-2009
Message 2 of 3 (187 Views)

Re: reading geomeric constraints

12-04-2012 01:10 AM in reply to: insiaiftiqhar

Hi There,

 

Here is a c# sample that illustrates how to get started:

 

[CommandMethod("DumpConstraints")]
public void DumpConstraints()
{
    Document doc = Application.DocumentManager.MdiActiveDocument;
    Database db = doc.Database;
    Editor ed = doc.Editor;

    ObjectId networkId = AssocNetwork.GetInstanceFromObject(
        db.CurrentSpaceId, 
        false, 
        true, 
        "ACAD_ASSOCNETWORK");

    if (networkId == ObjectId.Null)
        return;

    using (Transaction Tx = 
        db.TransactionManager.StartTransaction())
    {
        using (AssocNetwork network = 
            Tx.GetObject(
                networkId, 
                OpenMode.ForRead, false) as AssocNetwork)
        {
            foreach (ObjectId actionId in network.GetActions)
            {
                if (actionId == ObjectId.Null)
                    continue;

                DBObject obj = Tx.GetObject(
                    actionId, 
                    OpenMode.ForRead);

                //ed.WriteMessage("\n - Action: " + obj.ToString().Remove(0, 34));

                if (actionId.ObjectClass.IsDerivedFrom(
                    RXObject.GetClass(
                        typeof(Assoc2dConstraintGroup))))
                {
                    Assoc2dConstraintGroup group = obj 
                        as Assoc2dConstraintGroup;

                    foreach(GeometricalConstraint constraint 
                        in group.Constraints)
                    {
                        //... do something ...
                    }
                }
            }
        }
    }
}

 

Regards,

Philippe.



Philippe Leefsma
Developer Technical Services
Autodesk Developer Network

Contributor
insiaiftiqhar
Posts: 19
Registered: ‎06-21-2012
Message 3 of 3 (170 Views)

Re: reading geomeric constraints

12-04-2012 12:34 PM in reply to: philippe.leefsma

I can't thank you enough for helping me. I had given up and was working on an alternate/not so elegant solution. Thank you SO very much!

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.