コード例 #1
0
        public FindCADsWindow(UIDocument uid)
        {
            InitializeComponent();
            CADListView.ItemsSource = CADList;
            uidoc = uid;
            doc   = uidoc.Document;

            // Get all imports in the model
            FilteredElementCollector collector = new FilteredElementCollector(doc);

            collector.OfClass(typeof(ImportInstance))
            .WhereElementIsNotElementType()
            .Cast <ImportInstance>();

            foreach (ImportInstance IInstance in collector)
            {
                // This section gets view specific imports
                if (IInstance.OwnerViewId != null && IInstance.OwnerViewId.IntegerValue != -1)
                {
                    View ownerView = doc.GetElement(IInstance.OwnerViewId) as View;

                    ViewFamilyType ViewTy = doc.GetElement(ownerView.GetTypeId()) as ViewFamilyType;

                    string ViewN = ViewTy.Name + " - " + ownerView.Name;

                    CADItem addition = new CADItem
                    {
                        ViewName          = ViewN,
                        CADImportInstance = IInstance,
                        OwnerView         = ownerView,
                        IsHide            = IInstance.IsHidden(ownerView).ToString()
                    };
                    CADList.Add(addition);
                }

                // This section gets model-wide imports. These CADs can be viewed in every view
                else
                {
                    CADItem addition = new CADItem
                    {
                        ViewName          = null,
                        CADImportInstance = IInstance,
                        OwnerView         = null,
                        IsHide            = null
                    };
                    CADList.Add(addition);
                }
            }
        }