Create and Attach HyperLink Example (C#)

This example shows how to create and attach a HyperLink to a Circle.

//--------------------------------------------------------------
// Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this example into the C# IDE.
// 3. Add a reference to:
//    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
// 4. Add references to System and System.Windows.Forms.
// 5. Start DraftSight and open a drawing document.
// 6. Click Start Debugging.
//
// Postconditions:
// 1. A Circle is constructed in the drawing document.
// 2. A HyperLink is created and attached to the Circle.
// 3. In DraftSight, put the cursor on the Circle to see the
//    the hyperlink and Ctrl+click to open DraftSight's website.
//----------------------------------------------------------------
using System.Text;
using DraftSight.Interop.dsAutomation;
using System.Runtime.InteropServices;
using System.Windows.Forms;


namespace HyperLinkCSharp
{
    
class Program
    {
        
private static DraftSight.Interop.dsAutomation.Application dsApp;

        
static void Main(string[] args)
        {
            
Document dsDoc = default(Document);
            
Model dsModel = default(Model);
            
SketchManager dsSketchManager = default(SketchManager);
            
Circle dsCircle = default(Circle);
            
double centerX = 0;
            
double centerY = 0;
            
double centerZ = 0;
            
double radius = 0;

            
//Connect to DraftSight application
            dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
            dsApp.AbortRunningCommand(); //
abort any command currently running in DraftSight to avoid nested commands

            
//Get active document
            dsDoc = dsApp.GetActiveDocument();

            
if ((dsDoc != null))
            {
                
//Get model space
                dsModel = dsDoc.GetModel();

                
//Get Sketch Manager
                dsSketchManager = dsModel.GetSketchManager();

                
//Circle parameters
                centerX = 1.0;
                centerY = 2.0;
                centerZ = 0.0;
                radius = 5.0;

                
//Construct a Circle
                dsCircle = dsSketchManager.InsertCircle(centerX, centerY, centerZ, radius);

                
//Create and attach HyperLink to Circle
                double startCornerX = 0;
                startCornerX = 0.0;
                
double startCornerY = 0;
                startCornerY = 0.0;
                
double startCornerZ = 0;
                startCornerZ = 0.0;
                
double oppositeCornerX = 0;
                startCornerX = 0.0;
                
double oppositeCornerY = 0;
                startCornerY = 0.0;
                
double oppositeCornerZ = 0;
                startCornerZ = 0.0;
                
string hyperLinkAddress = null;
                hyperLinkAddress =
"http://www.3ds.com/products/draftsight/free-cad-software/";
                
string description = null;
                description =
"DraftSight's website";
                
PolyLine3D ds3DPolyLine = default(PolyLine3D);
                
HyperLink dsHyperLink = default(HyperLink);

                dsHyperLink = dsSketchManager.AttachLinkToArea(startCornerX, startCornerY, startCornerZ, oppositeCornerX, oppositeCornerY, oppositeCornerZ, hyperLinkAddress, description,
out ds3DPolyLine);
                dsCircle.SetHyperLink(dsHyperLink);


            }
            
else
            {
                
MessageBox.Show ("There are no open documents in DraftSight.");

            }
        }
    }

}