In January 2020, Excitech was acquired by Addnode Group, the owner of Symetri, Europe’s leading provider of software and services for design and engineering activities.
Excitech has now become Symetri, operating as one company since the beginning of January 2021. Please rest assured it is business as usual for us and your service experience will not be impacted.
Autodesk Inventor 2017 – iLogic – Identify Parts in Layout Drawings
Luke Davenport
28 February 2017
Inventor is fantastic at many things, but flexibility when tagging components in layout drawings is not a strong point in my view.
If you’re using Factory Design Utilities there are some handy tools for including identification tags for components, but if you’re using standard Inventor, you’ll probably be relying on the balloon tools. These allow any property to be included in the balloon (good), but don’t allow much flexibility for auto-positioning the balloons when placing them (for instance central to the component on the drawing view).
In comparison to a product like Revit, which is more focused on large layouts and tagging, there can be quite a lot of manual effort.
What to do?
Well a training delegate recently made the excellent suggestion of using a model sketch in the part templates for the layout, and then including the sketches in the drawing view. This allows great flexibility with positioning, as the position can be parametrically controlled in the part sketch, and also allows any parameter or iProperty value to be used in the sketch text (for instance).
The only missing link in the chain is how to quickly ‘include’ these sketches in a layout drawing to make them visible. iLogic to the rescue!
Check out the video for explanation, and see the iLogic code below.
Note: the below video was created by Excitech prior to becoming Symetri in January 2021, following its acquisition by Addnode Group. All Excitech products, services and solutions mentioned in this recording are available through Symetri.
' Start of iLogic code ======================================================================
Sub Main()
Dim Title As String = "Excitech iLogic" Dim Counter As Integer = 0 Dim SketchName As String = "
Try
Dim oDrawingDoc As DrawingDocument = Nothing If ThisApplication.ActiveDocument.DocumentType <> kDrawingDocumentObject Then MsgBox("This iLogic rule only works with drawing documents!", MsgBoxStyle.OkOnly, Title) Exit Sub End If
oDrawingDoc = ThisApplication.ActiveDocument
Dim oView As DrawingView = Nothing
oView = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kDrawingViewFilter, _ "Select a view to toggle sketch visibility, or hit ESC to cancel...")
If oView Is Nothing Then Exit Sub End If
' Get user input for the sketch name SketchName = InputBox("Please enter name of sketch to toggle visibility.",Title, "Sketch 1")
' Get the referenced document Dim oDoc As Document = oView.ReferencedDocumentDescriptor.ReferencedDocument
If oDoc.DocumentType <> kAssemblyDocumentObject Then MsgBox("The referenced document needs to be an assembly. Exiting", MsgBoxStyle.OkOnly, Title) Exit Sub End If
Dim oAssy As AssemblyDocument = oView.ReferencedDocumentDescriptor.ReferencedDocument Dim oOccs As ComponentOccurrences = oAssy.ComponentDefinition.Occurrences Dim oOcc As ComponentOccurrence = Nothing Dim TopLevelOcc As ComponentOccurrence = Nothing Dim Level As Integer = 0 Dim TopLevelAsmDef As AssemblyComponentDefinition = Nothing
If Counter = 0 Then MsgBox("No sketches called " & SketchName & " were found in this view.", MsgBoxStyle.OkOnly, Title) End If
End Sub
Sub LoopThroughSubOccurrences(ByRef oDrawView As DrawingView, _ ByRef oOccs As ComponentOccurrences, _ ByRef oOcc As ComponentOccurrence, _ ByRef Level As Integer, _ ByVal SketchName As String, _ ByRef Counter As Integer)
For Each oOcc In oOccs
If oOcc.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
' Get the occurrences in this sub-assembly and loop recursively... oOccs = oOcc.SubOccurrences
ElseIf oOcc.DefinitionDocumentType = DocumentTypeEnum.kPartDocumentObject Then
' Loop through all sketches Dim oDef As PartComponentDefinition = oOcc.Definition Dim oSk As PlanarSketch = Nothing Dim oSks As PlanarSketches = oDef.Sketches
For Each oSk In oSks If oSk.Name = SketchName Then Counter += 1 Dim oSkProx As PlanarSketchProxy = Nothing Call oOcc.CreateGeometryProxy(oSk, oSkProx)
Sub IncludeSketch(ByRef oDrawView As DrawingView, ByVal oSketch As PlanarSketchProxy)
' Toggle inclusion of sketch in drawing view ' Current Dim Current As Boolean = oDrawView.GetIncludeStatus(oSketch) oDrawView.SetIncludeStatus(oSketch, Not Current)
End Sub
Sub VisibleSketch(ByRef oDrawView As DrawingView, ByVal oSketch As PlanarSketchProxy)
' Toggle visibility of sketch in drawing view Dim Current As Boolean = oDrawView.GetVisibility(oSketch) oDrawView.SetVisibility(oSketch, Not Current)
End Sub
' End of iLogic code ================================================================
Author
Luke Davenport
Luke started his career in automotive engine design before moving into consulting and software development. Now with 12 years’ experience working with Autodesk products, he is well placed to meet our customers automation needs with well-tailored .Net applications written with the end-user in mind. He enjoys a consultative approach to software creation – active listening to ensure the optimal solution. These days he is mostly found working on our Sovelia Fusion Manage solutions, serverless web functions, or well-crafted Inventor, Vault, AutoCAD, or Revit apps.
Browser extensions extensions offer users extra functionalities and customisation options. While browser extensions enhance the browsing experience, they also pose a danger which can mean significant risks to online security and privacy.
Factoring embodied emissions into building designs is a growing area of concern in the AEC sector, with many practices now investing considerable time and resource into low carbon design strategies.
In 2023, over 1000 companies were hit worldwide by Ransomware and over 15 billion credentials were stolen and obtained globally through hacking and bating companies and users, causing havoc on an unfathomable scale. Read this blog to find out why Two Factor Authentication and Multi Factor Authentication is important.