Hi I would like to know if anyone has been able to retrieve import instance layers. I am creating a task dialog for the user to input the layer name and then I would check if it exists. Any help is appreciated. Many thanks
# Step 1: Prompt user to select a dwg file
picked = uidoc.Selection.PickObject(ObjectType.Element, "Select DWG file")
dwg_import_instance = doc.GetElement(picked.ElementId)
# Step 2: Prompt user to enter name of AutoCAD layer
result = forms.ask_for_string(prompt="Enter Layer Name:", title="Layer Name")
if result:
layer_name = result
else:
TaskDialog.Show("Result", "The form was cancelled.")
sys.exit()
import pyrevit
from pyrevit import revit, DB
doc = revit.doc
CAD_links = list(DB.FilteredElementCollector(doc).OfClass(DB.ImportInstance).WhereElementIsNotElementType())
link_sub_cats = []
for link in CAD_links:
link_cat = link.Category
link_sub_cat = link_cat.SubCategories
link_sub_cats.append(link_sub_cat)
#print("link_sub_cats", link_sub_cats)
layer_names = set()
for sub_cat in link_sub_cats:
for sub in sub_cat:
layer_names.add(sub.Name)
print("layer_names:",sorted(layer_names))
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import FilteredElementCollector, ImportInstance
doc = __revit__.ActiveUIDocument.Document
CAD_links = list(FilteredElementCollector(doc).OfClass(ImportInstance).WhereElementIsNotElementType())
link_sub_cats = []
for link in CAD_links:
link_cat = doc.GetElement(link.GetTypeId()).Category
link_sub_cat = link_cat.SubCategories
link_sub_cats.append(link_sub_cat)
layer_names = set()
for sub_cat in link_sub_cats:
for sub in sub_cat:
layer_names.add(sub.Name)
print("layer_names:", sorted(layer_names))