public void MarkFrames() { UIDocument uidoc = ActiveUIDocument; Document doc = uidoc.Document; ElementClassFilter f1 = new ElementClassFilter(typeof(FamilyInstance)); StructuralMaterialTypeFilter f2 = new StructuralMaterialTypeFilter(StructuralMaterialType.Concrete); ElementClassFilter f3 = new ElementClassFilter(typeof(Floor)); ElementClassFilter f4 = new ElementClassFilter(typeof(Wall)); LogicalAndFilter f5 = new LogicalAndFilter(f1, f2); LogicalOrFilter f6 = new LogicalOrFilter(f3, f4); LogicalOrFilter memberFilter = new LogicalOrFilter(f5, f6); FilteredElementCollector collector = new FilteredElementCollector(doc); collector.WherePasses(memberFilter); List <Element> members = collector.ToList(); int SN = 1; using (Transaction tx = new Transaction(doc, "MarkFrames")){ tx.Start(); foreach (Element e in members) { e.get_Parameter(BuiltInParameter.DOOR_NUMBER).Set("C" + SN.ToString("00")); SN++; } tx.Commit(); } }
public void MarkUntagedFrame() { UIDocument uidoc = ActiveUIDocument; Document doc = uidoc.Document; ElementClassFilter f1 = new ElementClassFilter(typeof(FamilyInstance)); StructuralMaterialTypeFilter f2 = new StructuralMaterialTypeFilter(StructuralMaterialType.Concrete); ElementClassFilter f3 = new ElementClassFilter(typeof(Floor)); ElementClassFilter f4 = new ElementClassFilter(typeof(Wall)); LogicalAndFilter f5 = new LogicalAndFilter(f1, f2); LogicalOrFilter f6 = new LogicalOrFilter(f3, f4); LogicalOrFilter memberFilter = new LogicalOrFilter(f5, f6); FilteredElementCollector collector = new FilteredElementCollector(doc); collector.WherePasses(memberFilter); List <Element> members = collector.ToList(); String Tag = null; foreach (Element e in members) { Tag = e.get_Parameter(BuiltInParameter.DOOR_NUMBER).AsString(); if (Tag == "" || Tag == null) { HiLighted(e.Id, uidoc, doc); } else { UnHiLighted(e.Id, uidoc, doc); } Tag = null; } }
public void ClearMarks() { Document doc = this.ActiveUIDocument.Document; FilteredElementCollector collector = new FilteredElementCollector(doc); ElementClassFilter f1 = new ElementClassFilter(typeof(FamilyInstance)); StructuralMaterialTypeFilter f2 = new StructuralMaterialTypeFilter(StructuralMaterialType.Concrete); ElementClassFilter f3 = new ElementClassFilter(typeof(Floor)); ElementClassFilter f4 = new ElementClassFilter(typeof(Wall)); LogicalAndFilter f5 = new LogicalAndFilter(f1, f2); LogicalOrFilter f6 = new LogicalOrFilter(f3, f4); LogicalOrFilter f7 = new LogicalOrFilter(f5, f6); ICollection <Element> collection = collector.WherePasses(f7).ToElements(); using (Transaction tx = new Transaction(doc, "CopyMarkToSN")) { tx.Start(); foreach (Element e in collection) { Parameter pSN = e.LookupParameter("編號"); if (null != pSN) { // Parameter pMark = e.LookupParameter("標註"); Parameter pMark = e.get_Parameter(BuiltInParameter.DOOR_NUMBER); pMark.Set(""); } } tx.Commit(); } }
private static readonly double density_steel = 490.0; //pound per cubic foot private static void ExtractObjects() { StructuralMaterialTypeFilter steelFilter = new StructuralMaterialTypeFilter(StructuralMaterialType.Steel); _StruColumns = (new FilteredElementCollector(_doc)).WherePasses(new ElementStructuralTypeFilter(StructuralType.Column)).WherePasses(steelFilter).ToElementIds().ToList(); _StruBeams = (new FilteredElementCollector(_doc)).WherePasses(new ElementStructuralTypeFilter(StructuralType.Beam)).WherePasses(steelFilter).ToElementIds().ToList(); _Braces = (new FilteredElementCollector(_doc)).WherePasses(new ElementStructuralTypeFilter(StructuralType.Brace)).WherePasses(steelFilter).ToList(); _maxBB = new BoundingBoxXYZ(); }
public void CreateNewTypes() { UIDocument uidoc = ActiveUIDocument; Document doc = uidoc.Document; ElementClassFilter f1 = new ElementClassFilter(typeof(FamilyInstance)); StructuralMaterialTypeFilter f2 = new StructuralMaterialTypeFilter(StructuralMaterialType.Concrete); ElementClassFilter f3 = new ElementClassFilter(typeof(Floor)); ElementClassFilter f4 = new ElementClassFilter(typeof(Wall)); LogicalAndFilter f5 = new LogicalAndFilter(f1, f2); LogicalOrFilter f6 = new LogicalOrFilter(f3, f4); LogicalOrFilter memberFilter = new LogicalOrFilter(f5, f6); FilteredElementCollector collector = new FilteredElementCollector(doc); collector.WherePasses(memberFilter); List <Element> members = collector.ToList(); using (Transaction tx = new Transaction(doc, "MarkFrames")){ tx.Start(); foreach (Element e in members) { Debug.Print(string.Format( "Type '{0}-{1}' listed.", e.get_Parameter(BuiltInParameter.DOOR_NUMBER).AsString(), e.get_Parameter(BuiltInParameter.ELEM_TYPE_PARAM).AsValueString())); try { ElementId eTypeId = e.get_Parameter(BuiltInParameter.ELEM_TYPE_PARAM).AsElementId(); ElementType eType = doc.GetElement(eTypeId) as ElementType; ElementType newEType = eType.Duplicate(string.Format( "{0}-{1}", e.get_Parameter(BuiltInParameter.DOOR_NUMBER).AsString(), e.get_Parameter(BuiltInParameter.ELEM_TYPE_PARAM).AsValueString())) as ElementType; e.get_Parameter(BuiltInParameter.ELEM_TYPE_PARAM).Set(newEType.Id); } catch (Exception) { //throw; } } tx.Commit(); } }
public void MarkUntagedFrame2() { UIDocument uidoc = ActiveUIDocument; Document doc = uidoc.Document; BuiltInCategory[] bics = new BuiltInCategory[] { BuiltInCategory.OST_StructuralColumns, BuiltInCategory.OST_StructuralFraming, BuiltInCategory.OST_StructuralFoundation, BuiltInCategory.OST_Floors, BuiltInCategory.OST_Ramps }; IList <ElementFilter> a = new List <ElementFilter>(bics.Length); foreach (BuiltInCategory bic in bics) { a.Add(new ElementCategoryFilter(bic)); } LogicalOrFilter categoryFilter = new LogicalOrFilter(a); ElementClassFilter f1 = new ElementClassFilter(typeof(FamilyInstance)); ElementClassFilter f2 = new ElementClassFilter(typeof(Floor)); LogicalAndFilter f3 = new LogicalAndFilter(categoryFilter, f1); LogicalAndFilter f4 = new LogicalAndFilter(categoryFilter, f2); //StructuralMaterialTypeFilter 會把不是OST_StructuralFraming的物件過濾掉,即使他們的材料也是Concrete!!!! StructuralMaterialTypeFilter f5 = new StructuralMaterialTypeFilter(StructuralMaterialType.Concrete); LogicalOrFilter f6 = new LogicalOrFilter(f3, f4); LogicalAndFilter memberFilter = new LogicalAndFilter(f5, f6); FilteredElementCollector collector = new FilteredElementCollector(doc); collector.WherePasses(memberFilter); List <Element> members = collector.ToList(); String Tag = null; foreach (Element e in members) { Tag = e.get_Parameter(BuiltInParameter.DOOR_NUMBER).AsString(); if (Tag == "" || Tag == null) { HiLighted(e.Id, uidoc, doc); } else { UnHiLighted(e.Id, uidoc, doc); } Tag = null; } }
private static void ExtractObjects() { StructuralMaterialTypeFilter steelFilter = new StructuralMaterialTypeFilter(StructuralMaterialType.Steel); _StruColumns = (new FilteredElementCollector(_doc)).WherePasses(new ElementStructuralTypeFilter(StructuralType.Column)).WherePasses(steelFilter).ToElementIds().ToList(); _StruBeams = (new FilteredElementCollector(_doc)).WherePasses(new ElementStructuralTypeFilter(StructuralType.Beam)).WherePasses(steelFilter).ToElementIds().ToList(); _Braces = (new FilteredElementCollector(_doc)).WherePasses(new ElementStructuralTypeFilter(StructuralType.Brace)).WherePasses(steelFilter).ToList(); _maxBB = new BoundingBoxXYZ(); }