using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using Autodesk.DesignScript.Runtime;
namespace BasePoint_coord2
{
public class RevitAPI
{
[MultiReturn(new[] { "BasePoint_X", "BasePoint_Y", "BasePoint_Z", "BasePoint_Angle" })]
public static Dictionary<string, object> GetCoordOfRevitBasePoint(Autodesk.Revit.DB.Document doc)
{
var basePoint = new FilteredElementCollector(doc).OfClass(typeof(BasePoint)).Cast<BasePoint>().Where(p => !p.IsShared).ToList().FirstOrDefault(); //https://adn-cis.org/forum/index.php?topic=8972.msg36051#msg36051
//Инициация параметров
double BasePoint_X = 0;
double BasePoint_Y = 0;
double BasePoint_Z = 0;
double BasePoint_Angle = 0;
//Присвоение переменным значений
BasePoint_Y = basePoint.get_Parameter(BuiltInParameter.BASEPOINT_NORTHSOUTH_PARAM).AsDouble();
BasePoint_X = basePoint.get_Parameter(BuiltInParameter.BASEPOINT_EASTWEST_PARAM).AsDouble();
BasePoint_Z = basePoint.get_Parameter(BuiltInParameter.BASEPOINT_ELEVATION_PARAM).AsDouble();
BasePoint_Angle = basePoint.get_Parameter(BuiltInParameter.BASEPOINT_ANGLETON_PARAM).AsDouble();
string result = BasePoint_Y + "," + BasePoint_X + "," + BasePoint_Z + "," + BasePoint_Angle;
return new Dictionary<string, object>
{
{"BasePoint_X", BasePoint_X},
{"BasePoint_Y", BasePoint_Y},
{"BasePoint_Z", BasePoint_Z},
{"BasePoint_Angle", BasePoint_Angle},
};
}
}
}