Autodesk közösség programozók a FÁK

Hogyan állapítható meg a helyét egy elemet a csatolt fájlt a koordináta-rendszerben a fő fájl

A probléma az, hogy ez a cikk leírja, hogyan lehet a koordinátákat egy elem egy koordináta rendszerben csatolt fájl.

Például, van egy csatolt fájl, amely csak egy falat. Ez a fal fájl található azon a ponton a 100; 100; 0.

A fő fájl, tettem a falra, hogy egy pont 300; 100; 0.

Meg kell, hogy meghatározza a helyét a falon a linkelt fájlt a fő fájl. Ez, azt akarjuk, hogy a koordinátáit 300; 100; 0.

Hogyan tudom ezt megtenni?

Ahogy azt mondta, a kódot a fenti cikkben meghatározza a helyét a fal a koordinátáit a csatolt fájl (100; 100; 0), amelyek nem ugyanabban a helyzetben, amit kell.

Dokumentum d = rvtlink. GetLinkDocument # 40; # 41; ;

Elem e = d. GetElement # 40; id # 41; ;

LocationCurve görbe = e. Hely a LocationCurve;

XYZ p = görbe. Görbe. GetEndPoint # 40; 0 # 41; ;

XYZ q = görbe. Görbe. GetEndPoint # 40; 1 # 41; ;

kék és piros -, A és B, valamint két falak teljesen leírni és szaporodnak az én problémám, hoztam létre a két teszt projektet.

A projekt a következőképpen néz ki:

Autodesk közösség programozók a FÁK

Autodesk közösség programozók a FÁK

A projekt a következő:

Autodesk közösség programozók a FÁK

A rózsaszín vonal a határral kapcsolatos projekt fájl A projekt B.

A projekt található a projekt, hogy a projekt zéró pont található 5000; 5000; 0 Project B.

Mint már említettem, a célom -, hogy a koordinátákat a helyét a piros fal (a falon a csatolt fájl), de a projekt koordinátarendszerben W.

Szóval, kell egy kis algoritmust, amellyel tudok azonosulni, hogy a vörös fal található 5000; 5000; 0 és kék - a -7000, 5000, 0.

Tehát hogyan lehet ezt megvalósítani?

Itt van a kód, ha én próbálok, amit kell:

UIApplication UiApp-ot = commandData. alkalmazás;

UIDocument uidoc = UiApp-ot. ActiveUIDocument;

Doc = uidoc. dokumentum;

visszatéréshez Eredmény. sikerült;

Hogyan észre az utolsó lépést?

Válasz. Tény, hogy nagyon egyszerű.

Mielőtt fejest ugrik a részleteket, szeretném megjegyezni, hogy én nemrég tárgyalt, hogyan érheti el az egyes elemek egy csatolt fájl (a Eng.) És ott rámutatott elég sok linkek hasonló témákban.

RevitLinkInstance osztály örökli a Bíróság osztályban. Osztály tartalmaz GetTransform módszer. mellyel adatokat szerezni az átalakítás elem és GetTotalTransform módszer. ami visszaadja az aktuális átváltási elem északi irányban.

Mint mondta, akkor az elem koordináták egy csatolt fájlt, és meg kell határoznia, hogyan kell átalakítani a koordinátákat a koordináta-rendszerben a fő fájl.

Ez könnyen megvalósítható a hely vagyonosztályt RevitLinkInstance. hogy meghatározza a szélső pozíció a csatolt fájl képest a földre, majd ezt ellensúlyozza, hogy a koordinátákat, hogy már képes megszerezni.

By the way, szeretném megjegyezni, hogy akkor nagyon megnehezítené hibakeresés, dolgozó milliméter a felhasználói felület, minden érték a Revit fájl adatbázis tárolja láb.

Én végre egy kis segítőm, hogy jelenítse PointStringMm alapegységétől mérési adatok milliméterben.

const kettős _inch_to_mm = 25,4;

const kettős _foot_to_mm = 12 * _inch_to_mm;