MainPage   Related pages 
List of all members
domainBim::CoreAPI Class Reference

#include <domainBim/CoreAPI.h>

Inheritance diagram for domainBim::CoreAPI:
domainBim::AutomationAPI desiteCore::ProjectAPI desiteCore::NavigatorProjectAPI

Public Slots

TOOLS
QString addDays (QString dateStr, int nrDays)
 
QString timeStamp (QString format=QString())
 
int getCalendarWeek (QDateTime dt)
 
QString format (double v, int dec=2, QString frmt="%L1", int fieldWidth=10, QChar fillChar=QChar::Nbsp)
 
QString formatDateTime (QDateTime dt, QString formatstr="iso")
 
QString createID ()
 
long calcHashcode (QString str)
 
QString compressToIfcGuid (QString id)
 
QString uncompressFromIfcGuid (QString ifcGuid)
 
bool checkRegExp (QString value, QString pattern)
 
double calcSlantedArea (QString objId, double angleMin=0.0, double angleMax=45.0)
 
QVariantMap calcGpsCoordsByStation (QString objId, double station)
 
QVariantMap calcGpsCoordsByModelCoords (double x, double y)
 
QVariantMap calcModelCoordsByGpsCoords (double lat, double lon)
 
QVariantMap calcGkCoordsByGpsCoords (double lat, double lon)
 
QVariantMap calcGpsCoordsByGkCoords (double rw, double hw)
 
QString idListToStr (QStringList idList)
 
QStringList strToIdList (QString strIDList)
 
TOOLS - FILES
QVariantMap getFileInfo (QString filePath)
 
QString getAbsolutePath (QString filePath)
 
QString getBaseName (QString filePath)
 
QString getFileName (QString filePath)
 
APPLICATION
QString getApplicationDirectory ()
 
QString getApplicationFilename ()
 
QString getApplicationLanguage ()
 
QString getVersionAsString ()
 
int getVersionMAJOR ()
 
int getVersionMINOR ()
 
int getVersionBUILD ()
 
QVariantMap getVersion ()
 
bool requireVersion (int major, int minor, int patch)
 
PROJECT
QString getUserName ()
 
QString getProjectID ()
 
int getProjectVariantNumber ()
 
int getProjectVersionNumber ()
 
QString getProjectNumber ()
 
QString getProjectName ()
 
QString getProjectShortDescription ()
 
QString getProjectLongDescription ()
 
QString getProjectDirectory ()
 
QString getLocation ()
 
QVariantMap getProjectLocation () const
 
QVariantMap getCloudSettings ()
 
QVariantMap getProjectInfo ()
 
DOMAINS
QString getDomainByElement (QString objId)
 
PROPERTIES
QVariant getPropertyValue (QString objId, QString propName, QString propType, bool inh=true)
 
QList< QVariant > getPropertyValuesByObject (QString objId, QString filterpattern="*")
 
QVariant getPropertySource (QString objId, QString propName, QString propType, bool inh=true)
 
QString getPropertyUnit (QString objId, QString propName, QString propType, bool inh=true)
 
QString getPropertyUnit (QString propName, QString propType)
 
QVariant getPropertyValueByDate (QString objId, QString propName, QString propType, bool inh=true)
 
QDateTime getPropertyLastDate (QString objId, QString propName, QString propType, bool inh=true)
 
QDateTime getPropertyFirstDate (QString objId, QString propName, QString propType, bool inh)
 
QVariantMap getPropertyDateListAsJSON (QString objId, QString propName, QString propType, bool inh=true)
 
QVariantList getPropertyDateList (QString objectId, QString propertyBaseName, QString propertyType)
 
QVariantMap getPropertyTypesByObject (QString objId, QString filterPattern="*")
 
QVariantMap getPropertyTypesByDomain (QString domainName, QString filterPattern="*")
 
QVariantMap getPropertyTypeMetaData (QString propName, QString propType)
 
QList< QVariant > getPropertyTypeList (QString domain="all", QString filterPattern="*")
 
QList< QVariant > getPropertyTypeListByObject (QString objId, QString filterPattern="*")
 
bool isPropertyInherited (QString objId, QString propName, QString propType)
 
QString getPropertyValueRange (QString idList, QString propName, QString propType, QString domainFilter="geometry")
 
QStringList getPropertyValueList (QString propName, QString propType, int maxValues)
 
QString getPropertyValueAsString (QString objId, QString propName, QString propType, bool inh=true)
 
QVariant evaluateFormula (QString code, QString id, QString id_otherdomain=QString())
 
QString prepareJsCode (QString code, QString id, int dec=-1, QString frmt="%L1", int fieldWidth=10, QChar fillChar=QChar())
 
QStringList extractPropertyNames (const QString &code, const QString &startTag="[[", const QString &endTag="]]")
 
LINKS BETWEEN OBJECTS
QStringList getLinkedObjects (QString objectIDList, QString resultDomains="all", QString objectLookupDomains="all")
 
QStringList getTasksByObjectList (QString idList)
 
QStringList getObjectsByTaskList (QString idList)
 
QStringList getDocumentsByObjectList (QString idList)
 
QStringList getObjectsByDocumentList (QString idList)
 
QStringList getSectionsByObjectList (QString idList)
 
QStringList getObjectsBySectionList (QString idList)
 
QStringList getTypesByObjectList (QString idList)
 
QStringList getObjectsByTypeList (QString idList)
 
QStringList getResourcesByObjectList (QString idList)
 
QStringList getObjectsByResourcesList (QString idList)
 
QStringList getBoQItemsByObjectList (QString idList)
 
QStringList getObjectsByBoQItemList (QString idList)
 
QStringList getPcItemsByObjectList (QString idList)
 
QStringList getObjectsByPcItemList (QString idList)
 
OBJECT HIERARCHY
QStringList getContainedElements (QString containerId, int maxDepth)
 
int countContainedElements (QString containerId, int maxDepth)
 
QString getParent (QString objId)
 
QStringList getOpenings (QString objId)
 
QStringList getParts (QString objId)
 
STATUS
bool isVisible (QString objId)
 
bool isSelected (QString objId)
 
bool isLocked (QString objId)
 
bool isWired (QString objId)
 
GEOMETRY
QVariantList getPointList (QString objId)
 
ALIGNMENTS / REGIONS
QVariantMap getPointOnAlignmentAtStation (QString objId, double d)
 
double getStationOfProjectedPoint (QString objId, double x, double y, double z=0.0)
 
QStringList getRegionsOfAlignment (QString alignmentId)
 
QVariantList getRangesOfRegion (QString alignmentID, QString regionID)
 
double getValueOfAlignmentRegion (QString alignmentID, QString regionID)
 
ACTIVITIES
int getTaskMode (QString taskId)
 
QString getTaskVisualisation (QString taskId)
 

Detailed Description

This class provides API functions on level 1 which provides the calculation of object properties as well as conveniance methods.

Each methods declared in section 'public slots' is accessible by the API.

Core API. Baseclass for all API classes
JavaScript Objectname: desiteAPI

Since
1.0.16, 23 apr 2012 by jh
Remarks
1.5.0, moved to domainBim
Id
CoreAPI.h 2941 2019-10-07 15:45:44Z ansgar.horstmann

(c) ceapoint aec technologies GmbH

Member Function Documentation

QString domainBim::CoreAPI::addDays ( QString  dateStr,
int  nrDays 
)
slot

Add days to a given date.

Parameters
dateStrDate to add days to, in ISO format (yyyy-MM-dd)
nrDaysNumber of days to add
Returns
Calculated new date in ISO format (yyyy-MM-dd)
Since
1.0.16
QVariantMap domainBim::CoreAPI::calcGkCoordsByGpsCoords ( double  lat,
double  lon 
)
slot

Calculate global Gauss-Krueger coordinates from internal model coordinates.
Since the model can be moved and the reference point can be specified by the user, the Gauss-Krueger coordinates can change.

Returns
JSON object which contains the coordinate values H ("Hochwert"; northing), R ("Rechtswert"; easting) and Z (height).

Example:

{
var obj = desiteAPI.calcGkCoordsByGpsCoords(22.402491, 71.016991, 10.0);
JSON.stringify(obj, undefined, 2);
}
Returns
{
"H": 5700071.016991,
"R": 2570022.402491,
"Z": 10
}
\since 2.0
/
QVariantMap calcGkCoordsByModelCoords( double x, double y, double z );
QVariantMap calcModelCoordsByGkCoords( double r, double h );
JSON object which contains the coordinate values H ("Hochwert"; northing) and R ("Rechtswert"; easting).
{
"H": 3909631.600654817,
"R": 11924723.272716647
}
Since
2.0.19, 02 mar 2018, jh
QVariantMap domainBim::CoreAPI::calcGpsCoordsByGkCoords ( double  rw,
double  hw 
)
slot

Returns GPS coordinates as JSON object.

Example:

{
var obj = desiteAPI.calcGpsCoordsByGkCoords(11924723.272716647, 3909631.600654817);
JSON.stringify(obj, undefined, 2);
}
Returns
{
"Lat": 35.23028571362665,
"Lon": 37.6603185283756
}
Since
2.0.19, 02 mar 2018, jh
QVariantMap domainBim::CoreAPI::calcGpsCoordsByModelCoords ( double  x,
double  y 
)
slot

Calculate global GPS coordinates from internal model coordinates.
Since the model can be moved and the reference point can be specified by the user the GPS coordinates can change.

Example:

{
var obj = desiteAPI.calcGpsCoordsByModelCoords(11924723.272716647, 3909631.600654817);
JSON.stringify(obj, undefined, 2);
}
Returns
{
"Lat": 86.49242657261553,
"Lon": 41.17570237573105
}
Since
2.0
QVariantMap domainBim::CoreAPI::calcGpsCoordsByStation ( QString  objId,
double  station 
)
slot

Calculates the GPS coordinates by a station situated on an alignment.

The alignment is determined by traversing up the object hierarchy until an object of type 'typeBsAlignment' is found. Therefore each direct and indirect child object of an alignment can be passed to the method. The GPS coordinates are returned as a JSON object, if an error occurs during the calculation, an additional error code is written to the JSON object.

Parameters
objId: ID of a bs element
station: The station
Returns
GPS coordinates or error code: 0 - undefined -1 - object not found -2 - alignment not found -3 - station invalid

Example:

{
var obj = desiteAPI.calcGpsCoordsByStation("{16e8fe62-6af7-4b9c-8598-479d310bea1e}-59", 37);
JSON.stringify(obj, undefined, 2);
Lon: 0,
Lat: 0,
Error: -1
}
Since
1.9.0, 19 may 2016, mm
long domainBim::CoreAPI::calcHashcode ( QString  str)
slot

Calculate hashcode from a given string.

Since
2.1.4, 15 nov 2017, jh
QVariantMap domainBim::CoreAPI::calcModelCoordsByGpsCoords ( double  lat,
double  lon 
)
slot

Calculate global Gauss-Krueger coordinates from GPS coordinates.

Example:

{
var obj = desiteAPI.calcModelCoordsByGpsCoords(23.0,50.0);
JSON.stringify(obj, undefined, 2);
}
Returns
{
"X": 6674573.942654451,
"Y": -2672725.3777886564
}
Since
2.0.19, 02 mar 2018, jh
double domainBim::CoreAPI::calcSlantedArea ( QString  objId,
double  angleMin = 0.0,
double  angleMax = 45.0 
)
slot

Calculate the up-facing surface area of an object that is slanted by a given angle (e.g ramps or roofs).
0 <= angleMin <= angleMax <= 180

Parameters
objId: ID of object
angleMin: Min. deviation angle in relation to vector (0,0,1), default = 0.0 [deg]
angleMax: Max. deviation angle in relation to vector (0,0,1), default = 45.0 [deg] (top area criteria)
Returns
Calculated area
Since
1.5.0, 10 dec 2014, sl
bool domainBim::CoreAPI::checkRegExp ( QString  value,
QString  pattern 
)
slot

Check regular expression. Wildcards are enabled.

Examples:

var value = 'DESITE MD';
var pattern1 = "DES*";
var pattern2 = "dES*";
console.log( "CHECK 1: " + desiteAPI.checkRegExp( value, pattern1) ); // returns true
console.log( "CHECK 2: " + desiteAPI.checkRegExp( value, pattern2) ); // return false
Since
2.0.x, jh
QString domainBim::CoreAPI::compressToIfcGuid ( QString  id)
slot
Parameters
ID- An ID is expected in the format 4F3E15A2-0000-2A06-3133-323934363838

Example:

{
desiteAPI.compressToIfcGuid("16e8fe62-6af7-4b9c-8598-479d310bea1e");
}
Returns
ID in IFC format (base64 encoded, 22 characters)
(from the example above)
0MwFvYQlTBd8MOHvqn2_eU
Since
2.0.4, 11 oct 2016, jh
int domainBim::CoreAPI::countContainedElements ( QString  containerId,
int  maxDepth 
)
slot

Recursively count objects (and containers) in container with given ID.

Parameters
containerIdUnique ID of container
maxDepthMaximum Depth of hierarchy to be traversed
0 : count all elements
Since
1.0.20, 29 nov 2012, jh
QString domainBim::CoreAPI::createID ( )
slot

Create a GUID.

Since
2.0
QVariant domainBim::CoreAPI::evaluateFormula ( QString  code,
QString  id,
QString  id_otherdomain = QString() 
)
slot

Evaluate formula with JavaScript, similar to what you can do in a property.

Parameters
codeFormula code
idObject which is used to get property values in variables such as [[cpVolume##xs:double]]
id_otherdomainObject of other domain, e.g a linked object, the variables must contain the domain. Exapmple: [[cpName##xs:string##activities]]
Returns
Value of formula.
If an error occurred, a string is returned containing an error code:
ERROR#-1 - Could not find object 'id'
ERROR#-2 - Object other domain defined but not found Example:
var id = '9f16597e-caaa-4262-b9f7-f6f88fe17644';
var V = desiteAPI.getPropertyValue( id, 'cpVolume', 'xs:double' );
var code = "[[cpVolume##xs:double]] * 2. + Math.sqrt(3)";
var val = desiteAPI.evaluateFormula( code, id );
console.log("Volume: " + V );
console.log("RESULT: " + val );

Output:

Volume: 12.660342933794482
RESULT: 28.320685867589
OK
Since
2.0.3, 10 oct 2016, jh
Remarks
2.0.10, 07 mar 2017, jh, Moved from AutomationAPI to CoreAPI
QStringList domainBim::CoreAPI::extractPropertyNames ( const QString &  code,
const QString &  startTag = "[[",
const QString &  endTag = "]]" 
)
slot

Extract variables/properties from a formula/code. A property is enclosed by a start tag and an end tag. By default start tag = '[[' and end tag is ']]'. A property consists of a name and a dataype seperated by ##.

Example:

=SUMLINKED( [[cpVolume##xs:double]] * 1.1 )

Result:

cpVolume##xs:double
Since
2.5.2, 16 sep 2019, jh
QString domainBim::CoreAPI::format ( double  v,
int  dec = 2,
QString  frmt = "%L1",
int  fieldWidth = 10,
QChar  fillChar = QChar::Nbsp 
)
inlineslot

Formats the parameter number v.
Example:

{
desiteAPI.format(4);
}
Returns
4,00
Since
1.5.0, 17 aug 2015, jh
QString domainBim::CoreAPI::formatDateTime ( QDateTime  dt,
QString  formatstr = "iso" 
)
slot

Format date/time

Parameters
dtDate/Time to format (The format of QDateTime must be as in the example below:)
formatstrFormat string. Could be a format string such as YYYY-MM-DD or the predefined format 'iso'.

Example format strings:

dd.MM.yyyy 21.05.2001
ddd MMMM d yy Tue May 21 01
hh:mm:ss.zzz 14:13:09.042
h:m:s ap 2:13:9 pm

Example code:

var dt = new Date('Tue, 05 FEB 2009 09:09:00 GMT-0400');
desiteAPI.formatDateTime(dt);
2009-02-05T14:09:00
Since
1.5.0, 17 aug 2015, jh
QString domainBim::CoreAPI::getAbsolutePath ( QString  filePath)
inlineslot
Returns
A file's absolute path. This doesn't include the file name.

Example: C:/test/myTextFile.txt -> C:/test

Since
2.0.18, 31 jan 2018, jh
QString domainBim::CoreAPI::getApplicationDirectory ( )
slot
Returns
The path of the directory in which the application file is included.
Since
1.0.17, 18 jul 2012, jh
QString domainBim::CoreAPI::getApplicationFilename ( )
slot
Returns
The filename of the application.
Since
2.0.15, 30 aug 2017, ar
QString domainBim::CoreAPI::getApplicationLanguage ( )
slot
Returns
The current language of the GUI.
Since
2.1.4, 27 nov 2017, jh
QString domainBim::CoreAPI::getBaseName ( QString  filePath)
inlineslot
Returns
The base name of the file. The base name consists of all characters in the file up to (but not including) the first '.' character.

Example: C:/test/myTextFile.txt -> myTextFile

Since
2.0.18, 31 jan 2018, jh
QStringList domainBim::CoreAPI::getBoQItemsByObjectList ( QString  idList)
slot

Get Bill of Quantities Items linked to Geometry Objects.

Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "boq", "geometry" );
int domainBim::CoreAPI::getCalendarWeek ( QDateTime  dt)
slot

Get calendar week by date. The format of QDateTime must be as in the following example:

Example:

var dt = new Date('Tue, 05 FEB 2009 09:09:00 GMT-0400');
desiteAPI.getCalendarWeek(dt);
Since
1.5.0, 12 oct 2015, jh
QVariantMap domainBim::CoreAPI::getCloudSettings ( )
slot

Get URL, User Example:

{
var obj = desiteAPI.getCloudSettings();
JSON.stringify(obj);
}
Returns
{"Password":"","Url":"","User":""}
Since
2.2.3, 20 sep 2018, jh
QStringList domainBim::CoreAPI::getContainedElements ( QString  containerId,
int  maxDepth 
)
slot

Get a list of objects contained in the container with the given ID.
All contained containers are traversed recursively and appended to the list as well. If the object 'containerId' could not be found, an empty list is returned.

Parameters
containerIdUnique ID of container
maxDepthMaximum depth of the hierarchy to be traversed, 0 for unlimited
Since
1.0.18, 18 aug 2012, jh
QStringList domainBim::CoreAPI::getDocumentsByObjectList ( QString  idList)
slot
Returns
List of document IDs.
Since
1.3.3, 03 apr 2014, jh
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "documents", "geometry" );
QString domainBim::CoreAPI::getDomainByElement ( QString  objId)
slot

Get domain by object.

Parameters
objIdLookup this object
Returns
domaintype as string, empty string if object could not be found

Example:

var selIdListStr = desiteAPI.getSelected('all');
var selIdList = selIdListStr.split(';');
for( var i=0; i<selIdList.length; i++ ) {
var id = selIdList[i];
if( id.length < 1 ) continue;
var p = desiteAPI.getDomainByElement( id );
console.log("Domain: " + p );
}
Since
2.0.7, 17 dec 2016, jh
QVariantMap domainBim::CoreAPI::getFileInfo ( QString  filePath)
slot
Returns
AbsolutePath, BaseName, Created, FileName, IsDir, IsFile, LastModified, LastRead, Suffix

Example:

var obj = desiteAPI.getFileInfo('C:\windows\System32\Boot\winresume.exe');
var keys = Object.keys(obj);
keys;
Since
2.1.06, 02 mar 2018, jh
QString domainBim::CoreAPI::getFileName ( QString  filePath)
inlineslot
Returns
The name of the file, excluding the path.

Example: C:/test/myTextFile.txt -> myTextFile.txt

Since
2.0.18, 31 jan 2018, jh
QStringList domainBim::CoreAPI::getLinkedObjects ( QString  objectIDList,
QString  resultDomains = "all",
QString  objectLookupDomains = "all" 
)
slot

Get objects which are linked to given objects.

Results can be optionally restricted to specific domains.
Passed IDs can be of any domain, but you can optionally use the third parameter to assert that they are of a specific domain or domains.

Parameters
objectIDListObjects to check the links of
resultDomains[optional] domain filter for linked objects to return. Can be a list (like 'geometry;activities'). Default is 'all'.
objectLookupDomains[optional] domain filter for the passed objects (link sources). The method looks up the objects in objectIDList only in these domains. Can also be a list. Default 'all'.
Returns
List of linked object IDs

Examples:

var objList = desiteAPI.getLinkedObjects ( idList );
Returns
All objects (any domain) linked to passed objects (also any domain).
var objList = desiteAPI.getLinkedObjects ( idList, "geometry" );

Same as above, but only linked geometric objects are retrieved.

var objList = desiteAPI.getLinkedObjects ( idList, "geometry", "activities" );

Same as above, but it is ensured that the passed IDs identify tasks (objects of domain 'activities' ).

Note that you will rarely (if ever) need the third parameter as you usually know which kinds of IDs you're passing.

Since
1.0.18, 14 aug 2012, jh
Remarks
last modified 1.9.0, 19 may 2016, ah; reverse lookup
QString domainBim::CoreAPI::getLocation ( )
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get geographic location of project.

Returns
Location as JSON string. Use JSON.parse() to convert to Object.

Example return value:

"{\"globalRefPoint\": [0,0,0],\"lat\": 0,\"lon\": 0,\"modelRefPoint\": [0,0,0],\"projectRefPoint\": [0,0,0],\"rotation\": 0}"
Remarks
Deprecated since 2.2.1, 02 Aug 2018
Deprecated:
Use getProjectLocation() instead.
Reason: Return as String is inconvenient.
QStringList domainBim::CoreAPI::getObjectsByBoQItemList ( QString  idList)
slot
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "boq" );
QStringList domainBim::CoreAPI::getObjectsByDocumentList ( QString  idList)
slot
Returns
List of object IDs.
Since
1.3.3, 03 apr 2014, jh
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "documents" );
QStringList domainBim::CoreAPI::getObjectsByPcItemList ( QString  idList)
slot

Get links between process components and objects.

Since
2016
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "pc" );
QStringList domainBim::CoreAPI::getObjectsByResourcesList ( QString  idList)
slot
Returns
List of object IDs.
Since
1.5.0, 29 oct 2015, sl
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "res" );
QStringList domainBim::CoreAPI::getObjectsBySectionList ( QString  idList)
slot
Returns
List of object IDs.
Since
1.5.0, 29 oct 2015, sl
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "building" );
QStringList domainBim::CoreAPI::getObjectsByTaskList ( QString  idList)
slot
Returns
List of object IDs.
Since
1.0.18, 14 aug 2012, jh
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "activities" );
QStringList domainBim::CoreAPI::getObjectsByTypeList ( QString  idList)
slot

Get 3D objects which are linked to types (objects in domain 'types') given by an list of IDs.

Returns
idList List of object IDs as string separeted by ';'
Since
1.5.0, 29 oct 2015, jh
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "geometry", "type" );
QStringList domainBim::CoreAPI::getOpenings ( QString  objId)
slot

Retrieves all opening objects (if any) for a given object. Openings are sub-elements of a given object.

Parameters
objIdObject for which to get openings of
Returns
List of opening object IDs
Since
1.5.0, 12 may 2015, ah
QString domainBim::CoreAPI::getParent ( QString  objId)
slot

Get ID of parent element of object with ID 'objId'. If object has no parent, an empty string will be returned.

Since
1.0.18, 18 aug 2012, jh
QStringList domainBim::CoreAPI::getParts ( QString  objId)
slot

Get IDs of parts (result of a cut) of object with ID 'objId'. If object has no parts, an empty array will be returned.

Parameters
objIdID of object
Returns
List with Ids of the parts
Since
1.5.0, 04 apr 2016, sl
QStringList domainBim::CoreAPI::getPcItemsByObjectList ( QString  idList)
slot

Get links between process components and objects.

Since
2016
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "pc", "geometry" );
QVariantList domainBim::CoreAPI::getPointList ( QString  objId)
slot

Get points of object as JSON.

Parameters
objIdID of geometric element
var pointList = desiteAPI.getPointList( 'id123ABC' );
pointList = [ { x : 0.0, y : 0.0, z : 0.0 }, { x : 1.0, y : 1.0, z : 2.0 } ]
Since
1.9.1, 26 jul 2016, sl
QVariantMap domainBim::CoreAPI::getPointOnAlignmentAtStation ( QString  objId,
double  d 
)
slot

Get point on alignment at specified station length as JSON. If length > alignment length, the end point will be returned. Station start (may be greater or lower than zero) will be substracted from d! Station start is not taken into account!

Parameters
objIdAlignment Object ID
dDistance from start
var point = desiteAPI.getPointOfAlignmentAtStation( 'id123ABC', 100.0 );
point = { x : 88.23, y : 27.41, z : 0.0 }
Since
2.0.10, 24 feb 2017, sl
QString domainBim::CoreAPI::getProjectDirectory ( )
slot
Returns
The directory of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.0.17, 18 jul 2012, jh
QString domainBim::CoreAPI::getProjectID ( )
slot
Returns
The ID of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.3.0, 21 oct 2013, jh
QVariantMap domainBim::CoreAPI::getProjectInfo ( )
slot
Returns
An object with informations of the currently opened project. If no project is opened, then there will be an empty string.
Since
2.2.3, 20 sep 2018, jh
QVariantMap domainBim::CoreAPI::getProjectLocation ( ) const
slot

Get geographic location of a project.

Returns
Location as JavaScript object.
{"globalRefPoint": [0,0,0],"lat": 0,"lon": 0,"modelRefPoint": [0,0,0],"projectRefPoint": [0,0,0],"rotation": 0}
Since
2.2
QString domainBim::CoreAPI::getProjectLongDescription ( )
slot
Returns
The long description of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.0.17, 15 jun 2012, jh
QString domainBim::CoreAPI::getProjectName ( )
slot
Returns
The name of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.3.6, 26 apr 2014, jh
QString domainBim::CoreAPI::getProjectNumber ( )
slot
Returns
The number of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.0.17, 15 jun 2012, jh
QString domainBim::CoreAPI::getProjectShortDescription ( )
slot
Returns
The short description of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.0.17, 15 jun 2012, jh
int domainBim::CoreAPI::getProjectVariantNumber ( )
slot
Returns
The variant number of the currently opened project. If no project is opened, then there will be an empty string.
Since
1.3.0, 21 oct 2013, jh
int domainBim::CoreAPI::getProjectVersionNumber ( )
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get Project Version Number.

Since
2.2.1, 03 aug 2018, jh
Remarks
Deprecated since 2.3.1, 17 Dec 2018
Deprecated:
DESITE Projects no longer have a version number; this method will always return 0.
QVariantList domainBim::CoreAPI::getPropertyDateList ( QString  objectId,
QString  propertyBaseName,
QString  propertyType 
)
slot

Get a list of dates for a given property.

If a time is not specified for a certain property the time is set to 12:00 by default. (Consider the time shift to your local time.)

Parameters
propertyBaseNameName of the Property Type without the date suffix.
For example, if you have "myProp@2019-08-13" and "myProp@2019-08-12", pass "myProp" ("myProp@" will also work).
Returns
sorted list of valid dates

Example

var id = "...anyID...";
// set some values ...
desiteAPI.setPropertyValue( id, "test@2019-01-01", "xs:long", 23 )
desiteAPI.setPropertyValue( id, "test@2019-01-10", "xs:long", 14 )
desiteAPI.setPropertyValue( id, "test@2019-01-15T14:00:00Z", "xs:long", 14 )
var v = desiteAPI.getPropertyDateList( id, "test", "xs:long");
console.log( JSON.stringify(v,true,3) );

Output:

[
"2019-01-01T11:00:00.000Z",
"2019-01-10T11:00:00.000Z",
"2019-01-15T14:00:00.000Z"
]
Since
2.5.2, 2019-08-27, ah, jh
QVariantMap domainBim::CoreAPI::getPropertyDateListAsJSON ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get list of dates for a given property as JSON object.
If a time is not specified for a certain property the time is set to 12:00 by default. (Consider the time shift to your local time.)

Example

var id = "...anyID...";
// set some values ...
desiteAPI.setPropertyValue( id, "test@2019-01-01", "xs:long", 23 )
desiteAPI.setPropertyValue( id, "test@2019-01-10", "xs:long", 14 )
desiteAPI.setPropertyValue( id, "test@2019-01-15T14:00:00Z", "xs:long", 14 )
var v = desiteAPI.getPropertyDateListAsJSON( id, "test", "xs:long");
console.log( JSON.stringify(v,true,3) );
var ptlist = desiteAPI.getPropertyTypeListByObject( id, "te*" );
console.log( JSON.stringify(ptlist,true,3) );

Output:

{
"list": [
"2019-01-01T11:00:00.000Z",
"2019-01-10T11:00:00.000Z",
"2019-01-15T14:00:00.000Z"
]
}
[
{
"DataType": "xs:long",
"DisplayName": "test@2019-01-01",
"Domain": "geometry",
"Name": "test@2019-01-01",
"Unit": ""
},
{
"DataType": "xs:long",
"DisplayName": "test@2019-01-10",
"Domain": "geometry",
"Name": "test@2019-01-10",
"Unit": ""
},
{
"DataType": "xs:long",
"DisplayName": "test@2019-01-15T14:00:00Z",
"Domain": "geometry",
"Name": "test@2019-01-15T14:00:00Z",
"Unit": ""
}
]
Since
2.0
Remarks
Deprecated since 2.5.2, 2019-08-27
Deprecated:
Use getPropertyDateList() instead.
Reason: Does not handle invalid dates. Does not actually return JSON. Parameter "inh" has no effect.
QDateTime domainBim::CoreAPI::getPropertyFirstDate ( QString  objId,
QString  propName,
QString  propType,
bool  inh 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.
Returns
The first date/time of a property. If the property has no dates the current date/time is returned. The dates are defined by the concatenation of the property name and the date separated by an

Example:

status:Montage@2016-02-12
Since
1.9.0, 2016-05-13, jh
Remarks
Deprecated since 2.5.2, 2019-08-27
Deprecated:
Use getPropertyDateList() and take first entry.
QDateTime domainBim::CoreAPI::getPropertyLastDate ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get last date/time of a property. If the property has no dates the current date/time is returned.

The dates are defined by the concatenation of the property name and the date separated by an @.

Example:

status:Montage@2016-02-12
Since
1.9.0, 2016-05-13, jh
Remarks
Deprecated since 2.5.2, 2019-08-27
Deprecated:
Use getPropertyDateList() and take last entry.
QVariant domainBim::CoreAPI::getPropertySource ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot

If the property is a formula, return the formula. Otherwise the value is returned.

Since
1.9.0, 13 may 2016, jh
QList<QVariant> domainBim::CoreAPI::getPropertyTypeList ( QString  domain = "all",
QString  filterPattern = "*" 
)
slot

Get available property types for a given domain combination and a specified filter pattern.

Parameters
filterPatternFilter properties by name. Wildcards are supported.
var ptList = desiteAPI.getPropertyTypeList( 'activities', 'Cost4*' );

Example for return format:

[
{
"Name": "cpName",
"DataType": "xs:string",
"DisplayName": "cp:Name",
"Unit": "",
"Domain": "all"
},
{
"Name": "TEST-ATTR",
"DataType": "xs:double",
"DisplayName": "TEST-ATTR",
"Unit": "m",
"Domain": "activities"
}
]
Since
2.0.0
QList<QVariant> domainBim::CoreAPI::getPropertyTypeListByObject ( QString  objId,
QString  filterPattern = "*" 
)
slot

Get available property types for a given object ID and a specified filter pattern.

Parameters
objIdID of the object to look up property types for.
filterPatternFilter properties by name. Wildcards are supported.
var ptList = desiteAPI.getPropertyTypeListByObject( '3d16b4b7-4e1e-4d0f-8729-ed0e0c96e590', 'Cost4*' );

Example for return format:
Analogous to getPropertyTypeList() :

[
{
"Name": "cpName",
"DataType": "xs:string",
"DisplayName": "cp:Name",
"Unit": "",
"Domain": "all"
},
{
"Name": "TEST-ATTR",
"DataType": "xs:double",
"DisplayName": "TEST-ATTR",
"Unit": "m",
"Domain": "activities"
}
]
Since
2.0.16, 17 oct 2017, ah
QVariantMap domainBim::CoreAPI::getPropertyTypeMetaData ( QString  propName,
QString  propType 
)
slot

Get meta data of propertytype such as displayname and unit.

Parameters
pNameName of property type
pTypeDatatype of property type
Returns
JSON object containing meta data. If an errors occurs, the JSON object contains ERROR and ERROR_NUMBER.

Example:

var meta = desiteAPI.getPropertyTypeMetaData('cpName','xs:string');
JSON.stringify(meta);

Return:

{"DataType":"xs:string","DisplayName":"cp:Name","Domain":"all","Name":"cpName","Unit":""}
Since
2.0.13, 13 may 2017
QVariantMap domainBim::CoreAPI::getPropertyTypesByDomain ( QString  domainName,
QString  filterPattern = "*" 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get available property types for a given domain combination.

Parameters
filterPatternFilter properties by name. Wildcards are supported.
var ptList = desiteAPI.getPropertyTypesByDomain( 'activities', 'Cost4*' );

Example for return format:

{
domain: "activities;geometry",
list: [
{
"pName": "cpName",
"pType": "xs:string"
},
{
"pName": "TEST-ATTR",
"pType": "xs:double"
}
]
}
Since
1.5.0, 26 jul 2015, jh
Remarks
Deprecated since 2.0.16, 17 Oct 2017
Deprecated:
Use getPropertyTypeList() instead.
QVariantMap domainBim::CoreAPI::getPropertyTypesByObject ( QString  objId,
QString  filterPattern = "*" 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get available property types for object 'objId'.

Parameters
filterPatternReturn only property types which name matches filterPattern
Returns
Available property types a array of JSON objects.

Example for return format:

{
id: "agdvsa$62A",
list: [
{
"pName": "cpName",
"pType": "xs:string",
"pUnit": "",
"pDomain": "geometry"
},
{
"pName": "cpVolume",
"pType": "xs:double",
"pUnit": "m3",
"pDomain": "geometry"
}
]
}
Since
1.5.0, 26 jul 2015, jh
Remarks
Deprecated since 2.0.16, 17 Oct 2017
Deprecated:
Use getPropertyTypeListByObject() instead.
QString domainBim::CoreAPI::getPropertyUnit ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get unit of measurement (unit code).

Since
1.5.0, 23 sep 2015, jh
Remarks
Deprecated since 2.2.1, 26 Jun 2018
Deprecated:
Use getPropertyUnit( QString propName, QString propType ) instead.
Reason: Irrelevant parameters.
QString domainBim::CoreAPI::getPropertyUnit ( QString  propName,
QString  propType 
)
slot

Get unit of measurement (unit code)

Since
2.2.1, 26 jun 2018, jh
QVariant domainBim::CoreAPI::getPropertyValue ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot

Get property value for a single object.

var id = desiteThis.ID();
var v = desiteAPI.getPropertyValue( id, 'cpVolume', 'xs:double' );

To access project properties use 'GlobalProject' as objId. Built-in properties can be retrieved as well as user defined properties.

Built-in global project properties:

- ShortDescription, xs:string
- LongDescription, xs:string
- NumberCode, xs:string
- ProjectDirectory, xs:string
- VariantNumber, xs:long
- ID, xs:ID
- ProjectUser, xs:string
- ProjectName, xs:string

Example

var prjname = desiteAPI.getPropertyValue( 'GlobalProject', 'ProjectName', 'xs:string' );
Parameters
inh: Check inherited property values. Default is 'true'
Since
1.0.16
QString domainBim::CoreAPI::getPropertyValueAsString ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get property value for a single object. Convert result to String. This method returns a valid result even if the property or the object does not exist.

Since
1.0.16
Remarks
Deprecated since 1.9.0, 14 Apr 2016
Deprecated:
Use AutomationAPI::getPropertyValues() instead.
QVariant domainBim::CoreAPI::getPropertyValueByDate ( QString  objId,
QString  propName,
QString  propType,
bool  inh = true 
)
slot

Get a propertyValue at a specific date/time. The method returns the value of the last date/time before the given timestamp. If no timestamp is given, the latest value is returned.

Example:

status:Production@2016-02-01 = 50.0
status:Production@2016-02-10 = 60.0
status:Production@2016-02-20 = 70.0
getPropertyValueByDate( id, 'status:Production@2016-02-15', 'xs:double' );
return => 60.0
getPropertyValueByDate( id, 'status:Production@', 'xs:double' );
return => 70.0
Since
1.9.0
QStringList domainBim::CoreAPI::getPropertyValueList ( QString  propName,
QString  propType,
int  maxValues 
)
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get available property values for visible objects.

Since
1.0.17, 27 jun 2012, jh
Remarks
Deprecated since 2.0.16, 17 Oct 2017
Deprecated:
Use AutomationAPI::getPropertyValues() instead.
QString domainBim::CoreAPI::getPropertyValueRange ( QString  idList,
QString  propName,
QString  propType,
QString  domainFilter = "geometry" 
)
slot

Get property values/range for a list of objects for specified domain(s).
The values are concatenated and separated by ';'.

Since
1.0.16
Remarks
modified 1.5.0, 30 mar 2016, sl
QList<QVariant> domainBim::CoreAPI::getPropertyValuesByObject ( QString  objId,
QString  filterpattern = "*" 
)
slot

Get properties of an object.

Parameters
filterpatternGet only properties which name fits filterpattern. Default = '*' (all rpoperties)
Returns
List of objects, see example below for structure

Example:

var idList = desiteAPI.strToIdList(desiteAPI.getSelected());
for( var i in idList ) {
console.log("ID: " + idList[i] );
var pl = desiteAPI.getPropertyValuesByObject( idList[i], '*BBox*' );
console.log( JSON.stringify(pl) );
}

Return:

[
{
"isInherited":false,
"Domain":"geometry",
"Name":"cpBBoxMaxX",
"Type":"xs:double",
"Unit":"m",
"Value":49.43439188232422
},
{
"isInherited":false,
"Domain":"geometry",
"Name":"cpBBoxDX",
"Type":"xs:double",
"Unit":"m",
"Value":24.25000120239258
},
]
Since
2.2.2, 13 sep 2018, jh
QVariantList domainBim::CoreAPI::getRangesOfRegion ( QString  alignmentID,
QString  regionID 
)
slot

Get all ranges of a regions.

Parameters
alignmentIDID of the alignment object
regionIDID of the region
Returns
List of ranges, e.g. [[100.0,120.0],[160.5,180.2]]
See also
int addRangeToRegion( QString regionID, double fromStation, double toStation, QString alignmentID = QString() );
Since
2.2.1, 20 apr 2018, sl
QStringList domainBim::CoreAPI::getRegionsOfAlignment ( QString  alignmentId)
slot

Get a list with regions (represented by their IDs) of an alignment with given ID.

Parameters
alignmentIdID of the alignment object
Returns
ID list of regions.
See also
QString addRegionToAlignment( QString alignmentId, QVariantMap setting );
Since
2.2.1, 20 apr 2018, sl
QStringList domainBim::CoreAPI::getResourcesByObjectList ( QString  idList)
slot
Returns
List of resources.
Since
1.5.0, 29 oct 2015, sl
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "res", "geometry" );
QStringList domainBim::CoreAPI::getSectionsByObjectList ( QString  idList)
slot
Returns
List of building structure sections IDs.
Since
1.5.0, 29 oct 2015, sl
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "building", "geometry" );
double domainBim::CoreAPI::getStationOfProjectedPoint ( QString  objId,
double  x,
double  y,
double  z = 0.0 
)
slot

Get station (distance from start) of point on alignment. If point is not part of alignment, it will be projected on alignment first! Station start is not taken into account!

Parameters
objIdAlignment Object ID
xx-coordinate of point to check
yy-coordinate of point to check
zz-coordinate of point to check (optional)
Returns
Distance from alignment start
Since
2.0.10, 07 mar 2017, sl
int domainBim::CoreAPI::getTaskMode ( QString  taskId)
slot
Return values
1manually scheduled
2automatically scheduled
-1unable to get task 'taskId'
-2unable to get task mode
Since
2.1.6, 15 mar 2018, jh
QStringList domainBim::CoreAPI::getTasksByObjectList ( QString  idList)
slot

Get tasks which are linked to 3D objects.

Returns
List of task IDs.
Since
1.0.17, 16 jun 2012, jh
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "activities", "geometry" );
QString domainBim::CoreAPI::getTaskVisualisation ( QString  taskId)
slot

Get visualisation configuration of task with ID 'taskId'.
If no configuration ist set, this method returns an empty string.

Since
2.2.1, 04 aug 2018, jh
QStringList domainBim::CoreAPI::getTypesByObjectList ( QString  idList)
slot
Returns
List of types.
Since
1.5.0, 29 oct 2015, sl
Deprecated:
Use equivalent call:
getLinkedObjects ( idList, "type", "geometry" );
QString domainBim::CoreAPI::getUserName ( )
slot
Returns
The name of the user.
Since
1.0.17, 15 jun 2012, jh
double domainBim::CoreAPI::getValueOfAlignmentRegion ( QString  alignmentID,
QString  regionID 
)
slot

Get the value assigned to a region.

Parameters
alignmentIDID of the alignment object
regionIDID of the region
Returns
value assigned to region.
See also
QString addRegionToAlignment( QString alignmentID, QVariantMap setting );
Since
2.2.1, 20 apr 2018, sl
QVariantMap domainBim::CoreAPI::getVersion ( )
slot

Get DESITE version information as an object.
Example:

{"major": 2,"minor": 2,"patch": 2,"build": 196}
Since
2.2.2, 31 Aug 2018, ah
QString domainBim::CoreAPI::getVersionAsString ( )
slot

Get DESITE version information as a string, for example "2.2.1".

Since
2.0
int domainBim::CoreAPI::getVersionBUILD ( )
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get DESITE patch version number.

Remarks
Deprecated since 2.2.2, 31 Aug 2018
Deprecated:
Use getVersion() instead.
Reason: wrong name (returns patch number, not build number), convenience.
int domainBim::CoreAPI::getVersionMAJOR ( )
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get DESITE major version number.

Remarks
Deprecated since 2.2.2, 31 Aug 2018
Deprecated:
Use getVersion() instead.
Reason: naming conventions, convenience.
int domainBim::CoreAPI::getVersionMINOR ( )
slot
Deprecated:
This method will be removed in future versions of DESITE MD and should not be used for new scripts anymore.

Get DESITE minor version number.

Remarks
Deprecated since 2.2.2, 31 Aug 2018
Deprecated:
Use getVersion() instead.
Reason: naming conventions, convenience.
QString domainBim::CoreAPI::idListToStr ( QStringList  idList)
slot

Build a semicolon-separated string from a list of IDs.

Since
2.2.1, 17 jun 2018, jh
bool domainBim::CoreAPI::isLocked ( QString  objId)
slot

Check if an object is locked.

Since
1.9.0, 13 may 2016, ar
bool domainBim::CoreAPI::isPropertyInherited ( QString  objId,
QString  propName,
QString  propType 
)
slot

Check if a property value is inherited.

Since
1.3.5, 21 apr 2014, jh
bool domainBim::CoreAPI::isSelected ( QString  objId)
slot

Check if an object is selected.

Since
1.0.20, 24 nov 2012, jh
bool domainBim::CoreAPI::isVisible ( QString  objId)
slot

Objects status which can be visible/hidden, selected/unselected, wireframed, blocked.

Check if an object is visible.

Since
1.0.20, 24 nov 2012, jh
bool domainBim::CoreAPI::isWired ( QString  objId)
slot

Check if an object is in wireframe mode.

Since
1.9.0, 13 may 2016, ar
QString domainBim::CoreAPI::prepareJsCode ( QString  code,
QString  id,
int  dec = -1,
QString  frmt = "%L1",
int  fieldWidth = 10,
QChar  fillChar = QChar() 
)
slot

Prepare a formula, i.e. JavaScript code, by replacing variables.

Parameters
codeCode of formula
idID of object which provides property values.
decNumber of decimals, -1 = all decimals
frmtFormat to format numbers (see Qt)
Since
2.0.14, 12 jul 2017, jh
bool domainBim::CoreAPI::requireVersion ( int  major,
int  minor,
int  patch 
)
slot

Returns true if version of current application is equal or higher than required.

Since
2.0
QStringList domainBim::CoreAPI::strToIdList ( QString  strIDList)
slot

Turn a string of semicolon-separated IDs into a list.

Since
2.2.1, 17 jun 2018, jh
QString domainBim::CoreAPI::timeStamp ( QString  format = QString())
slot

If format is empty, get current date/time in format: yyyy-MM-ddThh-mm-ss.

If format is 'ISO', then timestamp is formatted as ISO format (yyyy-MM-ddThh:mm:ss), otherwise format specifies the format of the returned time.

Since
1.0.18, 14 jun 2012, jh
QString domainBim::CoreAPI::uncompressFromIfcGuid ( QString  ifcGuid)
slot
Parameters
ifcGuId- ID in IFC format (base64 encoded, 22 characters)
Returns
ID in the format: 4F3E15A2-0000-2A06-3133-323934363838
Since
2.0.4, 11 oct 2016, jh

The documentation for this class was generated from the following file:

Created: Tue Oct 22 2019 05:58:50