添加项目文件。

This commit is contained in:
GG Z
2026-02-23 14:58:05 +08:00
parent ce96926220
commit 771d780d6c
342 changed files with 33470 additions and 0 deletions

View File

@@ -0,0 +1,247 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using System;
using System.Collections.Generic;
using System.Linq;
namespace HYDragCurveJig
{
public class TestJigControler
{
public TestJigControler(ExternalCommandData commandData)
{
this.externalCommandData_0 = commandData;
this.options_0 = this.externalCommandData_0.Application.Application.Create.NewGeometryOptions();
this.options_0.View = this.externalCommandData_0.Application.ActiveUIDocument.Document.ActiveView;
}
public bool Test(ref string message)
{
List<JigEdgeInfo> list = new List<JigEdgeInfo>();
if (!this.method_0(ref list))
{
return false;
}
XYZ xyz = null;
if (!this.method_5(ref xyz))
{
return false;
}
XYZ xyz2 = null;
List<JigTextInfo> list2 = new List<JigTextInfo>();
if (!DragCurveJigInterface.GetInsertPosition(this.externalCommandData_0, list, false, list2, false, xyz, ref xyz2))
{
return false;
}
this.method_6(xyz2);
return true;
}
private bool method_0(ref List<JigEdgeInfo> list_0)
{
Document document = this.externalCommandData_0.Application.ActiveUIDocument.Document;
IList<Reference> list = null;
Selection selection = this.externalCommandData_0.Application.ActiveUIDocument.Selection;
bool flag;
try
{
list = selection.PickObjects(ObjectType.Element, "select elements");
goto IL_0045;
}
catch (Exception)
{
flag = false;
}
return flag;
IL_0045:
foreach (Reference reference in list)
{
Element element = document.GetElement(reference);
if (element.GetType() == typeof(FamilyInstance))
{
this.method_1(element as FamilyInstance, ref list_0);
}
else
{
this.method_2(element, ref list_0);
}
}
return true;
}
private void method_1(FamilyInstance familyInstance_0, ref List<JigEdgeInfo> list_0)
{
GeometryElement geometryElement = familyInstance_0.GetOriginalGeometry(this.options_0);
geometryElement = geometryElement.GetTransformed(familyInstance_0.GetTransform());
if (null == geometryElement)
{
return;
}
IEnumerator<GeometryObject> enumerator = geometryElement.GetEnumerator();
List<GeometryObject> geometryObjectArray = geometryElement.OfType<GeometryObject>().ToList();
while (enumerator.MoveNext())
{
GeometryObject geometryObject = enumerator.Current;
geometryObjectArray.Add(geometryObject);
}
new List<XYZ>();
foreach (GeometryObject geometryObject2 in geometryObjectArray)
{
this.method_3(geometryObject2, ref list_0);
}
}
private void method_2(Element element_0, ref List<JigEdgeInfo> list_0)
{
GeometryElement geometryElement = element_0.get_Geometry(this.options_0);
if (null == geometryElement)
{
return;
}
IEnumerator<GeometryObject> enumerator = geometryElement.GetEnumerator();
List<GeometryObject> geometryObjectArray = geometryElement.OfType<GeometryObject>().ToList();
while (enumerator.MoveNext())
{
GeometryObject geometryObject = enumerator.Current;
geometryObjectArray.Add(geometryObject);
}
new List<XYZ>();
foreach (GeometryObject geometryObject2 in geometryObjectArray)
{
this.method_3(geometryObject2, ref list_0);
}
}
private void method_3(GeometryObject geometryObject_0, ref List<JigEdgeInfo> list_0)
{
if (geometryObject_0.GetType() == typeof(Solid))
{
var enumerator = (geometryObject_0 as Solid).Edges.GetEnumerator();
{
while (enumerator.MoveNext())
{
object obj = enumerator.Current;
JigEdgeInfo jigEdgeInfo = new JigEdgeInfo(((Edge)obj).AsCurve());
if (!jigEdgeInfo.IsNull())
{
list_0.Add(jigEdgeInfo);
}
}
return;
}
}
if (geometryObject_0.GetType() == typeof(Arc))
{
JigEdgeInfo jigEdgeInfo2 = new JigEdgeInfo(geometryObject_0 as Arc);
if (jigEdgeInfo2.IsNull())
{
return;
}
list_0.Add(jigEdgeInfo2);
return;
}
else if (geometryObject_0.GetType() == typeof(Line))
{
JigEdgeInfo jigEdgeInfo3 = new JigEdgeInfo(geometryObject_0 as Line);
if (jigEdgeInfo3.IsNull())
{
return;
}
list_0.Add(jigEdgeInfo3);
}
}
private bool method_4(ref List<JigEdgeInfo> list_0)
{
Document document = this.externalCommandData_0.Application.ActiveUIDocument.Document;
IList<Reference> list = null;
Selection selection = this.externalCommandData_0.Application.ActiveUIDocument.Selection;
bool flag;
try
{
list = selection.PickObjects(ObjectType.Element, new CurveFilter(), "select curves");
goto IL_004A;
}
catch (Exception)
{
flag = false;
}
return flag;
IL_004A:
foreach (Reference reference in list)
{
Element element = document.GetElement(reference);
if (element.GetType() == typeof(ModelLine))
{
JigEdgeInfo jigEdgeInfo = new JigEdgeInfo((element as ModelLine).GeometryCurve as Line);
list_0.Add(jigEdgeInfo);
}
else if (element.GetType() == typeof(ModelArc))
{
JigEdgeInfo jigEdgeInfo2 = new JigEdgeInfo((element as ModelArc).GeometryCurve as Arc);
list_0.Add(jigEdgeInfo2);
}
else if (element.GetType() == typeof(DetailLine))
{
JigEdgeInfo jigEdgeInfo3 = new JigEdgeInfo((element as DetailLine).GeometryCurve as Line);
list_0.Add(jigEdgeInfo3);
}
else if (element.GetType() == typeof(DetailArc))
{
JigEdgeInfo jigEdgeInfo4 = new JigEdgeInfo((element as DetailArc).GeometryCurve as Arc);
list_0.Add(jigEdgeInfo4);
}
}
return true;
}
private bool method_5(ref XYZ xyz_0)
{
XYZ xyz = null;
bool flag;
try
{
xyz = this.externalCommandData_0.Application.ActiveUIDocument.Selection.PickPoint("please pick point on column");
goto IL_002C;
}
catch (Exception)
{
flag = false;
}
return flag;
IL_002C:
xyz_0 = new XYZ(xyz.X, xyz.Y, 0.0);
return true;
}
private void method_6(XYZ xyz_0)
{
Document document = this.externalCommandData_0.Application.ActiveUIDocument.Document;
Transaction transaction = new Transaction(document);
transaction.Start("create mark");
CurveArray curveArray = new CurveArray();
double num = 3.0;
XYZ xyz = new XYZ(xyz_0.X - num, xyz_0.Y + num, 0.0);
XYZ xyz2 = new XYZ(xyz_0.X + num, xyz_0.Y - num, 0.0);
Line line = Line.CreateBound(xyz, xyz2);
curveArray.Append(line);
XYZ xyz3 = new XYZ(xyz_0.X - num, xyz_0.Y - num, 0.0);
xyz2 = new XYZ(xyz_0.X + num, xyz_0.Y + num, 0.0);
Line line2 = Line.CreateBound(xyz3, xyz2);
curveArray.Append(line2);
XYZ xyz4 = new XYZ(0.0, 0.0, 0.0);
Plane plane = Plane.CreateByNormalAndOrigin(new XYZ(0.0, 0.0, 1.0), xyz4);
SketchPlane sketchPlane = SketchPlane.Create(document, plane);
document.Create.NewModelCurveArray(curveArray, sketchPlane);
transaction.Commit();
}
private ExternalCommandData externalCommandData_0;
private Options options_0;
}
}